1.1 --- a/stage2/jzlcd.h Tue Jun 09 23:06:11 2015 +0200
1.2 +++ b/stage2/jzlcd.h Tue Jun 09 23:07:03 2015 +0200
1.3 @@ -1,7 +1,10 @@
1.4 /*
1.5 - * JzRISC lcd controller
1.6 + * U-Boot and JzRISC LCD controller definitions
1.7 *
1.8 + * Copyright (C) 2001 Wolfgang Denk, DENX Software Engineering, wd@denx.de.
1.9 * Copyright (C) 2005-2007, Ingenic Semiconductor Inc.
1.10 + * Copyright (C) Xiangfu Liu <xiangfu@sharism.cc>
1.11 + * Copyright (C) 2015 Paul Boddie <paul@boddie.org.uk>
1.12 *
1.13 * This program is free software; you can redistribute it and/or
1.14 * modify it under the terms of the GNU General Public License as
1.15 @@ -27,13 +30,9 @@
1.16 void lcd_enable(void);
1.17 void lcd_disable(void);
1.18
1.19 -struct lcd_desc{
1.20 - unsigned int next_desc; /* LCDDAx */
1.21 - unsigned int databuf; /* LCDSAx */
1.22 - unsigned int frame_id; /* LCDFIDx */
1.23 - unsigned int cmd; /* LCDCMDx */
1.24 -};
1.25 -
1.26 +/*
1.27 + * Framebuffer characteristics
1.28 + */
1.29 struct jzfb_info {
1.30 unsigned int cfg; /* panel mode and pin usage etc. */
1.31 unsigned int w;
1.32 @@ -48,6 +47,60 @@
1.33 unsigned int bfw; /* begin of frame, in line count */
1.34 };
1.35
1.36 +/*
1.37 + * LCD controller stucture for JZSOC: JZ4740
1.38 + */
1.39 +struct jz_fb_dma_descriptor {
1.40 + unsigned long fdadr; /* Frame descriptor address register */
1.41 + unsigned long fsadr; /* Frame source address register */
1.42 + unsigned long fidr; /* Frame ID register */
1.43 + unsigned long ldcmd; /* Command register */
1.44 +};
1.45 +
1.46 +/*
1.47 + * Jz LCD info
1.48 + */
1.49 +struct jz_fb_info {
1.50 +
1.51 + unsigned long fdadr0; /* physical address of frame/palette descriptor */
1.52 + unsigned long fdadr1; /* physical address of frame descriptor */
1.53 +
1.54 + /* DMA descriptors */
1.55 + struct jz_fb_dma_descriptor *dmadesc_fblow;
1.56 + struct jz_fb_dma_descriptor *dmadesc_fbhigh;
1.57 + struct jz_fb_dma_descriptor *dmadesc_palette;
1.58 + unsigned long screen; /* address of frame buffer */
1.59 + unsigned long palette; /* address of palette memory */
1.60 + unsigned int palette_size;
1.61 +};
1.62 +
1.63 +/*
1.64 + * Concise display characteristics with low-level structure reference
1.65 + */
1.66 +typedef struct vidinfo {
1.67 + unsigned short vl_col; /* Number of columns (i.e. 640) */
1.68 + unsigned short vl_row; /* Number of rows (i.e. 480) */
1.69 + unsigned char vl_bpix; /* Bits per pixel, 0 = 1, 1 = 2, 2 = 4, 3 = 8 */
1.70 +
1.71 + struct jz_fb_info jz_fb;
1.72 +} vidinfo_t;
1.73 +
1.74 +/* General values for colour depths and framebuffer characteristics. */
1.75 +
1.76 +#define LCD_MONOCHROME 0
1.77 +#define LCD_COLOR2 1
1.78 +#define LCD_COLOR4 2
1.79 +#define LCD_COLOR8 3
1.80 +#define LCD_COLOR16 4
1.81 +#define LCD_COLOR32 5
1.82 +
1.83 +/* Calculate number of bits per pixel and number of colours. */
1.84 +
1.85 +#define NBITS(bit_code) (1 << (bit_code))
1.86 +#define NCOLORS(bit_code) (1 << NBITS(bit_code))
1.87 +
1.88 +/* Transfer and display types. */
1.89 +
1.90 #define MODE_MASK 0x0f
1.91 #define MODE_TFT_GEN 0x00
1.92 #define MODE_TFT_SHARP 0x01
1.93 @@ -92,12 +145,4 @@
1.94 #define DATA_NORMAL (0 << 17)
1.95 #define DATA_INVERSE (1 << 17)
1.96
1.97 -
1.98 -/* Jz LCDFB supported I/O controls. */
1.99 -#define FBIOSETBACKLIGHT 0x4688
1.100 -#define FBIODISPON 0x4689
1.101 -#define FBIODISPOFF 0x468a
1.102 -#define FBIORESET 0x468b
1.103 -#define FBIOPRINT_REG 0x468c
1.104 -
1.105 #endif /* __JZLCD_H__ */