video: tegra: Added initial smartdimmer support
[linux-2.6.git] / drivers / video / tegra / dc / dc_reg.h
1 /*
2  * drivers/video/tegra/dc/dc_reg.h
3  *
4  * Copyright (C) 2010 Google, Inc.
5  * Author: Erik Gilling <konkers@android.com>
6  *
7  * This software is licensed under the terms of the GNU General Public
8  * License version 2, as published by the Free Software Foundation, and
9  * may be copied, distributed, and modified under those terms.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  */
17
18 #ifndef __DRIVERS_VIDEO_TEGRA_DC_DC_REG_H
19 #define __DRIVERS_VIDEO_TEGRA_DC_DC_REG_H
20
21 #define DC_CMD_GENERAL_INCR_SYNCPT              0x000
22 #define DC_CMD_GENERAL_INCR_SYNCPT_CNTRL        0x001
23 #define DC_CMD_GENERAL_INCR_SYNCPT_ERROR        0x002
24 #define DC_CMD_WIN_A_INCR_SYNCPT                0x008
25 #define DC_CMD_WIN_A_INCR_SYNCPT_CNTRL          0x009
26 #define DC_CMD_WIN_A_INCR_SYNCPT_ERROR          0x00a
27 #define DC_CMD_WIN_B_INCR_SYNCPT                0x010
28 #define DC_CMD_WIN_B_INCR_SYNCPT_CNTRL          0x011
29 #define DC_CMD_WIN_B_INCR_SYNCPT_ERROR          0x012
30 #define DC_CMD_WIN_C_INCR_SYNCPT                0x018
31 #define DC_CMD_WIN_C_INCR_SYNCPT_CNTRL          0x019
32 #define DC_CMD_WIN_C_INCR_SYNCPT_ERROR          0x01a
33 #define DC_CMD_CONT_SYNCPT_VSYNC                0x028
34 #define DC_CMD_DISPLAY_COMMAND_OPTION0          0x031
35 #define  MSF_POLARITY_HIGH                      (0 << 0)
36 #define  MSF_POLARITY_LOW                       (1 << 0)
37 #define  MSF_DISABLE                            (0 << 1)
38 #define  MSF_ENABLE                             (1 << 1)
39 #define  MSF_LSPI                               (0 << 2)
40 #define  MSF_LDC                                (1 << 2)
41 #define  MSF_LSDI                               (2 << 2)
42
43 #define DC_CMD_DISPLAY_COMMAND                  0x032
44 #define  DISP_COMMAND_RAISE             (1 << 0)
45 #define  DISP_CTRL_MODE_STOP            (0 << 5)
46 #define  DISP_CTRL_MODE_C_DISPLAY       (1 << 5)
47 #define  DISP_CTRL_MODE_NC_DISPLAY      (2 << 5)
48 #define  DISP_COMMAND_RAISE_VECTOR(x)   (((x) & 0x1f) << 22)
49 #define  DISP_COMMAND_RAISE_CHANNEL_ID(x)       (((x) & 0xf) << 27)
50
51 #define DC_CMD_SIGNAL_RAISE                     0x033
52 #define DC_CMD_DISPLAY_POWER_CONTROL            0x036
53 #define  PW0_ENABLE             (1 << 0)
54 #define  PW1_ENABLE             (1 << 2)
55 #define  PW2_ENABLE             (1 << 4)
56 #define  PW3_ENABLE             (1 << 6)
57 #define  PW4_ENABLE             (1 << 8)
58 #define  PM0_ENABLE             (1 << 16)
59 #define  PM1_ENABLE             (1 << 18)
60 #define  SPI_ENABLE             (1 << 24)
61 #define  HSPI_ENABLE            (1 << 25)
62
63 #define DC_CMD_INT_STATUS                       0x037
64 #define DC_CMD_INT_MASK                         0x038
65 #define DC_CMD_INT_ENABLE                       0x039
66 #define DC_CMD_INT_TYPE                         0x03a
67 #define DC_CMD_INT_POLARITY                     0x03b
68 #define  CTXSW_INT              (1 << 0)
69 #define  FRAME_END_INT          (1 << 1)
70 #define  V_BLANK_INT            (1 << 2)
71 #define  H_BLANK_INT            (1 << 3)
72 #define  V_PULSE3_INT           (1 << 4)
73 #define  SPI_BUSY_INT           (1 << 7)
74 #define  WIN_A_UF_INT           (1 << 8)
75 #define  WIN_B_UF_INT           (1 << 9)
76 #define  WIN_C_UF_INT           (1 << 10)
77 #define  MSF_INT                (1 << 12)
78 #define  SSF_INT                (1 << 13)
79 #define  WIN_A_OF_INT           (1 << 14)
80 #define  WIN_B_OF_INT           (1 << 15)
81 #define  WIN_C_OF_INT           (1 << 16)
82 #define  GPIO_0_INT             (1 << 18)
83 #define  GPIO_1_INT             (1 << 19)
84 #define  GPIO_2_INT             (1 << 20)
85
86 #define DC_CMD_SIGNAL_RAISE1                    0x03c
87 #define DC_CMD_SIGNAL_RAISE2                    0x03d
88 #define DC_CMD_SIGNAL_RAISE3                    0x03e
89 #define DC_CMD_STATE_ACCESS                     0x040
90 #define  READ_MUX_ASSEMBLY      (0 << 0)
91 #define  READ_MUX_ACTIVE        (1 << 0)
92 #define  WRITE_MUX_ASSEMBLY     (0 << 2)
93 #define  WRITE_MUX_ACTIVE       (1 << 2)
94
95 #define DC_CMD_STATE_CONTROL                    0x041
96 #define  GENERAL_ACT_REQ        (1 << 0)
97 #define  WIN_A_ACT_REQ          (1 << 1)
98 #define  WIN_B_ACT_REQ          (1 << 2)
99 #define  WIN_C_ACT_REQ          (1 << 3)
100 #define  GENERAL_UPDATE         (1 << 8)
101 #define  WIN_A_UPDATE           (1 << 9)
102 #define  WIN_B_UPDATE           (1 << 10)
103 #define  WIN_C_UPDATE           (1 << 11)
104 #define  NC_HOST_TRIG           (1 << 24)
105
106 #define DC_CMD_DISPLAY_WINDOW_HEADER            0x042
107 #define  WINDOW_A_SELECT                (1 << 4)
108 #define  WINDOW_B_SELECT                (1 << 5)
109 #define  WINDOW_C_SELECT                (1 << 6)
110
111 #define DC_CMD_REG_ACT_CONTROL                  0x043
112
113 #define DC_COM_CRC_CONTROL                      0x300
114 #define DC_COM_CRC_CHECKSUM                     0x301
115 #define DC_COM_PIN_OUTPUT_ENABLE0               0x302
116 #define DC_COM_PIN_OUTPUT_ENABLE1               0x303
117 #define DC_COM_PIN_OUTPUT_ENABLE2               0x304
118 #define DC_COM_PIN_OUTPUT_ENABLE3               0x305
119 #define  PIN_OUTPUT_LSPI_OUTPUT_EN              (1 << 8)
120 #define  PIN_OUTPUT_LSPI_OUTPUT_DIS             (1 << 8)
121 #define DC_COM_PIN_OUTPUT_POLARITY0             0x306
122
123 #define DC_COM_PIN_OUTPUT_POLARITY1             0x307
124 #define  LHS_OUTPUT_POLARITY_LOW        (1 << 30)
125 #define  LVS_OUTPUT_POLARITY_LOW        (1 << 28)
126 #define  LSC0_OUTPUT_POLARITY_LOW       (1 << 24)
127
128 #define DC_COM_PIN_OUTPUT_POLARITY2             0x308
129
130 #define DC_COM_PIN_OUTPUT_POLARITY3             0x309
131 #define  LSPI_OUTPUT_POLARITY_LOW       (1 << 8)
132
133 #define DC_COM_PIN_OUTPUT_DATA0                 0x30a
134 #define DC_COM_PIN_OUTPUT_DATA1                 0x30b
135 #define DC_COM_PIN_OUTPUT_DATA2                 0x30c
136 #define DC_COM_PIN_OUTPUT_DATA3                 0x30d
137 #define DC_COM_PIN_INPUT_ENABLE0                0x30e
138 #define DC_COM_PIN_INPUT_ENABLE1                0x30f
139 #define DC_COM_PIN_INPUT_ENABLE2                0x310
140 #define DC_COM_PIN_INPUT_ENABLE3                0x311
141 #define  PIN_INPUT_LSPI_INPUT_EN                (1 << 8)
142 #define  PIN_INPUT_LSPI_INPUT_DIS               (1 << 8)
143 #define DC_COM_PIN_INPUT_DATA0                  0x312
144 #define DC_COM_PIN_INPUT_DATA1                  0x313
145 #define DC_COM_PIN_OUTPUT_SELECT0               0x314
146 #define DC_COM_PIN_OUTPUT_SELECT1               0x315
147 #define DC_COM_PIN_OUTPUT_SELECT2               0x316
148 #define DC_COM_PIN_OUTPUT_SELECT3               0x317
149 #define DC_COM_PIN_OUTPUT_SELECT4               0x318
150 #define DC_COM_PIN_OUTPUT_SELECT5               0x319
151 #define DC_COM_PIN_OUTPUT_SELECT6               0x31a
152
153 #define PIN5_LM1_LCD_M1_OUTPUT_MASK     (7 << 4)
154 #define PIN5_LM1_LCD_M1_OUTPUT_M1       (0 << 4)
155 #define PIN5_LM1_LCD_M1_OUTPUT_LD21     (2 << 4)
156 #define PIN5_LM1_LCD_M1_OUTPUT_PM1      (3 << 4)
157
158 #define  PIN1_LHS_OUTPUT                (1 << 30)
159 #define  PIN1_LVS_OUTPUT                (1 << 28)
160
161 #define DC_COM_PIN_MISC_CONTROL                 0x31b
162 #define DC_COM_PM0_CONTROL                      0x31c
163 #define DC_COM_PM0_DUTY_CYCLE                   0x31d
164 #define DC_COM_PM1_CONTROL                      0x31e
165 #define DC_COM_PM1_DUTY_CYCLE                   0x31f
166
167 #define PM_PERIOD_SHIFT                 18
168 #define PM_CLK_DIVIDER_SHIFT            4
169
170 #define DC_COM_SPI_CONTROL                      0x320
171 #define DC_COM_SPI_START_BYTE                   0x321
172 #define DC_COM_HSPI_WRITE_DATA_AB               0x322
173 #define DC_COM_HSPI_WRITE_DATA_CD               0x323
174 #define DC_COM_HSPI_CS_DC                       0x324
175 #define DC_COM_SCRATCH_REGISTER_A               0x325
176 #define DC_COM_SCRATCH_REGISTER_B               0x326
177 #define DC_COM_GPIO_CTRL                        0x327
178 #define DC_COM_GPIO_DEBOUNCE_COUNTER            0x328
179 #define DC_COM_CRC_CHECKSUM_LATCHED             0x329
180
181 #define DC_DISP_DISP_SIGNAL_OPTIONS0            0x400
182 #define  H_PULSE_0_ENABLE               (1 << 8)
183 #define  H_PULSE_1_ENABLE               (1 << 10)
184 #define  H_PULSE_2_ENABLE               (1 << 12)
185 #define  V_PULSE_0_ENABLE               (1 << 16)
186 #define  V_PULSE_1_ENABLE               (1 << 18)
187 #define  V_PULSE_2_ENABLE               (1 << 19)
188 #define  V_PULSE_3_ENABLE               (1 << 20)
189 #define  M0_ENABLE                      (1 << 24)
190 #define  M1_ENABLE                      (1 << 26)
191
192 #define DC_DISP_DISP_SIGNAL_OPTIONS1            0x401
193 #define  DI_ENABLE                      (1 << 16)
194 #define  PP_ENABLE                      (1 << 18)
195
196 #define DC_DISP_DISP_WIN_OPTIONS                0x402
197 #define  CURSOR_ENABLE                  (1 << 16)
198 #define  TVO_ENABLE                     (1 << 28)
199 #define  DSI_ENABLE                     (1 << 29)
200 #define  HDMI_ENABLE                    (1 << 30)
201
202 #define DC_DISP_MEM_HIGH_PRIORITY               0x403
203 #define DC_DISP_MEM_HIGH_PRIORITY_TIMER         0x404
204 #define DC_DISP_DISP_TIMING_OPTIONS             0x405
205 #define  VSYNC_H_POSITION(x)            ((x) & 0xfff)
206
207 #define DC_DISP_REF_TO_SYNC                     0x406
208 #define DC_DISP_SYNC_WIDTH                      0x407
209 #define DC_DISP_BACK_PORCH                      0x408
210 #define DC_DISP_DISP_ACTIVE                     0x409
211 #define DC_DISP_FRONT_PORCH                     0x40a
212 #define DC_DISP_H_PULSE0_CONTROL                0x40b
213 #define DC_DISP_H_PULSE0_POSITION_A             0x40c
214 #define DC_DISP_H_PULSE0_POSITION_B             0x40d
215 #define DC_DISP_H_PULSE0_POSITION_C             0x40e
216 #define DC_DISP_H_PULSE0_POSITION_D             0x40f
217 #define DC_DISP_H_PULSE1_CONTROL                0x410
218 #define DC_DISP_H_PULSE1_POSITION_A             0x411
219 #define DC_DISP_H_PULSE1_POSITION_B             0x412
220 #define DC_DISP_H_PULSE1_POSITION_C             0x413
221 #define DC_DISP_H_PULSE1_POSITION_D             0x414
222 #define DC_DISP_H_PULSE2_CONTROL                0x415
223 #define DC_DISP_H_PULSE2_POSITION_A             0x416
224 #define DC_DISP_H_PULSE2_POSITION_B             0x417
225 #define DC_DISP_H_PULSE2_POSITION_C             0x418
226 #define DC_DISP_H_PULSE2_POSITION_D             0x419
227 #define DC_DISP_V_PULSE0_CONTROL                0x41a
228 #define DC_DISP_V_PULSE0_POSITION_A             0x41b
229 #define DC_DISP_V_PULSE0_POSITION_B             0x41c
230 #define DC_DISP_V_PULSE0_POSITION_C             0x41d
231 #define DC_DISP_V_PULSE1_CONTROL                0x41e
232 #define DC_DISP_V_PULSE1_POSITION_A             0x41f
233 #define DC_DISP_V_PULSE1_POSITION_B             0x420
234 #define DC_DISP_V_PULSE1_POSITION_C             0x421
235 #define DC_DISP_V_PULSE2_CONTROL                0x422
236 #define DC_DISP_V_PULSE2_POSITION_A             0x423
237 #define DC_DISP_V_PULSE3_CONTROL                0x424
238 #define DC_DISP_V_PULSE3_POSITION_A             0x425
239 #define DC_DISP_M0_CONTROL                      0x426
240 #define DC_DISP_M1_CONTROL                      0x427
241 #define DC_DISP_DI_CONTROL                      0x428
242 #define DC_DISP_PP_CONTROL                      0x429
243 #define DC_DISP_PP_SELECT_A                     0x42a
244 #define DC_DISP_PP_SELECT_B                     0x42b
245 #define DC_DISP_PP_SELECT_C                     0x42c
246 #define DC_DISP_PP_SELECT_D                     0x42d
247
248 #define  PULSE_MODE_NORMAL              (0 << 3)
249 #define  PULSE_MODE_ONE_CLOCK           (1 << 3)
250 #define  PULSE_POLARITY_HIGH            (0 << 4)
251 #define  PULSE_POLARITY_LOW             (1 << 4)
252 #define  PULSE_QUAL_ALWAYS              (0 << 6)
253 #define  PULSE_QUAL_VACTIVE             (2 << 6)
254 #define  PULSE_QUAL_VACTIVE1            (3 << 6)
255 #define  PULSE_LAST_START_A             (0 << 8)
256 #define  PULSE_LAST_END_A               (1 << 8)
257 #define  PULSE_LAST_START_B             (2 << 8)
258 #define  PULSE_LAST_END_B               (3 << 8)
259 #define  PULSE_LAST_START_C             (4 << 8)
260 #define  PULSE_LAST_END_C               (5 << 8)
261 #define  PULSE_LAST_START_D             (6 << 8)
262 #define  PULSE_LAST_END_D               (7 << 8)
263
264 #define  PULSE_START(x)                 ((x) & 0xfff)
265 #define  PULSE_END(x)                   (((x) & 0xfff) << 16)
266
267 #define DC_DISP_DISP_CLOCK_CONTROL              0x42e
268 #define  PIXEL_CLK_DIVIDER_PCD1         (0 << 8)
269 #define  PIXEL_CLK_DIVIDER_PCD1H        (1 << 8)
270 #define  PIXEL_CLK_DIVIDER_PCD2         (2 << 8)
271 #define  PIXEL_CLK_DIVIDER_PCD3         (3 << 8)
272 #define  PIXEL_CLK_DIVIDER_PCD4         (4 << 8)
273 #define  PIXEL_CLK_DIVIDER_PCD6         (5 << 8)
274 #define  PIXEL_CLK_DIVIDER_PCD8         (6 << 8)
275 #define  PIXEL_CLK_DIVIDER_PCD9         (7 << 8)
276 #define  PIXEL_CLK_DIVIDER_PCD12        (8 << 8)
277 #define  PIXEL_CLK_DIVIDER_PCD16        (9 << 8)
278 #define  PIXEL_CLK_DIVIDER_PCD18        (10 << 8)
279 #define  PIXEL_CLK_DIVIDER_PCD24        (11 << 8)
280 #define  PIXEL_CLK_DIVIDER_PCD13        (12 << 8)
281 #define  SHIFT_CLK_DIVIDER(x)           ((x) & 0xff)
282
283 #define DC_DISP_DISP_INTERFACE_CONTROL          0x42f
284 #define  DISP_DATA_FORMAT_DF1P1C        (0 << 0)
285 #define  DISP_DATA_FORMAT_DF1P2C24B     (1 << 0)
286 #define  DISP_DATA_FORMAT_DF1P2C18B     (2 << 0)
287 #define  DISP_DATA_FORMAT_DF1P2C16B     (3 << 0)
288 #define  DISP_DATA_FORMAT_DF2S          (5 << 0)
289 #define  DISP_DATA_FORMAT_DF3S          (6 << 0)
290 #define  DISP_DATA_FORMAT_DFSPI         (7 << 0)
291 #define  DISP_DATA_FORMAT_DF1P3C24B     (8 << 0)
292 #define  DISP_DATA_FORMAT_DF1P3C18B     (9 << 0)
293 #define  DISP_DATA_ALIGNMENT_MSB        (0 << 8)
294 #define  DISP_DATA_ALIGNMENT_LSB        (1 << 8)
295 #define  DISP_DATA_ORDER_RED_BLUE       (0 << 9)
296 #define  DISP_DATA_ORDER_BLUE_RED       (1 << 9)
297
298 #define DC_DISP_DISP_COLOR_CONTROL              0x430
299 #define  BASE_COLOR_SIZE666             (0 << 0)
300 #define  BASE_COLOR_SIZE111             (1 << 0)
301 #define  BASE_COLOR_SIZE222             (2 << 0)
302 #define  BASE_COLOR_SIZE333             (3 << 0)
303 #define  BASE_COLOR_SIZE444             (4 << 0)
304 #define  BASE_COLOR_SIZE555             (5 << 0)
305 #define  BASE_COLOR_SIZE565             (6 << 0)
306 #define  BASE_COLOR_SIZE332             (7 << 0)
307 #define  BASE_COLOR_SIZE888             (8 << 0)
308
309 #define  DITHER_CONTROL_DISABLE         (0 << 8)
310 #define  DITHER_CONTROL_ORDERED         (2 << 8)
311 #define  DITHER_CONTROL_ERRDIFF         (3 << 8)
312
313 #define DC_DISP_SHIFT_CLOCK_OPTIONS             0x431
314 #define DC_DISP_DATA_ENABLE_OPTIONS             0x432
315 #define   DE_SELECT_ACTIVE_BLANK        0x0
316 #define   DE_SELECT_ACTIVE              0x1
317 #define   DE_SELECT_ACTIVE_IS           0x2
318 #define   DE_CONTROL_ONECLK             (0 << 2)
319 #define   DE_CONTROL_NORMAL             (1 << 2)
320 #define   DE_CONTROL_EARLY_EXT          (2 << 2)
321 #define   DE_CONTROL_EARLY              (3 << 2)
322 #define   DE_CONTROL_ACTIVE_BLANK       (4 << 2)
323
324 #define DC_DISP_SERIAL_INTERFACE_OPTIONS        0x433
325 #define DC_DISP_LCD_SPI_OPTIONS                 0x434
326 #define DC_DISP_BORDER_COLOR                    0x435
327 #define DC_DISP_COLOR_KEY0_LOWER                0x436
328 #define DC_DISP_COLOR_KEY0_UPPER                0x437
329 #define DC_DISP_COLOR_KEY1_LOWER                0x438
330 #define DC_DISP_COLOR_KEY1_UPPER                0x439
331 #define DC_DISP_CURSOR_FOREGROUND               0x43c
332 #define DC_DISP_CURSOR_BACKGROUND               0x43d
333 #define DC_DISP_CURSOR_START_ADDR               0x43e
334 #define DC_DISP_CURSOR_START_ADDR_NS            0x43f
335 #define DC_DISP_CURSOR_POSITION                 0x440
336 #define DC_DISP_CURSOR_POSITION_NS              0x441
337 #define DC_DISP_INIT_SEQ_CONTROL                0x442
338 #define DC_DISP_SPI_INIT_SEQ_DATA_A             0x443
339 #define DC_DISP_SPI_INIT_SEQ_DATA_B             0x444
340 #define DC_DISP_SPI_INIT_SEQ_DATA_C             0x445
341 #define DC_DISP_SPI_INIT_SEQ_DATA_D             0x446
342 #define DC_DISP_DC_MCCIF_FIFOCTRL               0x480
343 #define DC_DISP_MCCIF_DISPLAY0A_HYST            0x481
344 #define DC_DISP_MCCIF_DISPLAY0B_HYST            0x482
345 #define DC_DISP_MCCIF_DISPLAY0C_HYST            0x483
346 #define DC_DISP_MCCIF_DISPLAY1B_HYST            0x484
347 #define DC_DISP_DAC_CRT_CTRL                    0x4c0
348 #define DC_DISP_DISP_MISC_CONTROL               0x4c1
349
350 #define DC_WIN_COLOR_PALETTE(x)                 (0x500 + (x))
351
352 #define DC_WIN_PALETTE_COLOR_EXT                0x600
353 #define DC_WIN_H_FILTER_P(x)                    (0x601 + (x))
354 #define DC_WIN_CSC_YOF                          0x611
355 #define DC_WIN_CSC_KYRGB                        0x612
356 #define DC_WIN_CSC_KUR                          0x613
357 #define DC_WIN_CSC_KVR                          0x614
358 #define DC_WIN_CSC_KUG                          0x615
359 #define DC_WIN_CSC_KVG                          0x616
360 #define DC_WIN_CSC_KUB                          0x617
361 #define DC_WIN_CSC_KVB                          0x618
362 #define DC_WIN_V_FILTER_P(x)                    (0x619 + (x))
363 #define DC_WIN_WIN_OPTIONS                      0x700
364 #define  H_DIRECTION_INCREMENT          (0 << 0)
365 #define  H_DIRECTION_DECREMENT          (1 << 0)
366 #define  V_DIRECTION_INCREMENT          (0 << 2)
367 #define  V_DIRECTION_DECREMENT          (1 << 2)
368 #define  COLOR_EXPAND                   (1 << 6)
369 #define  H_FILTER_ENABLE                (1 << 8)
370 #define  V_FILTER_ENABLE                (1 << 10)
371 #define  CP_ENABLE                      (1 << 16)
372 #define  CSC_ENABLE                     (1 << 18)
373 #define  DV_ENABLE                      (1 << 20)
374 #define  WIN_ENABLE                     (1 << 30)
375
376 #define DC_WIN_BYTE_SWAP                        0x701
377 #define  BYTE_SWAP_NOSWAP               0
378 #define  BYTE_SWAP_SWAP2                1
379 #define  BYTE_SWAP_SWAP4                2
380 #define  BYTE_SWAP_SWAP4HW              3
381
382 #define DC_WIN_BUFFER_CONTROL                   0x702
383 #define  BUFFER_CONTROL_HOST            0
384 #define  BUFFER_CONTROL_VI              1
385 #define  BUFFER_CONTROL_EPP             2
386 #define  BUFFER_CONTROL_MPEGE           3
387 #define  BUFFER_CONTROL_SB2D            4
388
389 #define DC_WIN_COLOR_DEPTH                      0x703
390
391 #define DC_WIN_POSITION                         0x704
392 #define  H_POSITION(x)          (((x) & 0xfff) << 0)
393 #define  V_POSITION(x)          (((x) & 0xfff) << 16)
394
395 #define DC_WIN_SIZE                             0x705
396 #define  H_SIZE(x)              (((x) & 0xfff) << 0)
397 #define  V_SIZE(x)              (((x) & 0xfff) << 16)
398
399 #define DC_WIN_PRESCALED_SIZE                   0x706
400 #define  H_PRESCALED_SIZE(x)    (((x) & 0x3fff) << 0)
401 #define  V_PRESCALED_SIZE(x)    (((x) & 0xfff) << 16)
402
403 #define DC_WIN_H_INITIAL_DDA                    0x707
404 #define DC_WIN_V_INITIAL_DDA                    0x708
405 #define DC_WIN_DDA_INCREMENT                    0x709
406 #define  H_DDA_INC(x)           (((x) & 0xffff) << 0)
407 #define  V_DDA_INC(x)           (((x) & 0xffff) << 16)
408
409 #define DC_WIN_LINE_STRIDE                      0x70a
410 #define  LINE_STRIDE(x)         (x)
411 #define  UV_LINE_STRIDE(x)      (((x) & 0xffff) << 16)
412 #define DC_WIN_BUF_STRIDE                       0x70b
413 #define DC_WIN_UV_BUF_STRIDE                    0x70c
414 #define DC_WIN_BUFFER_ADDR_MODE                 0x70d
415 #define  DC_WIN_BUFFER_ADDR_MODE_LINEAR         (0 << 0)
416 #define  DC_WIN_BUFFER_ADDR_MODE_LINEAR_UV      (0 << 16)
417 #define  DC_WIN_BUFFER_ADDR_MODE_TILE           (1 << 0)
418 #define  DC_WIN_BUFFER_ADDR_MODE_TILE_UV        (1 << 16)
419 #define DC_WIN_DV_CONTROL                       0x70e
420 #define DC_WIN_BLEND_NOKEY                      0x70f
421 #define DC_WIN_BLEND_1WIN                       0x710
422 #define DC_WIN_BLEND_2WIN_X                     0x711
423 #define DC_WIN_BLEND_2WIN_Y                     0x712
424 #define DC_WIN_BLEND_3WIN_XY                    0x713
425 #define  CKEY_NOKEY                     (0 << 0)
426 #define  CKEY_KEY0                      (1 << 0)
427 #define  CKEY_KEY1                      (2 << 0)
428 #define  CKEY_KEY01                     (3 << 0)
429 #define  BLEND_CONTROL_FIX              (0 << 2)
430 #define  BLEND_CONTROL_ALPHA            (1 << 2)
431 #define  BLEND_CONTROL_DEPENDANT        (2 << 2)
432 #define  BLEND_CONTROL_PREMULT          (3 << 2)
433 #define  BLEND_WEIGHT0(x)               (((x) & 0xff) << 8)
434 #define  BLEND_WEIGHT1(x)               (((x) & 0xff) << 16)
435 #define  BLEND(key, control, weight0, weight1)                  \
436           (CKEY_ ## key | BLEND_CONTROL_ ## control |           \
437            BLEND_WEIGHT0(weight0) | BLEND_WEIGHT1(weight1))
438
439
440 #define DC_WIN_HP_FETCH_CONTROL                 0x714
441 #define DC_WINBUF_START_ADDR                    0x800
442 #define DC_WINBUF_START_ADDR_NS                 0x801
443 #define DC_WINBUF_START_ADDR_U                  0x802
444 #define DC_WINBUF_START_ADDR_U_NS               0x803
445 #define DC_WINBUF_START_ADDR_V                  0x804
446 #define DC_WINBUF_START_ADDR_V_NS               0x805
447 #define DC_WINBUF_ADDR_H_OFFSET                 0x806
448 #define DC_WINBUF_ADDR_H_OFFSET_NS              0x807
449 #define DC_WINBUF_ADDR_V_OFFSET                 0x808
450 #define DC_WINBUF_ADDR_V_OFFSET_NS              0x809
451 #define DC_WINBUF_UFLOW_STATUS                  0x80a
452
453
454 #define DC_DISP_SD_CONTROL                      0x4c2
455 #define  SD_ENABLE_NORMAL               (1 << 0)
456 #define  SD_ENABLE_ONESHOT              (2 << 0)
457 #define  SD_USE_VID_LUMA                (1 << 2)
458 #define  SD_BIN_WIDTH_ONE               (0 << 3)
459 #define  SD_BIN_WIDTH_TWO               (1 << 3)
460 #define  SD_BIN_WIDTH_FOUR              (2 << 3)
461 #define  SD_BIN_WIDTH_EIGHT             (3 << 3)
462 #define  SD_AGGRESSIVENESS(x)           (((x) & 0x7) << 5)
463 #define  SD_HW_UPDATE_DLY(x)            (((x) & 0x3) << 8)
464 #define  SD_ONESHOT_ENABLE              (1 << 10)
465 #define  SD_CORRECTION_MODE_AUTO        (0 << 11)
466 #define  SD_CORRECTION_MODE_MAN         (1 << 11)
467
468 #define DC_DISP_SD_CSC_COEFF                    0x4c3
469 #define  SD_CSC_COEFF_R(x)              (((x) & 0xf) << 4)
470 #define  SD_CSC_COEFF_G(x)              (((x) & 0xf) << 12)
471 #define  SD_CSC_COEFF_B(x)              (((x) & 0xf) << 20)
472
473 #define DC_DISP_SD_LUT(i)                       (0x4c4 + i)
474 #define DC_DISP_SD_LUT_NUM                      9
475 #define  SD_LUT_R(x)                    (((x) & 0xff) << 0)
476 #define  SD_LUT_G(x)                    (((x) & 0xff) << 8)
477 #define  SD_LUT_B(x)                    (((x) & 0xff) << 16)
478
479 #define DC_DISP_SD_FLICKER_CONTROL              0x4cd
480 #define  SD_FC_TIME_LIMIT(x)            (((x) & 0xff) << 0)
481 #define  SD_FC_THRESHOLD(x)             (((x) & 0xff) << 8)
482
483 #define DC_DISP_SD_PIXEL_COUNT                  0x4ce
484
485 #define DC_DISP_SD_HISTOGRAM(i)                 (0x4cf + i)
486 #define DC_DISP_SD_HISTOGRAM_NUM                8
487 #define  SD_HISTOGRAM_BIN_0(val)        (((val) & (0xff << 0)) >> 0)
488 #define  SD_HISTOGRAM_BIN_1(val)        (((val) & (0xff << 8)) >> 8)
489 #define  SD_HISTOGRAM_BIN_2(val)        (((val) & (0xff << 16)) >> 16)
490 #define  SD_HISTOGRAM_BIN_3(val)        (((val) & (0xff << 24)) >> 24)
491
492 #define DC_DISP_SD_BL_PARAMETERS                0x4d7
493 #define  SD_BLP_TIME_CONSTANT(x)        (((x) & 0x7ff) << 0)
494 #define  SD_BLP_STEP(x)                 (((x) & 0xff) << 8)
495
496 #define DC_DISP_SD_BL_TF(i)                     (0x4d8 + i)
497 #define DC_DISP_SD_BL_TF_NUM                    4
498 #define  SD_BL_TF_POINT_0(x)            (((x) & 0xff) << 0)
499 #define  SD_BL_TF_POINT_1(x)            (((x) & 0xff) << 8)
500 #define  SD_BL_TF_POINT_2(x)            (((x) & 0xff) << 16)
501 #define  SD_BL_TF_POINT_3(x)            (((x) & 0xff) << 24)
502
503 #define DC_DISP_SD_BL_CONTROL                   0x4dc
504 #define  SD_BLC_MODE_MAN                (0 << 0)
505 #define  SD_BLC_MODE_AUTO               (1 << 1)
506 #define  SD_BLC_BRIGHTNESS(val)         (((val) & (0xff << 8)) >> 8)
507
508 #define DC_DISP_SD_HW_K_VALUES                  0x4dd
509 #define  SD_HW_K_R(val)                 (((val) & (0x3ff << 0)) >> 0)
510 #define  SD_HW_K_G(val)                 (((val) & (0x3ff << 10)) >> 10)
511 #define  SD_HW_K_B(val)                 (((val) & (0x3ff << 20)) >> 20)
512
513 #define DC_DISP_SD_MAN_K_VALUES                 0x4de
514 #define  SD_MAN_K_R(x)                  (((x) & 0x3ff) << 0)
515 #define  SD_MAN_K_G(x)                  (((x) & 0x3ff) << 10)
516 #define  SD_MAN_K_B(x)                  (((x) & 0x3ff) << 20)
517
518 #endif