1/*
2 * Header file required by picodlp panel driver
3 *
4 * Copyright (C) 2009-2011 Texas Instruments
5 * Author: Mythri P K <mythripk@ti.com>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14 * more details.
15 *
16 * You should have received a copy of the GNU General Public License along with
17 * this program.  If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#ifndef __OMAP2_DISPLAY_PANEL_PICODLP_H
21#define __OMAP2_DISPLAY_PANEL_PICODLP_H
22
23/* Commands used for configuring picodlp panel */
24
25#define MAIN_STATUS			0x03
26#define PBC_CONTROL			0x08
27#define INPUT_SOURCE			0x0B
28#define INPUT_RESOLUTION		0x0C
29#define DATA_FORMAT			0x0D
30#define IMG_ROTATION			0x0E
31#define LONG_FLIP			0x0F
32#define SHORT_FLIP			0x10
33#define TEST_PAT_SELECT			0x11
34#define R_DRIVE_CURRENT			0x12
35#define G_DRIVE_CURRENT			0x13
36#define B_DRIVE_CURRENT			0x14
37#define READ_REG_SELECT			0x15
38#define RGB_DRIVER_ENABLE		0x16
39
40#define CPU_IF_MODE			0x18
41#define FRAME_RATE			0x19
42#define CPU_IF_SYNC_METHOD		0x1A
43#define CPU_IF_SOF			0x1B
44#define CPU_IF_EOF			0x1C
45#define CPU_IF_SLEEP			0x1D
46
47#define SEQUENCE_MODE			0x1E
48#define SOFT_RESET			0x1F
49#define FRONT_END_RESET			0x21
50#define AUTO_PWR_ENABLE			0x22
51
52#define VSYNC_LINE_DELAY		0x23
53#define CPU_PI_HORIZ_START		0x24
54#define CPU_PI_VERT_START		0x25
55#define CPU_PI_HORIZ_WIDTH		0x26
56#define CPU_PI_VERT_HEIGHT		0x27
57
58#define PIXEL_MASK_CROP			0x28
59#define CROP_FIRST_LINE			0x29
60#define CROP_LAST_LINE			0x2A
61#define CROP_FIRST_PIXEL		0x2B
62#define CROP_LAST_PIXEL			0x2C
63#define DMD_PARK_TRIGGER		0x2D
64
65#define MISC_REG			0x30
66
67/* AGC registers */
68#define AGC_CTRL			0x50
69#define AGC_CLIPPED_PIXS		0x55
70#define AGC_BRIGHT_PIXS			0x56
71#define AGC_BG_PIXS			0x57
72#define AGC_SAFETY_MARGIN		0x17
73
74/* Color Coordinate Adjustment registers */
75#define CCA_ENABLE		0x5E
76#define CCA_C1A			0x5F
77#define CCA_C1B			0x60
78#define CCA_C1C			0x61
79#define CCA_C2A			0x62
80#define CCA_C2B			0x63
81#define CCA_C2C			0x64
82#define CCA_C3A			0x65
83#define CCA_C3B			0x66
84#define CCA_C3C			0x67
85#define CCA_C7A			0x71
86#define CCA_C7B			0x72
87#define CCA_C7C			0x73
88
89/**
90 * DLP Pico Processor 2600 comes with flash
91 * We can do DMA operations from flash for accessing Look Up Tables
92 */
93#define DMA_STATUS			0x100
94#define FLASH_ADDR_BYTES		0x74
95#define FLASH_DUMMY_BYTES		0x75
96#define FLASH_WRITE_BYTES		0x76
97#define FLASH_READ_BYTES		0x77
98#define FLASH_OPCODE			0x78
99#define FLASH_START_ADDR		0x79
100#define FLASH_DUMMY2			0x7A
101#define FLASH_WRITE_DATA		0x7B
102
103#define TEMPORAL_DITH_DISABLE		0x7E
104#define SEQ_CONTROL			0x82
105#define SEQ_VECTOR			0x83
106
107/* DMD is Digital Micromirror Device */
108#define DMD_BLOCK_COUNT			0x84
109#define DMD_VCC_CONTROL			0x86
110#define DMD_PARK_PULSE_COUNT		0x87
111#define DMD_PARK_PULSE_WIDTH		0x88
112#define DMD_PARK_DELAY			0x89
113#define DMD_SHADOW_ENABLE		0x8E
114#define SEQ_STATUS			0x8F
115#define FLASH_CLOCK_CONTROL		0x98
116#define DMD_PARK			0x2D
117
118#define SDRAM_BIST_ENABLE		0x46
119#define DDR_DRIVER_STRENGTH		0x9A
120#define SDC_ENABLE			0x9D
121#define SDC_BUFF_SWAP_DISABLE		0xA3
122#define CURTAIN_CONTROL			0xA6
123#define DDR_BUS_SWAP_ENABLE		0xA7
124#define DMD_TRC_ENABLE			0xA8
125#define DMD_BUS_SWAP_ENABLE		0xA9
126
127#define ACTGEN_ENABLE			0xAE
128#define ACTGEN_CONTROL			0xAF
129#define ACTGEN_HORIZ_BP			0xB0
130#define ACTGEN_VERT_BP			0xB1
131
132/* Look Up Table access */
133#define CMT_SPLASH_LUT_START_ADDR	0xFA
134#define CMT_SPLASH_LUT_DEST_SELECT	0xFB
135#define CMT_SPLASH_LUT_DATA		0xFC
136#define SEQ_RESET_LUT_START_ADDR	0xFD
137#define SEQ_RESET_LUT_DEST_SELECT	0xFE
138#define SEQ_RESET_LUT_DATA		0xFF
139
140/* Input source definitions */
141#define PARALLEL_RGB		0
142#define INT_TEST_PATTERN	1
143#define SPLASH_SCREEN		2
144#define CPU_INTF		3
145#define BT656			4
146
147/* Standard input resolution definitions */
148#define QWVGA_LANDSCAPE		3	/* (427h*240v) */
149#define WVGA_864_LANDSCAPE	21	/* (864h*480v) */
150#define WVGA_DMD_OPTICAL_TEST	35	/* (608h*684v) */
151
152/* Standard data format definitions */
153#define RGB565			0
154#define RGB666			1
155#define RGB888			2
156
157/* Test Pattern definitions */
158#define TPG_CHECKERBOARD	0
159#define TPG_BLACK		1
160#define TPG_WHITE		2
161#define TPG_RED			3
162#define TPG_BLUE		4
163#define TPG_GREEN		5
164#define TPG_VLINES_BLACK	6
165#define TPG_HLINES_BLACK	7
166#define TPG_VLINES_ALT		8
167#define TPG_HLINES_ALT		9
168#define TPG_DIAG_LINES		10
169#define TPG_GREYRAMP_VERT	11
170#define TPG_GREYRAMP_HORIZ	12
171#define TPG_ANSI_CHECKERBOARD	13
172
173/* sequence mode definitions */
174#define SEQ_FREE_RUN		0
175#define SEQ_LOCK		1
176
177/* curtain color definitions */
178#define CURTAIN_BLACK		0
179#define CURTAIN_RED		1
180#define CURTAIN_GREEN		2
181#define CURTAIN_BLUE		3
182#define CURTAIN_YELLOW		4
183#define CURTAIN_MAGENTA		5
184#define CURTAIN_CYAN		6
185#define CURTAIN_WHITE		7
186
187/* LUT definitions */
188#define CMT_LUT_NONE		0
189#define CMT_LUT_GREEN		1
190#define CMT_LUT_RED		2
191#define CMT_LUT_BLUE		3
192#define CMT_LUT_ALL		4
193#define SPLASH_LUT		5
194
195#define SEQ_LUT_NONE		0
196#define SEQ_DRC_LUT_0		1
197#define SEQ_DRC_LUT_1		2
198#define SEQ_DRC_LUT_2		3
199#define SEQ_DRC_LUT_3		4
200#define SEQ_SEQ_LUT		5
201#define SEQ_DRC_LUT_ALL		6
202#define WPC_PROGRAM_LUT		7
203
204#define BITSTREAM_START_ADDR		0x00000000
205#define BITSTREAM_SIZE			0x00040000
206
207#define WPC_FW_0_START_ADDR		0x00040000
208#define WPC_FW_0_SIZE			0x00000ce8
209
210#define SEQUENCE_0_START_ADDR		0x00044000
211#define SEQUENCE_0_SIZE			0x00001000
212
213#define SEQUENCE_1_START_ADDR		0x00045000
214#define SEQUENCE_1_SIZE			0x00000d10
215
216#define SEQUENCE_2_START_ADDR		0x00046000
217#define SEQUENCE_2_SIZE			0x00000d10
218
219#define SEQUENCE_3_START_ADDR		0x00047000
220#define SEQUENCE_3_SIZE			0x00000d10
221
222#define SEQUENCE_4_START_ADDR		0x00048000
223#define SEQUENCE_4_SIZE			0x00000d10
224
225#define SEQUENCE_5_START_ADDR		0x00049000
226#define SEQUENCE_5_SIZE			0x00000d10
227
228#define SEQUENCE_6_START_ADDR		0x0004a000
229#define SEQUENCE_6_SIZE			0x00000d10
230
231#define CMT_LUT_0_START_ADDR		0x0004b200
232#define CMT_LUT_0_SIZE			0x00000600
233
234#define CMT_LUT_1_START_ADDR		0x0004b800
235#define CMT_LUT_1_SIZE			0x00000600
236
237#define CMT_LUT_2_START_ADDR		0x0004be00
238#define CMT_LUT_2_SIZE			0x00000600
239
240#define CMT_LUT_3_START_ADDR		0x0004c400
241#define CMT_LUT_3_SIZE			0x00000600
242
243#define CMT_LUT_4_START_ADDR		0x0004ca00
244#define CMT_LUT_4_SIZE			0x00000600
245
246#define CMT_LUT_5_START_ADDR		0x0004d000
247#define CMT_LUT_5_SIZE			0x00000600
248
249#define CMT_LUT_6_START_ADDR		0x0004d600
250#define CMT_LUT_6_SIZE			0x00000600
251
252#define DRC_TABLE_0_START_ADDR		0x0004dc00
253#define DRC_TABLE_0_SIZE		0x00000100
254
255#define SPLASH_0_START_ADDR		0x0004dd00
256#define SPLASH_0_SIZE			0x00032280
257
258#define SEQUENCE_7_START_ADDR		0x00080000
259#define SEQUENCE_7_SIZE			0x00000d10
260
261#define SEQUENCE_8_START_ADDR		0x00081800
262#define SEQUENCE_8_SIZE			0x00000d10
263
264#define SEQUENCE_9_START_ADDR		0x00083000
265#define SEQUENCE_9_SIZE			0x00000d10
266
267#define CMT_LUT_7_START_ADDR		0x0008e000
268#define CMT_LUT_7_SIZE			0x00000600
269
270#define CMT_LUT_8_START_ADDR		0x0008e800
271#define CMT_LUT_8_SIZE			0x00000600
272
273#define CMT_LUT_9_START_ADDR		0x0008f000
274#define CMT_LUT_9_SIZE			0x00000600
275
276#define SPLASH_1_START_ADDR		0x0009a000
277#define SPLASH_1_SIZE			0x00032280
278
279#define SPLASH_2_START_ADDR		0x000cd000
280#define SPLASH_2_SIZE			0x00032280
281
282#define SPLASH_3_START_ADDR		0x00100000
283#define SPLASH_3_SIZE			0x00032280
284
285#define OPT_SPLASH_0_START_ADDR		0x00134000
286#define OPT_SPLASH_0_SIZE		0x000cb100
287
288#endif
289