xref: /nrf52832-nimble/rt-thread/libcpu/mips/x1000/x1000_slcdc.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * File      : x1000_slcdc.h
3*10465441SEvalZero  * COPYRIGHT (C) 2008 - 2016, RT-Thread Development Team
4*10465441SEvalZero  *
5*10465441SEvalZero  * Change Logs:
6*10465441SEvalZero  * Date           Author       Notes
7*10465441SEvalZero  * 2017��3��20��     Urey         the first version
8*10465441SEvalZero  */
9*10465441SEvalZero #ifndef _X1000_SLCDC_H_
10*10465441SEvalZero #define _X1000_SLCDC_H_
11*10465441SEvalZero 
12*10465441SEvalZero #ifdef __cplusplus
13*10465441SEvalZero extern "C" {
14*10465441SEvalZero #endif
15*10465441SEvalZero 
16*10465441SEvalZero /*************************************************************************
17*10465441SEvalZero  * SLCD (Smart LCD Controller)
18*10465441SEvalZero  *************************************************************************/
19*10465441SEvalZero #define LCDC0_BASE  LCD_BASE
20*10465441SEvalZero 
21*10465441SEvalZero #define SLCDC_CFG       (LCDC0_BASE + 0xA0)  /* SLCDC Configure Register */
22*10465441SEvalZero #define SLCDC_CTRL      (LCDC0_BASE + 0xA4)  /* SLCDC Control Register */
23*10465441SEvalZero #define SLCDC_STATE     (LCDC0_BASE + 0xA8)  /* SLCDC Status Register */
24*10465441SEvalZero #define SLCDC_DATA      (LCDC0_BASE + 0xAC)  /* SLCDC Data Register */
25*10465441SEvalZero 
26*10465441SEvalZero #define SLCDC_CFG_NEW   (LCDC0_BASE + 0xB8)
27*10465441SEvalZero #define SLCDC_WTIME     (LCDC0_BASE + 0xB0)
28*10465441SEvalZero #define SLCDC_TAS       (LCDC0_BASE + 0xB4)
29*10465441SEvalZero #define SLCDC_SLOW_TIME (LCDC0_BASE + 0xBC)
30*10465441SEvalZero 
31*10465441SEvalZero /* SLCDC Configure Register */
32*10465441SEvalZero #define SLCDC_CFG_DWIDTH_BIT            10
33*10465441SEvalZero #define SLCDC_CFG_DWIDTH_MASK           (0x7 << SLCDC_CFG_DWIDTH_BIT)
34*10465441SEvalZero #define SLCDC_CFG_DWIDTH_18BIT          (0 << SLCDC_CFG_DWIDTH_BIT)
35*10465441SEvalZero #define SLCDC_CFG_DWIDTH_16BIT          (1 << SLCDC_CFG_DWIDTH_BIT)
36*10465441SEvalZero #define SLCDC_CFG_DWIDTH_8BIT_x3        (2 << SLCDC_CFG_DWIDTH_BIT)
37*10465441SEvalZero #define SLCDC_CFG_DWIDTH_8BIT_x2        (3 << SLCDC_CFG_DWIDTH_BIT)
38*10465441SEvalZero #define SLCDC_CFG_DWIDTH_8BIT_x1        (4 << SLCDC_CFG_DWIDTH_BIT)
39*10465441SEvalZero #define SLCDC_CFG_DWIDTH_24BIT          (5 << SLCDC_CFG_DWIDTH_BIT)
40*10465441SEvalZero #define SLCDC_CFG_DWIDTH_9BIT_x2        (7 << SLCDC_CFG_DWIDTH_BIT)
41*10465441SEvalZero #define SLCDC_CFG_CWIDTH_BIT            (8)
42*10465441SEvalZero #define SLCDC_CFG_CWIDTH_MASK           (0x3 << SLCDC_CFG_CWIDTH_BIT)
43*10465441SEvalZero #define SLCDC_CFG_CWIDTH_16BIT          (0 << SLCDC_CFG_CWIDTH_BIT)
44*10465441SEvalZero #define SLCDC_CFG_CWIDTH_8BIT           (1 << SLCDC_CFG_CWIDTH_BIT)
45*10465441SEvalZero #define SLCDC_CFG_CWIDTH_18BIT          (2 << SLCDC_CFG_CWIDTH_BIT)
46*10465441SEvalZero #define SLCDC_CFG_CWIDTH_24BIT          (3 << SLCDC_CFG_CWIDTH_BIT)
47*10465441SEvalZero #define SLCDC_CFG_CS_ACTIVE_LOW         (0 << 4)
48*10465441SEvalZero #define SLCDC_CFG_CS_ACTIVE_HIGH        (1 << 4)
49*10465441SEvalZero #define SLCDC_CFG_RS_CMD_LOW            (0 << 3)
50*10465441SEvalZero #define SLCDC_CFG_RS_CMD_HIGH           (1 << 3)
51*10465441SEvalZero #define SLCDC_CFG_CLK_ACTIVE_FALLING    (0 << 1)
52*10465441SEvalZero #define SLCDC_CFG_CLK_ACTIVE_RISING     (1 << 1)
53*10465441SEvalZero #define SLCDC_CFG_TYPE_PARALLEL         (0 << 0)
54*10465441SEvalZero #define SLCDC_CFG_TYPE_SERIAL           (1 << 0)
55*10465441SEvalZero 
56*10465441SEvalZero /* SLCD New Configure Register */
57*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_BIT        13
58*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_MASK       (0x7 << SLCDC_NEW_CFG_DWIDTH_BIT)
59*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_8BIT       (0 << SLCDC_NEW_CFG_DWIDTH_BIT)
60*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_9BIT       (1 << SLCDC_NEW_CFG_DWIDTH_BIT)
61*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_16BIT      (2 << SLCDC_NEW_CFG_DWIDTH_BIT)
62*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_18BIT      (3 << SLCDC_NEW_CFG_DWIDTH_BIT)
63*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_24BIT      (4 << SLCDC_NEW_CFG_DWIDTH_BIT)
64*10465441SEvalZero #define SLCDC_NEW_CFG_6800_MD           (1 << 11)
65*10465441SEvalZero #define SLCDC_NEW_CFG_CMD_9BIT          (1 << 10)       /* only use in old slcd */
66*10465441SEvalZero #define SLCDC_NEW_CFG_CMD_16BIT         (0 << 10)       /* only use in old slcd */
67*10465441SEvalZero #define SLCDC_NEW_CFG_DTIME_BIT         8
68*10465441SEvalZero #define SLCDC_NEW_CFG_DTIME_MASK        (0x3 << SLCDC_NEW_CFG_DTIME_BIT)
69*10465441SEvalZero #define SLCDC_NEW_CFG_DTIME_ONCE        (0 << SLCDC_NEW_CFG_DTIME_BIT)
70*10465441SEvalZero #define SLCDC_NEW_CFG_DTIME_TWICE       (1 << SLCDC_NEW_CFG_DTIME_BIT)
71*10465441SEvalZero #define SLCDC_NEW_CFG_DTIME_THREE       (2 << SLCDC_NEW_CFG_DTIME_BIT)
72*10465441SEvalZero #define SLCDC_NEW_CFG_CS_HIGH_IDLE      (0 << 5)
73*10465441SEvalZero #define SLCDC_NEW_CFG_CS_LOW_IDLE       (1 << 5)
74*10465441SEvalZero #define SLCDC_NEW_CFG_RS_CMD_LOW        (0 << 4)
75*10465441SEvalZero #define SLCDC_NEW_CFG_RS_CMD_HIGH       (1 << 4)
76*10465441SEvalZero #define SLCDC_NEW_CFG_CLK_ACTIVE_FALLING        (0 << 3)
77*10465441SEvalZero #define SLCDC_NEW_CFG_CLK_ACTIVE_RISING (1 << 3)
78*10465441SEvalZero #define SLCDC_NEW_CFG_DTYPE_PARALLEL    (0 << 2)
79*10465441SEvalZero #define SLCDC_NEW_CFG_DTYPE_SERIAL      (1 << 2)
80*10465441SEvalZero #define SLCDC_NEW_CFG_CTYPE_PARALLEL    (0 << 1)
81*10465441SEvalZero #define SLCDC_NEW_CFG_CTYPE_SERIAL      (1 << 1)
82*10465441SEvalZero #define SLCDC_NEW_CFG_FMT_CONV_EN       (1 << 0)
83*10465441SEvalZero 
84*10465441SEvalZero /* SLCD Control Register */
85*10465441SEvalZero #define SLCDC_CTRL_TE_INV           	(1 << 9)
86*10465441SEvalZero #define SLCDC_CTRL_NOT_USE_TE           (1 << 8)
87*10465441SEvalZero #define SLCDC_CTRL_DCSI_SEL             (1 << 7)
88*10465441SEvalZero #define SLCDC_CTRL_MIPI_MODE            (1 << 6)
89*10465441SEvalZero #define SLCDC_CTRL_NEW_MODE             (1 << 5)
90*10465441SEvalZero #define SLCDC_CTRL_FAST_MODE            (1 << 4)
91*10465441SEvalZero #define SLCDC_CTRL_GATE_MASK            (1 << 3)
92*10465441SEvalZero #define SLCDC_CTRL_DMA_MODE             (1 << 2)
93*10465441SEvalZero #define SLCDC_CTRL_DMA_START            (1 << 1)
94*10465441SEvalZero #define SLCDC_CTRL_DMA_EN               (1 << 0)
95*10465441SEvalZero 
96*10465441SEvalZero /* SLCD Status Register */
97*10465441SEvalZero #define SLCDC_STATE_BUSY                (1 << 0)
98*10465441SEvalZero 
99*10465441SEvalZero /* SLCD Data Register */
100*10465441SEvalZero #define SLCDC_DATA_RS_DATA              (0 << 30)
101*10465441SEvalZero #define SLCDC_DATA_RS_COMMAND           (1 << 30)
102*10465441SEvalZero 
103*10465441SEvalZero /*************************************************************************
104*10465441SEvalZero  * LCDC (LCD Controller)
105*10465441SEvalZero  *************************************************************************/
106*10465441SEvalZero 
107*10465441SEvalZero #define LCDC_CFG    (LCDC0_BASE + 0x00)
108*10465441SEvalZero #define LCDC_CTRL   (LCDC0_BASE + 0x30)
109*10465441SEvalZero #define LCDC_STATE  (LCDC0_BASE + 0x34)
110*10465441SEvalZero #define LCDC_OSDC   (LCDC0_BASE + 0x100)
111*10465441SEvalZero #define LCDC_OSDCTRL    (LCDC0_BASE + 0x104)
112*10465441SEvalZero #define LCDC_OSDS   (LCDC0_BASE + 0x108)
113*10465441SEvalZero #define LCDC_BGC0   (LCDC0_BASE + 0x10C)
114*10465441SEvalZero #define LCDC_BGC1   (LCDC0_BASE + 0x2C4)
115*10465441SEvalZero #define LCDC_KEY0   (LCDC0_BASE + 0x110)
116*10465441SEvalZero #define LCDC_KEY1   (LCDC0_BASE + 0x114)
117*10465441SEvalZero #define LCDC_ALPHA  (LCDC0_BASE + 0x118)
118*10465441SEvalZero #define LCDC_RGBC   (LCDC0_BASE + 0x90)
119*10465441SEvalZero #define LCDC_VAT    (LCDC0_BASE + 0x0c)
120*10465441SEvalZero #define LCDC_DAH    (LCDC0_BASE + 0x10)
121*10465441SEvalZero #define LCDC_DAV    (LCDC0_BASE + 0x14)
122*10465441SEvalZero #define LCDC_XYP0   (LCDC0_BASE + 0x120)
123*10465441SEvalZero #define LCDC_XYP1   (LCDC0_BASE + 0x124)
124*10465441SEvalZero #define LCDC_SIZE0  (LCDC0_BASE + 0x128)
125*10465441SEvalZero #define LCDC_SIZE1  (LCDC0_BASE + 0x12C)
126*10465441SEvalZero #define LCDC_VSYNC  (LCDC0_BASE + 0x04)
127*10465441SEvalZero #define LCDC_HSYNC  (LCDC0_BASE + 0x08)
128*10465441SEvalZero #define LCDC_PS     (LCDC0_BASE + 0x18)
129*10465441SEvalZero #define LCDC_CLS    (LCDC0_BASE + 0x1c)
130*10465441SEvalZero #define LCDC_SPL    (LCDC0_BASE + 0x20)
131*10465441SEvalZero #define LCDC_REV    (LCDC0_BASE + 0x24)
132*10465441SEvalZero #define LCDC_IID    (LCDC0_BASE + 0x38)
133*10465441SEvalZero #define LCDC_DA0    (LCDC0_BASE + 0x40)
134*10465441SEvalZero #define LCDC_SA0    (LCDC0_BASE + 0x44)
135*10465441SEvalZero #define LCDC_FID0   (LCDC0_BASE + 0x48)
136*10465441SEvalZero #define LCDC_CMD0   (LCDC0_BASE + 0x4c)
137*10465441SEvalZero #define LCDC_DA1    (LCDC0_BASE + 0x50)
138*10465441SEvalZero #define LCDC_SA1    (LCDC0_BASE + 0x54)
139*10465441SEvalZero #define LCDC_FID1   (LCDC0_BASE + 0x58)
140*10465441SEvalZero #define LCDC_CMD1   (LCDC0_BASE + 0x5c)
141*10465441SEvalZero #define LCDC_OFFS0  (LCDC0_BASE + 0x60)
142*10465441SEvalZero #define LCDC_PW0    (LCDC0_BASE + 0x64)
143*10465441SEvalZero #define LCDC_CNUM0  (LCDC0_BASE + 0x68)
144*10465441SEvalZero #define LCDC_DESSIZE0   (LCDC0_BASE + 0x6C)
145*10465441SEvalZero #define LCDC_OFFS1  (LCDC0_BASE + 0x70)
146*10465441SEvalZero #define LCDC_PW1    (LCDC0_BASE + 0x74)
147*10465441SEvalZero #define LCDC_CNUM1  (LCDC0_BASE + 0x78)
148*10465441SEvalZero #define LCDC_DESSIZE1   (LCDC0_BASE + 0x7C)
149*10465441SEvalZero #define LCDC_PCFG   (LCDC0_BASE + 0x2C0)
150*10465441SEvalZero #define LCDC_CPOS1      (0x78)
151*10465441SEvalZero #define LCDC_DUAL_CTRL      (0x2c8)
152*10465441SEvalZero #define LCDC_ENH_CFG        (0x400)
153*10465441SEvalZero #define LCDC_ENH_CSCCFG     (0x404)
154*10465441SEvalZero #define LCDC_ENH_LUMACFG    (0x408)
155*10465441SEvalZero #define LCDC_ENH_CHROCFG0   (0x40c)
156*10465441SEvalZero #define LCDC_ENH_CHROCFG1   (0x410)
157*10465441SEvalZero #define LCDC_ENH_DITHERCFG  (0x414)
158*10465441SEvalZero #define LCDC_ENH_STATUS     (0x418)
159*10465441SEvalZero #define LCDC_ENH_GAMMA      (0x800)
160*10465441SEvalZero #define LCDC_ENH_VEE        (0x1000)
161*10465441SEvalZero 
162*10465441SEvalZero /* LCD Configure Register */
163*10465441SEvalZero #define LCDC_CFG_LCDPIN_BIT 31
164*10465441SEvalZero #define LCDC_CFG_LCDPIN_MASK    (0x1 << LCDC_CFG_LCDPIN_BIT)
165*10465441SEvalZero #define LCDC_CFG_LCDPIN_LCD (0x0 << LCDC_CFG_LCDPIN_BIT)
166*10465441SEvalZero #define LCDC_CFG_LCDPIN_SLCD    (0x1 << LCDC_CFG_LCDPIN_BIT)
167*10465441SEvalZero #define LCDC_CFG_TVEPEH     (1 << 30)
168*10465441SEvalZero #define LCDC_CFG_NEWDES     (1 << 28)
169*10465441SEvalZero #define LCDC_CFG_PALBP      (1 << 27)
170*10465441SEvalZero #define LCDC_CFG_TVEN       (1 << 26)
171*10465441SEvalZero #define LCDC_CFG_RECOVER    (1 << 25)
172*10465441SEvalZero #define LCDC_CFG_PSM        (1 << 23)
173*10465441SEvalZero #define LCDC_CFG_CLSM       (1 << 22)
174*10465441SEvalZero #define LCDC_CFG_SPLM       (1 << 21)
175*10465441SEvalZero #define LCDC_CFG_REVM       (1 << 20)
176*10465441SEvalZero #define LCDC_CFG_HSYNM      (1 << 19)
177*10465441SEvalZero #define LCDC_CFG_PCLKM      (1 << 18)
178*10465441SEvalZero #define LCDC_CFG_INVDAT     (1 << 17)
179*10465441SEvalZero #define LCDC_CFG_SYNDIR_IN  (1 << 16)
180*10465441SEvalZero #define LCDC_CFG_PSP        (1 << 15)
181*10465441SEvalZero #define LCDC_CFG_CLSP       (1 << 14)
182*10465441SEvalZero #define LCDC_CFG_SPLP       (1 << 13)
183*10465441SEvalZero #define LCDC_CFG_REVP       (1 << 12)
184*10465441SEvalZero #define LCDC_CFG_HSP        (1 << 11)
185*10465441SEvalZero #define LCDC_CFG_PCP        (1 << 10)
186*10465441SEvalZero #define LCDC_CFG_DEP        (1 << 9)
187*10465441SEvalZero #define LCDC_CFG_VSP        (1 << 8)
188*10465441SEvalZero #define LCDC_CFG_MODE_TFT_18BIT     (1 << 7)
189*10465441SEvalZero #define LCDC_CFG_MODE_TFT_16BIT     (0 << 7)
190*10465441SEvalZero #define LCDC_CFG_MODE_TFT_24BIT     (1 << 6)
191*10465441SEvalZero #define LCDC_CFG_MODE_BIT   0
192*10465441SEvalZero #define LCDC_CFG_MODE_MASK  (0x0f << LCDC_CFG_MODE_BIT)
193*10465441SEvalZero #define LCDC_CFG_MODE_GENERIC_TFT   (0 << LCDC_CFG_MODE_BIT)
194*10465441SEvalZero #define LCDC_CFG_MODE_SPECIAL_TFT_1 (1 << LCDC_CFG_MODE_BIT)
195*10465441SEvalZero #define LCDC_CFG_MODE_SPECIAL_TFT_2 (2 << LCDC_CFG_MODE_BIT)
196*10465441SEvalZero #define LCDC_CFG_MODE_SPECIAL_TFT_3 (3 << LCDC_CFG_MODE_BIT)
197*10465441SEvalZero #define LCDC_CFG_MODE_NONINTER_CCIR656  (4 << LCDC_CFG_MODE_BIT)
198*10465441SEvalZero #define LCDC_CFG_MODE_INTER_CCIR656 (6 << LCDC_CFG_MODE_BIT)
199*10465441SEvalZero #define LCDC_CFG_MODE_SERIAL_TFT    (12 << LCDC_CFG_MODE_BIT)
200*10465441SEvalZero #define LCDC_CFG_MODE_LCM       (13 << LCDC_CFG_MODE_BIT)
201*10465441SEvalZero /* LCD Control Register */
202*10465441SEvalZero #define LCDC_CTRL_PINMD     (1 << 31)
203*10465441SEvalZero #define LCDC_CTRL_BST_BIT   28
204*10465441SEvalZero #define LCDC_CTRL_BST_MASK  (0x7 << LCDC_CTRL_BST_BIT)
205*10465441SEvalZero #define LCDC_CTRL_BST_4     (0 << LCDC_CTRL_BST_BIT)
206*10465441SEvalZero #define LCDC_CTRL_BST_8     (1 << LCDC_CTRL_BST_BIT)
207*10465441SEvalZero #define LCDC_CTRL_BST_16    (2 << LCDC_CTRL_BST_BIT)
208*10465441SEvalZero #define LCDC_CTRL_BST_32    (3 << LCDC_CTRL_BST_BIT)
209*10465441SEvalZero #define LCDC_CTRL_BST_64    (4 << LCDC_CTRL_BST_BIT)
210*10465441SEvalZero #define LCDC_CTRL_RGB565        (0 << 27)
211*10465441SEvalZero #define LCDC_CTRL_RGB555        (1 << 27)
212*10465441SEvalZero #define LCDC_CTRL_OFUP      (1 << 26)
213*10465441SEvalZero #define LCDC_CTRL_PDD_BIT   16
214*10465441SEvalZero #define LCDC_CTRL_PDD_MASK  (0xff << LCDC_CTRL_PDD_BIT)
215*10465441SEvalZero #define LCDC_CTRL_DACTE     (1 << 14)
216*10465441SEvalZero #define LCDC_CTRL_EOFM      (1 << 13)
217*10465441SEvalZero #define LCDC_CTRL_SOFM      (1 << 12)
218*10465441SEvalZero #define LCDC_CTRL_OFUM      (1 << 11)
219*10465441SEvalZero #define LCDC_CTRL_IFUM0     (1 << 10)
220*10465441SEvalZero #define LCDC_CTRL_IFUM1     (1 << 9)
221*10465441SEvalZero #define LCDC_CTRL_LDDM      (1 << 8)
222*10465441SEvalZero #define LCDC_CTRL_QDM       (1 << 7)
223*10465441SEvalZero #define LCDC_CTRL_BEDN      (1 << 6)
224*10465441SEvalZero #define LCDC_CTRL_PEDN      (1 << 5)
225*10465441SEvalZero #define LCDC_CTRL_DIS       (1 << 4)
226*10465441SEvalZero #define LCDC_CTRL_ENA       (1 << 3)
227*10465441SEvalZero #define LCDC_CTRL_BPP_BIT   0
228*10465441SEvalZero #define LCDC_CTRL_BPP_MASK  (0x07 << LCDC_CTRL_BPP_BIT)
229*10465441SEvalZero #define LCDC_CTRL_BPP_1     (0 << LCDC_CTRL_BPP_BIT)
230*10465441SEvalZero #define LCDC_CTRL_BPP_2     (1 << LCDC_CTRL_BPP_BIT)
231*10465441SEvalZero #define LCDC_CTRL_BPP_4     (2 << LCDC_CTRL_BPP_BIT)
232*10465441SEvalZero #define LCDC_CTRL_BPP_8     (3 << LCDC_CTRL_BPP_BIT)
233*10465441SEvalZero #define LCDC_CTRL_BPP_16    (4 << LCDC_CTRL_BPP_BIT)
234*10465441SEvalZero #define LCDC_CTRL_BPP_18_24 (5 << LCDC_CTRL_BPP_BIT)
235*10465441SEvalZero #define LCDC_CTRL_BPP_CMPS_24   (6 << LCDC_CTRL_BPP_BIT)
236*10465441SEvalZero #define LCDC_CTRL_BPP_30    (7 << LCDC_CTRL_BPP_BIT)
237*10465441SEvalZero /* LCD Status Register */
238*10465441SEvalZero #define LCDC_STATE_QD       (1 << 7)
239*10465441SEvalZero #define LCDC_STATE_EOF      (1 << 5)
240*10465441SEvalZero #define LCDC_STATE_SOF      (1 << 4)
241*10465441SEvalZero #define LCDC_STATE_OFU      (1 << 3)
242*10465441SEvalZero #define LCDC_STATE_IFU0     (1 << 2)
243*10465441SEvalZero #define LCDC_STATE_IFU1     (1 << 1)
244*10465441SEvalZero #define LCDC_STATE_LDD      (1 << 0)
245*10465441SEvalZero /* OSD Configure Register */
246*10465441SEvalZero #define LCDC_OSDC_PREMULTI1     (1 << 23)
247*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_BIT     21
248*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_MASK    (0x03 << LCDC_OSDC_COEF_SLE1_BIT)
249*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_0       (0 << LCDC_OSDC_COEF_SLE1_BIT)
250*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_1       (1 << LCDC_OSDC_COEF_SLE1_BIT)
251*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_2       (2 << LCDC_OSDC_COEF_SLE1_BIT)
252*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_3       (3 << LCDC_OSDC_COEF_SLE1_BIT)
253*10465441SEvalZero #define LCDC_OSDC_PREMULTI0     (1 << 20)
254*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_BIT     18
255*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_MASK    (0x03 << LCDC_OSDC_COEF_SLE0_BIT)
256*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_0       (0 << LCDC_OSDC_COEF_SLE0_BIT)
257*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_1       (1 << LCDC_OSDC_COEF_SLE0_BIT)
258*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_2       (2 << LCDC_OSDC_COEF_SLE0_BIT)
259*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_3       (3 << LCDC_OSDC_COEF_SLE0_BIT)
260*10465441SEvalZero #define LCDC_OSDC_ALPHAMD1      (1 << 17)
261*10465441SEvalZero #define LCDC_OSDC_SOFM1     (1 << 15)
262*10465441SEvalZero #define LCDC_OSDC_EOFM1     (1 << 14)
263*10465441SEvalZero #define LCDC_OSDC_SOFM0     (1 << 11)
264*10465441SEvalZero #define LCDC_OSDC_EOFM0     (1 << 10)
265*10465441SEvalZero #define LCDC_OSDC_DENDM     (1 << 9)
266*10465441SEvalZero #define LCDC_OSDC_F1EN      (1 << 4)
267*10465441SEvalZero #define LCDC_OSDC_F0EN      (1 << 3)
268*10465441SEvalZero #define LCDC_OSDC_ALPHAEN   (1 << 2)
269*10465441SEvalZero #define LCDC_OSDC_ALPHAMD0  (1 << 1)
270*10465441SEvalZero #define LCDC_OSDC_OSDEN     (1 << 0)
271*10465441SEvalZero /* OSD Controll Register */
272*10465441SEvalZero #define LCDC_OSDCTRL_IPU_CLKEN  (1 << 15)
273*10465441SEvalZero #define LCDC_OSDCTRL_RGB0_RGB565    (0 << 5)
274*10465441SEvalZero #define LCDC_OSDCTRL_RGB0_RGB555    (1 << 5)
275*10465441SEvalZero #define LCDC_OSDCTRL_RGB1_RGB565    (0 << 4)
276*10465441SEvalZero #define LCDC_OSDCTRL_RGB1_RGB555    (1 << 4)
277*10465441SEvalZero #define LCDC_OSDCTRL_BPP_BIT    0
278*10465441SEvalZero #define LCDC_OSDCTRL_BPP_MASK   (0x7<<LCDC_OSDCTRL_BPP_BIT)
279*10465441SEvalZero #define LCDC_OSDCTRL_BPP_15_16  (4 << LCDC_OSDCTRL_BPP_BIT)
280*10465441SEvalZero #define LCDC_OSDCTRL_BPP_18_24  (5 << LCDC_OSDCTRL_BPP_BIT)
281*10465441SEvalZero #define LCDC_OSDCTRL_BPP_CMPS_24    (6 << LCDC_OSDCTRL_BPP_BIT)
282*10465441SEvalZero #define LCDC_OSDCTRL_BPP_30     (7 << LCDC_OSDCTRL_BPP_BIT)
283*10465441SEvalZero /* OSD State Register */
284*10465441SEvalZero #define LCDC_OSDS_SOF1      (1 << 15)
285*10465441SEvalZero #define LCDC_OSDS_EOF1      (1 << 14)
286*10465441SEvalZero #define LCDC_OSDS_SOF0      (1 << 11)
287*10465441SEvalZero #define LCDC_OSDS_EOF0      (1 << 10)
288*10465441SEvalZero #define LCDC_OSDS_DEND      (1 << 8)
289*10465441SEvalZero /* Background 0 or Background 1 Color Register */
290*10465441SEvalZero #define LCDC_BGC_RED_OFFSET 16
291*10465441SEvalZero #define LCDC_BGC_RED_MASK   (0xFF << LCDC_BGC_RED_OFFSET)
292*10465441SEvalZero #define LCDC_BGC_GREEN_OFFSET    8
293*10465441SEvalZero #define LCDC_BGC_GREEN_MASK (0xFF << LCDC_BGC_GREEN_OFFSET)
294*10465441SEvalZero #define LCDC_BGC_BLUE_OFFSET    0
295*10465441SEvalZero #define LCDC_BGC_BLUE_MASK  (0xFF << LCDC_BGC_BLUE_OFFSET)
296*10465441SEvalZero /* Foreground 0 or Foreground 1 Color Key Register */
297*10465441SEvalZero #define LCDC_KEY_KEYEN      (1 << 31)
298*10465441SEvalZero #define LCDC_KEY_KEYMD      (1 << 30)
299*10465441SEvalZero #define LCDC_KEY_RED_OFFSET 16
300*10465441SEvalZero #define LCDC_KEY_RED_MASK   (0xFF << LCDC_KEY_RED_OFFSET)
301*10465441SEvalZero #define LCDC_KEY_GREEN_OFFSET   8
302*10465441SEvalZero #define LCDC_KEY_GREEN_MASK (0xFF << LCDC_KEY_GREEN_OFFSET)
303*10465441SEvalZero #define LCDC_KEY_BLUE_OFFSET    0
304*10465441SEvalZero #define LCDC_KEY_BLUE_MASK  (0xFF << LCDC_KEY_BLUE_OFFSET)
305*10465441SEvalZero #define LCDC_KEY_MASK       (LCDC_KEY_RED_MASK | LCDC_KEY_GREEN_MASK\
306*10465441SEvalZero /* ALPHA Register */
307*10465441SEvalZero #define LCDC_ALPHA1_OFFSET  8
308*10465441SEvalZero #define LCDC_ALPHA1_MASK        (0xFF << LCDC_ALPHA1_OFFSET)
309*10465441SEvalZero #define LCDC_ALPHA0_OFFSET  0
310*10465441SEvalZero #define LCDC_ALPHA0_MASK        (0xFF << LCDC_ALPHA0_OFFSET)
311*10465441SEvalZero /* IPU Restart Register */
312*10465441SEvalZero #define LCDC_IPUR_IPUREN        (1 << 31)
313*10465441SEvalZero #define LCDC_IPUR_IPURMASK  (0xFFFFFF)
314*10465441SEvalZero /* RGB Control Register */
315*10465441SEvalZero #define LCDC_RGBC_RGBDM     (1 << 15)
316*10465441SEvalZero #define LCDC_RGBC_DMM       (1 << 14)
317*10465441SEvalZero #define LCDC_RGBC_RGBFMT    (1 << 7)
318*10465441SEvalZero #define LCDC_RGBC_ODDRGB_BIT    4
319*10465441SEvalZero #define LCDC_RGBC_ODDRGB_MASK   (0x7 << LCDC_RGBC_ODDRGB_BIT)
320*10465441SEvalZero #define LCDC_RGBC_ODD_RGB   (0 << LCDC_RGBC_ODDRGB_BIT)
321*10465441SEvalZero #define LCDC_RGBC_ODD_RBG   (1 << LCDC_RGBC_ODDRGB_BIT)
322*10465441SEvalZero #define LCDC_RGBC_ODD_GRB   (2 << LCDC_RGBC_ODDRGB_BIT)
323*10465441SEvalZero #define LCDC_RGBC_ODD_GBR   (3 << LCDC_RGBC_ODDRGB_BIT)
324*10465441SEvalZero #define LCDC_RGBC_ODD_BRG   (4 << LCDC_RGBC_ODDRGB_BIT)
325*10465441SEvalZero #define LCDC_RGBC_ODD_BGR   (5 << LCDC_RGBC_ODDRGB_BIT)
326*10465441SEvalZero #define LCDC_RGBC_EVENRGB_BIT   0
327*10465441SEvalZero #define LCDC_RGBC_EVENRGB_MASK  (0x7<<LCDC_RGBC_EVENRGB_BIT)
328*10465441SEvalZero #define LCDC_RGBC_EVEN_RGB  0
329*10465441SEvalZero #define LCDC_RGBC_EVEN_RBG  1
330*10465441SEvalZero #define LCDC_RGBC_EVEN_GRB  2
331*10465441SEvalZero #define LCDC_RGBC_EVEN_GBR  3
332*10465441SEvalZero #define LCDC_RGBC_EVEN_BRG  4
333*10465441SEvalZero #define LCDC_RGBC_EVEN_BGR  5
334*10465441SEvalZero /* Vertical Synchronize Register */
335*10465441SEvalZero #define LCDC_VSYNC_VPS_BIT  16
336*10465441SEvalZero #define LCDC_VSYNC_VPS_MASK (0xfff << LCDC_VSYNC_VPS_BIT)
337*10465441SEvalZero #define LCDC_VSYNC_VPE_BIT  0
338*10465441SEvalZero #define LCDC_VSYNC_VPE_MASK (0xfff << LCDC_VSYNC_VPE_BIT)
339*10465441SEvalZero /* Horizontal Synchronize Register */
340*10465441SEvalZero #define LCDC_HSYNC_HPS_BIT  16
341*10465441SEvalZero #define LCDC_HSYNC_HPS_MASK (0xfff << LCDC_HSYNC_HPS_BIT)
342*10465441SEvalZero #define LCDC_HSYNC_HPE_BIT  0
343*10465441SEvalZero #define LCDC_HSYNC_HPE_MASK (0xfff << LCDC_HSYNC_HPE_BIT)
344*10465441SEvalZero /* Virtual Area Setting Register */
345*10465441SEvalZero #define LCDC_VAT_HT_BIT     16
346*10465441SEvalZero #define LCDC_VAT_HT_MASK        (0xfff << LCDC_VAT_HT_BIT)
347*10465441SEvalZero #define LCDC_VAT_VT_BIT     0
348*10465441SEvalZero #define LCDC_VAT_VT_MASK        (0xfff << LCDC_VAT_VT_BIT)
349*10465441SEvalZero /* Display Area Horizontal Start/End Point Register */
350*10465441SEvalZero #define LCDC_DAH_HDS_BIT        16
351*10465441SEvalZero #define LCDC_DAH_HDS_MASK   (0xfff << LCDC_DAH_HDS_BIT)
352*10465441SEvalZero #define LCDC_DAH_HDE_BIT        0
353*10465441SEvalZero #define LCDC_DAH_HDE_MASK   (0xfff << LCDC_DAH_HDE_BIT)
354*10465441SEvalZero /* Display Area Vertical Start/End Point Register */
355*10465441SEvalZero #define LCDC_DAV_VDS_BIT        16
356*10465441SEvalZero #define LCDC_DAV_VDS_MASK   (0xfff << LCDC_DAV_VDS_BIT)
357*10465441SEvalZero #define LCDC_DAV_VDE_BIT        0
358*10465441SEvalZero #define LCDC_DAV_VDE_MASK   (0xfff << LCDC_DAV_VDE_BIT)
359*10465441SEvalZero /* Foreground 0 or Foreground 1 XY Position Register */
360*10465441SEvalZero #define LCDC_XYP_YPOS_BIT   16
361*10465441SEvalZero #define LCDC_XYP_YPOS_MASK  (0xfff << LCDC_XYP_YPOS_BIT)
362*10465441SEvalZero #define LCDC_XYP_XPOS_BIT   0
363*10465441SEvalZero #define LCDC_XYP_XPOS_MASK  (0xfff << LCDC_XYP_XPOS_BIT)
364*10465441SEvalZero /* Foreground 0 or Foreground 1 Size Register */
365*10465441SEvalZero #define LCDC_SIZE_HEIGHT_BIT    16
366*10465441SEvalZero #define LCDC_SIZE_HEIGHT_MASK   (0xfff << LCDC_SIZE_HEIGHT_BIT)
367*10465441SEvalZero #define LCDC_SIZE_WIDTH_BIT 0
368*10465441SEvalZero #define LCDC_SIZE_WIDTH_MASK    (0xfff << LCDC_SIZE_WIDTH_BIT)
369*10465441SEvalZero /* PS Signal Setting */
370*10465441SEvalZero #define LCDC_PS_PSS_BIT     16
371*10465441SEvalZero #define LCDC_PS_PSS_MASK        (0xfff << LCDC_PS_PSS_BIT)
372*10465441SEvalZero #define LCDC_PS_PSE_BIT     0
373*10465441SEvalZero #define LCDC_PS_PSE_MASK        (0xfff << LCDC_PS_PSE_BIT)
374*10465441SEvalZero /* CLS Signal Setting */
375*10465441SEvalZero #define LCDC_CLS_CLSS_BIT   16
376*10465441SEvalZero #define LCDC_CLS_CLSS_MASK  (0xfff << LCDC_CLS_CLSS_BIT)
377*10465441SEvalZero #define LCDC_CLS_CLSE_BIT   0
378*10465441SEvalZero #define LCDC_CLS_CLSE_MASK  (0xfff << LCDC_CLS_CLSE_BIT)
379*10465441SEvalZero /* SPL Signal Setting */
380*10465441SEvalZero #define LCDC_SPL_SPLS_BIT   16
381*10465441SEvalZero #define LCDC_SPL_SPLS_MASK  (0xfff << LCDC_SPL_SPLS_BIT)
382*10465441SEvalZero #define LCDC_SPL_SPLE_BIT   0
383*10465441SEvalZero #define LCDC_SPL_SPLE_MASK  (0xfff << LCDC_SPL_SPLE_BIT)
384*10465441SEvalZero /* REV Signal Setting */
385*10465441SEvalZero #define LCDC_REV_REVS_BIT   16
386*10465441SEvalZero #define LCDC_REV_REVS_MASK  (0xfff << LCDC_REV_REVS_BIT)
387*10465441SEvalZero /* DMA Command 0 or 1 Register */
388*10465441SEvalZero #define LCDC_CMD_SOFINT     (1 << 31)
389*10465441SEvalZero #define LCDC_CMD_EOFINT     (1 << 30)
390*10465441SEvalZero #define LCDC_CMD_CMD        (1 << 29)
391*10465441SEvalZero #define LCDC_CMD_PAL        (1 << 28)
392*10465441SEvalZero #define LCDC_CMD_COMPEN     (1 << 27)
393*10465441SEvalZero #define LCDC_CMD_FRM_EN     (1 << 26)
394*10465441SEvalZero #define LCDC_CMD_FIELD_SEL  (1 << 25)
395*10465441SEvalZero #define LCDC_CMD_16X16BLOCK (1 << 24)
396*10465441SEvalZero #define LCDC_CMD_LEN_BIT        0
397*10465441SEvalZero #define LCDC_CMD_LEN_MASK   (0xffffff << LCDC_CMD_LEN_BIT)
398*10465441SEvalZero /* DMA Offsize Register 0,1 */
399*10465441SEvalZero #define LCDC_OFFS_BIT       0
400*10465441SEvalZero #define LCDC_OFFS_OFFSIZE_MASK  (0xffffff << LCDC_OFFS_BIT)
401*10465441SEvalZero /* DMA Page Width Register 0,1 */
402*10465441SEvalZero #define LCDC_PW_BIT     0
403*10465441SEvalZero #define LCDC_PW_PAGEWIDTH_MASK  (0xffffff << LCDC_PW_BIT)
404*10465441SEvalZero /* DMA Command Counter Register 0,1 */
405*10465441SEvalZero #define LCDC_CNUM_BIT        0
406*10465441SEvalZero #define LCDC_CNUM_CNUM_MASK (0xff << LCDC_CNUM_BIT)
407*10465441SEvalZero #define LCDC_CPOS_ALPHAMD1  (1 << 31)
408*10465441SEvalZero #define LCDC_CPOS_RGB_RGB565    (0 << 30)
409*10465441SEvalZero #define LCDC_CPOS_RGB_RGB555    (1 << 30)
410*10465441SEvalZero #define LCDC_CPOS_BPP_BIT   27
411*10465441SEvalZero #define LCDC_CPOS_BPP_MASK  (0x07 << LCDC_CPOS_BPP_BIT)
412*10465441SEvalZero #define LCDC_CPOS_BPP_16    (4 << LCDC_CPOS_BPP_BIT)
413*10465441SEvalZero #define LCDC_CPOS_BPP_18_24 (5 << LCDC_CPOS_BPP_BIT)
414*10465441SEvalZero #define LCDC_CPOS_BPP_CMPS_24   (6 << LCDC_CPOS_BPP_BIT)
415*10465441SEvalZero #define LCDC_CPOS_BPP_30    (7 << LCDC_CPOS_BPP_BIT)
416*10465441SEvalZero #define LCDC_CPOS_PREMULTI  (1 << 26)
417*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_BIT  24
418*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_MASK (0x3 << LCDC_CPOS_COEF_SLE_BIT)
419*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_0    (0 << LCDC_CPOS_COEF_SLE_BIT)
420*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_1    (1 << LCDC_CPOS_COEF_SLE_BIT)
421*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_2    (2 << LCDC_CPOS_COEF_SLE_BIT)
422*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_3    (3 << LCDC_CPOS_COEF_SLE_BIT)
423*10465441SEvalZero #define LCDC_CPOS_YPOS_BIT  12
424*10465441SEvalZero #define LCDC_CPOS_YPOS_MASK (0xfff << LCDC_CPOS_YPOS_BIT)
425*10465441SEvalZero #define LCDC_CPOS_XPOS_BIT  0
426*10465441SEvalZero #define LCDC_CPOS_XPOS_MASK (0xfff << LCDC_CPOS_XPOS_BIT)
427*10465441SEvalZero /* Foreground 0,1 Size Register */
428*10465441SEvalZero #define LCDC_DESSIZE_ALPHA_BIT  24
429*10465441SEvalZero #define LCDC_DESSIZE_ALPHA_MASK (0xff << LCDC_DESSIZE_ALPHA_BIT)
430*10465441SEvalZero #define LCDC_DESSIZE_HEIGHT_BIT 12
431*10465441SEvalZero #define LCDC_DESSIZE_HEIGHT_MASK    (0xfff << LCDC_DESSIZE_HEIGHT_BIT)
432*10465441SEvalZero #define LCDC_DESSIZE_WIDTH_BIT  0
433*10465441SEvalZero #define LCDC_DESSIZE_WIDTH_MASK (0xfff << LCDC_DESSIZE_WIDTH_BIT)
434*10465441SEvalZero /* Priority level threshold configure Register */
435*10465441SEvalZero #define LCDC_PCFG_LCDC_PRI_MD   (1 << 31)
436*10465441SEvalZero #define LCDC_PCFG_HP_BST_BIT    28
437*10465441SEvalZero #define LCDC_PCFG_HP_BST_MASK   (0x7 << LCDC_PCFG_HP_BST_BIT)
438*10465441SEvalZero #define LCDC_PCFG_HP_BST_4  (0 << LCDC_PCFG_HP_BST_BIT)
439*10465441SEvalZero #define LCDC_PCFG_HP_BST_8  (1 << LCDC_PCFG_HP_BST_BIT)
440*10465441SEvalZero #define LCDC_PCFG_HP_BST_16 (2 << LCDC_PCFG_HP_BST_BIT)
441*10465441SEvalZero #define LCDC_PCFG_HP_BST_32 (3 << LCDC_PCFG_HP_BST_BIT)
442*10465441SEvalZero #define LCDC_PCFG_HP_BST_C16    (5 << LCDC_PCFG_HP_BST_BIT)
443*10465441SEvalZero #define LCDC_PCFG_HP_BST_64 (4 << LCDC_PCFG_HP_BST_BIT)
444*10465441SEvalZero #define LCDC_PCFG_HP_BST_DIS    (7 << LCDC_PCFG_HP_BST_BIT)
445*10465441SEvalZero #define LCDC_PCFG_PCFG2_BIT 18
446*10465441SEvalZero #define LCDC_PCFG_PCFG2_MASK    (0x1ff << LCDC_PCFG_PCFG2_BIT)
447*10465441SEvalZero #define LCDC_PCFG_PCFG1_BIT 9
448*10465441SEvalZero #define LCDC_PCFG_PCFG1_MASK    (0x1ff << LCDC_PCFG_PCFG1_BIT)
449*10465441SEvalZero #define LCDC_PCFG_PCFG0_BIT 0
450*10465441SEvalZero #define LCDC_PCFG_PCFG0_MASK    (0x1ff << LCDC_PCFG_PCFG0_BIT)
451*10465441SEvalZero /* Dual LCDC Channel Control register */
452*10465441SEvalZero #define LCDC_DUAL_CTRL_IPU_WR_SEL   (1 << 8)
453*10465441SEvalZero #define LCDC_DUAL_CTRL_TFT_SEL      (1 << 6)
454*10465441SEvalZero #define LCDC_DUAL_CTRL_PRI_IPU_EN   (1 << 5)
455*10465441SEvalZero #define LCDC_DUAL_CTRL_PRI_IPU_BIT  3
456*10465441SEvalZero #define LCDC_DUAL_CTRL_PRI_IPU_MASK (0x3 << LCDC_DUAL_CTRL_PRI_IPU_BIT)
457*10465441SEvalZero 
458*10465441SEvalZero 
459*10465441SEvalZero #ifdef __cplusplus
460*10465441SEvalZero }
461*10465441SEvalZero #endif
462*10465441SEvalZero 
463*10465441SEvalZero #endif /* _X1000_SLCDC_H_ */
464