1.1 --- a/stage2/jzlcd.h Sat Jul 08 23:02:30 2017 +0200
1.2 +++ b/stage2/jzlcd.h Sun Jul 09 00:36:42 2017 +0200
1.3 @@ -32,56 +32,57 @@
1.4 void lcd_enable();
1.5 void lcd_disable();
1.6
1.7 -/*
1.8 - * Framebuffer characteristics
1.9 - */
1.10 +/* Framebuffer characteristics. */
1.11 +
1.12 struct jzfb_info {
1.13 uint32_t cfg; /* panel mode and pin usage etc. */
1.14 - uint16_t w;
1.15 - uint16_t h;
1.16 - uint8_t bpp; /* bit per pixel */
1.17 - uint32_t fclk; /* frame clk */
1.18 - uint32_t hsw; /* hsync width, in pclk */
1.19 + uint16_t w; /* display width in pixels */
1.20 + uint16_t h; /* display height in pixels */
1.21 + uint8_t bpp; /* bits per pixel */
1.22 + uint32_t fclk; /* frame clock */
1.23 + uint32_t hsw; /* hsync width, in pixel clock */
1.24 uint32_t vsw; /* vsync width, in line count */
1.25 - uint32_t elw; /* end of line, in pclk */
1.26 - uint32_t blw; /* begin of line, in pclk */
1.27 + uint32_t elw; /* end of line, in pixel clock */
1.28 + uint32_t blw; /* begin of line, in pixel clock */
1.29 uint32_t efw; /* end of frame, in line count */
1.30 uint32_t bfw; /* begin of frame, in line count */
1.31 };
1.32
1.33 -/*
1.34 - * LCD controller stucture for JZSOC: JZ4740
1.35 - */
1.36 +/* LCD controller stucture for jz4740. */
1.37 +
1.38 struct jz_fb_dma_descriptor {
1.39 - struct jz_fb_dma_descriptor *fdadr; /* Frame descriptor address register */
1.40 - uint32_t fsadr; /* Frame source address register */
1.41 - uint32_t fidr; /* Frame ID register */
1.42 - uint32_t ldcmd; /* Command register */
1.43 + struct jz_fb_dma_descriptor *fdadr; /* frame descriptor address register */
1.44 + uint32_t fsadr; /* frame source address register */
1.45 + uint32_t fidr; /* frame identifier register */
1.46 + uint32_t ldcmd; /* command register */
1.47 };
1.48
1.49 -/*
1.50 - * Jz LCD info
1.51 - */
1.52 +/* Framebuffer and controller memory information. */
1.53 +
1.54 struct jz_mem_info {
1.55
1.56 + /* DMA descriptor references (updated for transfers). */
1.57 +
1.58 struct jz_fb_dma_descriptor *fdadr0; /* physical address of frame/palette descriptor */
1.59 struct jz_fb_dma_descriptor *fdadr1; /* physical address of frame descriptor */
1.60
1.61 - /* DMA descriptors */
1.62 + /* DMA descriptor references (indicating allocated regions). */
1.63 +
1.64 struct jz_fb_dma_descriptor *dmadesc_fblow;
1.65 struct jz_fb_dma_descriptor *dmadesc_fbhigh;
1.66 struct jz_fb_dma_descriptor *dmadesc_palette;
1.67
1.68 - uint32_t screen; /* address of frame buffer */
1.69 + uint32_t screen; /* address of first frame buffer (base of memory used) */
1.70 uint32_t palette; /* address of palette memory */
1.71 + uint32_t total; /* total memory used */
1.72 };
1.73
1.74 -/*
1.75 - * Concise display characteristics with low-level structure reference
1.76 - */
1.77 +/* Display characteristics and memory resources. */
1.78 +
1.79 typedef struct vidinfo {
1.80 - struct jz_mem_info jz_mem;
1.81 - struct jzfb_info *jz_fb;
1.82 + struct jzfb_info *jz_fb; /* framebuffer and panel properties */
1.83 + struct jz_mem_info jz_mem; /* framebuffer memory information */
1.84 + void *lcd; /* address of LCD controller registers */
1.85 } vidinfo_t;
1.86
1.87 /* Alignment/rounding macros. */