2 /* drivers/video/sc8825/lcd_nt35516_spi.c
\r
4 * Support for nt35516 spi LCD device
\r
6 * Copyright (C) 2010 Spreadtrum
\r
10 #include <asm/arch/sprd_lcd.h>
\r
11 #include "../sprdfb.h"
\r
15 #define LCD_PRINT printk
\r
17 #define LCD_PRINT(...)
\r
22 #define NT35516_SpiWriteCmd(cmd) \
\r
24 spi_send_cmd((cmd & 0xFF));\
\r
27 #define NT35516_SpiWriteData(data)\
\r
29 spi_send_data((data & 0xFF));\
\r
32 static int32_t nt35516_rgb_spi_init(struct panel_spec *self)
\r
35 spi_send_cmd_t spi_send_cmd = self->info.rgb->bus_info.spi->ops->spi_send_cmd;
\r
36 spi_send_data_t spi_send_data = self->info.rgb->bus_info.spi->ops->spi_send_data;
\r
37 spi_read_t spi_read = self->info.rgb->bus_info.spi->ops->spi_read;
\r
39 // NT35516 + AUO 4.29'
\r
40 // VCC=IOVCC=3.3V RGB_24Bit
\r
42 //NT35516_SpiWriteCmd(0xDB00);
\r
47 NT35516_SpiWriteCmd(0xFF);
\r
48 NT35516_SpiWriteData(0xAA);//AA
\r
49 NT35516_SpiWriteData(0x55);//55
\r
50 NT35516_SpiWriteData(0x25);//08
\r
51 NT35516_SpiWriteData(0x01);//01
\r
53 //NT35516_SpiWriteCmd(0xFA0F); NT35516_SpiWriteData(0x20);
\r
55 //NT35516_SpiWriteCmd(0xF300); NT35516_SpiWriteData(0x02);
\r
56 //NT35516_SpiWriteCmd(0xF303); NT35516_SpiWriteData(0x15);
\r
59 NT35516_SpiWriteCmd(0xF0);
\r
60 NT35516_SpiWriteData(0x55); //Manufacture Command Set Control
\r
61 NT35516_SpiWriteData(0xAA);
\r
62 NT35516_SpiWriteData(0x52);
\r
63 NT35516_SpiWriteData(0x08);
\r
64 NT35516_SpiWriteData(0x00);
\r
66 NT35516_SpiWriteCmd(0xB8);
\r
67 NT35516_SpiWriteData(0x01);
\r
68 NT35516_SpiWriteData(0x02);
\r
69 NT35516_SpiWriteData(0x02);
\r
70 NT35516_SpiWriteData(0x02);
\r
72 //NT35516_SpiWriteCmd(0xBC00); NT35516_SpiWriteData(0x05); //Zig-Zag Inversion
\r
73 //NT35516_SpiWriteCmd(0xBC01); NT35516_SpiWriteData(0x05);
\r
74 //NT35516_SpiWriteCmd(0xBC02); NT35516_SpiWriteData(0x05);
\r
76 //NT35516_SpiWriteCmd(0x4C00); NT35516_SpiWriteData(0x11); //DB4=1,Enable Vivid Color,DB4=0 Disable Vivid Color
\r
79 NT35516_SpiWriteCmd(0xF0);
\r
80 NT35516_SpiWriteData(0x55); //Manufacture Command Set Control
\r
81 NT35516_SpiWriteData(0xAA);
\r
82 NT35516_SpiWriteData(0x52);
\r
83 NT35516_SpiWriteData(0x08);
\r
84 NT35516_SpiWriteData(0x01);//Page1
\r
86 NT35516_SpiWriteCmd(0xB0);
\r
87 NT35516_SpiWriteData(0x05); // Setting AVDD Voltage 6V
\r
88 NT35516_SpiWriteData(0x05);
\r
89 NT35516_SpiWriteData(0x05);
\r
91 NT35516_SpiWriteCmd(0xB6);
\r
92 NT35516_SpiWriteData(0x44); // Setting AVEE boosting time 2.5*vpnl
\r
93 NT35516_SpiWriteData(0x44);
\r
94 NT35516_SpiWriteData(0x44);
\r
96 NT35516_SpiWriteCmd(0xB1);
\r
97 NT35516_SpiWriteData(0x05); // Setting AVEE Voltage -6V
\r
98 NT35516_SpiWriteData(0x05);
\r
99 NT35516_SpiWriteData(0x05);
\r
101 //Setting AVEE boosting time -2.5xVPNL
\r
102 NT35516_SpiWriteCmd(0xB7);
\r
103 NT35516_SpiWriteData(0x34);
\r
104 NT35516_SpiWriteData(0x34);
\r
105 NT35516_SpiWriteData(0x34);
\r
107 //Setting VGLX boosting time AVEE-AVDD
\r
108 NT35516_SpiWriteCmd(0xBA);
\r
109 NT35516_SpiWriteData(0x14); //0x24 --> 0x14
\r
110 NT35516_SpiWriteData(0x14);
\r
111 NT35516_SpiWriteData(0x14);
\r
114 NT35516_SpiWriteCmd(0xBC);
\r
115 NT35516_SpiWriteData(0x00);
\r
116 NT35516_SpiWriteData(0xA0);//VGMP 0x88=4.7V 0x78=4.5V 0xA0=5.0V
\r
117 NT35516_SpiWriteData(0x00);//VGSP
\r
120 NT35516_SpiWriteCmd(0xBD);
\r
121 NT35516_SpiWriteData(0x00);
\r
122 NT35516_SpiWriteData(0xA0);//VGMN 0x88=-4.7V 0x78=-4.5V 0xA0=-5.0V
\r
123 NT35516_SpiWriteData(0x00);//VGSN
\r
125 NT35516_SpiWriteCmd(0xBE);
\r
126 NT35516_SpiWriteData(0x57); // Setting VCOM Offset Voltage 0x4E¸ÄΪ0x57 20111019 LIYAN
\r
128 //GAMMA RED Positive
\r
129 NT35516_SpiWriteCmd(0xD1);
\r
130 NT35516_SpiWriteData(0x00);
\r
131 NT35516_SpiWriteData(0x32);
\r
132 NT35516_SpiWriteData(0x00);
\r
133 NT35516_SpiWriteData(0x41);
\r
134 NT35516_SpiWriteData(0x00);
\r
135 NT35516_SpiWriteData(0x54);
\r
136 NT35516_SpiWriteData(0x00);
\r
137 NT35516_SpiWriteData(0x67);
\r
138 NT35516_SpiWriteData(0x00);
\r
139 NT35516_SpiWriteData(0x7A);
\r
140 NT35516_SpiWriteData(0x00);
\r
141 NT35516_SpiWriteData(0x98);
\r
142 NT35516_SpiWriteData(0x00);
\r
143 NT35516_SpiWriteData(0xB0);
\r
144 NT35516_SpiWriteData(0x00);
\r
145 NT35516_SpiWriteData(0xDB);
\r
147 NT35516_SpiWriteCmd(0xD2);
\r
148 NT35516_SpiWriteData(0x01);
\r
149 NT35516_SpiWriteData(0x01);
\r
150 NT35516_SpiWriteData(0x01);
\r
151 NT35516_SpiWriteData(0x3F);
\r
152 NT35516_SpiWriteData(0x01);
\r
153 NT35516_SpiWriteData(0x70);
\r
154 NT35516_SpiWriteData(0x01);
\r
155 NT35516_SpiWriteData(0xB4);
\r
156 NT35516_SpiWriteData(0x01);
\r
157 NT35516_SpiWriteData(0xEC);
\r
158 NT35516_SpiWriteData(0x01);
\r
159 NT35516_SpiWriteData(0xED);
\r
160 NT35516_SpiWriteData(0x02);
\r
161 NT35516_SpiWriteData(0x1E);
\r
162 NT35516_SpiWriteData(0x02);
\r
163 NT35516_SpiWriteData(0x51);
\r
165 NT35516_SpiWriteCmd(0xD3);
\r
166 NT35516_SpiWriteData(0x02);
\r
167 NT35516_SpiWriteData(0x6C);
\r
168 NT35516_SpiWriteData(0x02);
\r
169 NT35516_SpiWriteData(0x8D);
\r
170 NT35516_SpiWriteData(0x02);
\r
171 NT35516_SpiWriteData(0xA5);
\r
172 NT35516_SpiWriteData(0x02);
\r
173 NT35516_SpiWriteData(0xC9);
\r
174 NT35516_SpiWriteData(0x02);
\r
175 NT35516_SpiWriteData(0xEA);
\r
176 NT35516_SpiWriteData(0x03);
\r
177 NT35516_SpiWriteData(0x19);
\r
178 NT35516_SpiWriteData(0x03);
\r
179 NT35516_SpiWriteData(0x45);
\r
180 NT35516_SpiWriteData(0x03);
\r
181 NT35516_SpiWriteData(0x7A);
\r
183 NT35516_SpiWriteCmd(0xD4);
\r
184 NT35516_SpiWriteData(0x03);
\r
185 NT35516_SpiWriteData(0xB0);
\r
186 NT35516_SpiWriteData(0x03);
\r
187 NT35516_SpiWriteData(0xF4);
\r
189 //Positive Gamma for GREEN
\r
190 NT35516_SpiWriteCmd(0xD5);
\r
191 NT35516_SpiWriteData(0x00);
\r
192 NT35516_SpiWriteData(0x37);
\r
193 NT35516_SpiWriteData(0x00);
\r
194 NT35516_SpiWriteData(0x41);
\r
195 NT35516_SpiWriteData(0x00);
\r
196 NT35516_SpiWriteData(0x54);
\r
197 NT35516_SpiWriteData(0x00);
\r
198 NT35516_SpiWriteData(0x67);
\r
199 NT35516_SpiWriteData(0x00);
\r
200 NT35516_SpiWriteData(0x7A);
\r
201 NT35516_SpiWriteData(0x00);
\r
202 NT35516_SpiWriteData(0x98);
\r
203 NT35516_SpiWriteData(0x00);
\r
204 NT35516_SpiWriteData(0xB0);
\r
205 NT35516_SpiWriteData(0x00);
\r
206 NT35516_SpiWriteData(0xDB);
\r
208 NT35516_SpiWriteCmd(0xD6);
\r
209 NT35516_SpiWriteData(0x01);
\r
210 NT35516_SpiWriteData(0x01);
\r
211 NT35516_SpiWriteData(0x01);
\r
212 NT35516_SpiWriteData(0x3F);
\r
213 NT35516_SpiWriteData(0x01);
\r
214 NT35516_SpiWriteData(0x70);
\r
215 NT35516_SpiWriteData(0x01);
\r
216 NT35516_SpiWriteData(0xB4);
\r
217 NT35516_SpiWriteData(0x01);
\r
218 NT35516_SpiWriteData(0xEC);
\r
219 NT35516_SpiWriteData(0x01);
\r
220 NT35516_SpiWriteData(0xED);
\r
221 NT35516_SpiWriteData(0x02);
\r
222 NT35516_SpiWriteData(0x1E);
\r
223 NT35516_SpiWriteData(0x02);
\r
224 NT35516_SpiWriteData(0x51);
\r
226 NT35516_SpiWriteCmd(0xD7);
\r
227 NT35516_SpiWriteData(0x02);
\r
228 NT35516_SpiWriteData(0x6C);
\r
229 NT35516_SpiWriteData(0x02);
\r
230 NT35516_SpiWriteData(0x8D);
\r
231 NT35516_SpiWriteData(0x02);
\r
232 NT35516_SpiWriteData(0xA5);
\r
233 NT35516_SpiWriteData(0x02);
\r
234 NT35516_SpiWriteData(0xC9);
\r
235 NT35516_SpiWriteData(0x02);
\r
236 NT35516_SpiWriteData(0xEA);
\r
237 NT35516_SpiWriteData(0x03);
\r
238 NT35516_SpiWriteData(0x19);
\r
239 NT35516_SpiWriteData(0x03);
\r
240 NT35516_SpiWriteData(0x45);
\r
241 NT35516_SpiWriteData(0x03);
\r
242 NT35516_SpiWriteData(0x7A);
\r
244 NT35516_SpiWriteCmd(0xD8);
\r
245 NT35516_SpiWriteData(0x03);
\r
246 NT35516_SpiWriteData(0xA0);
\r
247 NT35516_SpiWriteData(0x03);
\r
248 NT35516_SpiWriteData(0xF4);
\r
250 //Positive Gamma for BLUE
\r
251 NT35516_SpiWriteCmd(0xD9);
\r
252 NT35516_SpiWriteData(0x00);
\r
253 NT35516_SpiWriteData(0x32);
\r
254 NT35516_SpiWriteData(0x00);
\r
255 NT35516_SpiWriteData(0x41);
\r
256 NT35516_SpiWriteData(0x00);
\r
257 NT35516_SpiWriteData(0x54);
\r
258 NT35516_SpiWriteData(0x00);
\r
259 NT35516_SpiWriteData(0x67);
\r
260 NT35516_SpiWriteData(0x00);
\r
261 NT35516_SpiWriteData(0x7A);
\r
262 NT35516_SpiWriteData(0x00);
\r
263 NT35516_SpiWriteData(0x98);
\r
264 NT35516_SpiWriteData(0x00);
\r
265 NT35516_SpiWriteData(0xB0);
\r
266 NT35516_SpiWriteData(0x00);
\r
267 NT35516_SpiWriteData(0xDB);
\r
269 NT35516_SpiWriteCmd(0xDD);
\r
270 NT35516_SpiWriteData(0x01);
\r
271 NT35516_SpiWriteData(0x01);
\r
272 NT35516_SpiWriteData(0x01);
\r
273 NT35516_SpiWriteData(0x3F);
\r
274 NT35516_SpiWriteData(0x01);
\r
275 NT35516_SpiWriteData(0x70);
\r
276 NT35516_SpiWriteData(0x01);
\r
277 NT35516_SpiWriteData(0xB4);
\r
278 NT35516_SpiWriteData(0x01);
\r
279 NT35516_SpiWriteData(0xEC);
\r
280 NT35516_SpiWriteData(0x01);
\r
281 NT35516_SpiWriteData(0xED);
\r
282 NT35516_SpiWriteData(0x02);
\r
283 NT35516_SpiWriteData(0x1E);
\r
284 NT35516_SpiWriteData(0x02);
\r
285 NT35516_SpiWriteData(0x51);
\r
287 NT35516_SpiWriteCmd(0xDE);
\r
288 NT35516_SpiWriteData(0x02);
\r
289 NT35516_SpiWriteData(0x6C);
\r
290 NT35516_SpiWriteData(0x02);
\r
291 NT35516_SpiWriteData(0x8D);
\r
292 NT35516_SpiWriteData(0x02);
\r
293 NT35516_SpiWriteData(0xA5);
\r
294 NT35516_SpiWriteData(0x02);
\r
295 NT35516_SpiWriteData(0xC9);
\r
296 NT35516_SpiWriteData(0x02);
\r
297 NT35516_SpiWriteData(0xEA);
\r
298 NT35516_SpiWriteData(0x03);
\r
299 NT35516_SpiWriteData(0x19);
\r
300 NT35516_SpiWriteData(0x03);
\r
301 NT35516_SpiWriteData(0x45);
\r
302 NT35516_SpiWriteData(0x03);
\r
303 NT35516_SpiWriteData(0x7A);
\r
305 NT35516_SpiWriteCmd(0xDF);
\r
306 NT35516_SpiWriteData(0x03);
\r
307 NT35516_SpiWriteData(0xA0);
\r
308 NT35516_SpiWriteData(0x03);
\r
309 NT35516_SpiWriteData(0xF4);
\r
311 //Negative Gamma for RED
\r
312 NT35516_SpiWriteCmd(0xE0);
\r
313 NT35516_SpiWriteData(0x00);
\r
314 NT35516_SpiWriteData(0x32);
\r
315 NT35516_SpiWriteData(0x00);
\r
316 NT35516_SpiWriteData(0x41);
\r
317 NT35516_SpiWriteData(0x00);
\r
318 NT35516_SpiWriteData(0x54);
\r
319 NT35516_SpiWriteData(0x00);
\r
320 NT35516_SpiWriteData(0x67);
\r
321 NT35516_SpiWriteData(0x00);
\r
322 NT35516_SpiWriteData(0x7A);
\r
323 NT35516_SpiWriteData(0x00);
\r
324 NT35516_SpiWriteData(0x98);
\r
325 NT35516_SpiWriteData(0x00);
\r
326 NT35516_SpiWriteData(0xB0);
\r
327 NT35516_SpiWriteData(0x00);
\r
328 NT35516_SpiWriteData(0xDB);
\r
330 NT35516_SpiWriteCmd(0xE1);
\r
331 NT35516_SpiWriteData(0x01);
\r
332 NT35516_SpiWriteData(0x01);
\r
333 NT35516_SpiWriteData(0x01);
\r
334 NT35516_SpiWriteData(0x3F);
\r
335 NT35516_SpiWriteData(0x01);
\r
336 NT35516_SpiWriteData(0x70);
\r
337 NT35516_SpiWriteData(0x01);
\r
338 NT35516_SpiWriteData(0xB4);
\r
339 NT35516_SpiWriteData(0x01);
\r
340 NT35516_SpiWriteData(0xEC);
\r
341 NT35516_SpiWriteData(0x01);
\r
342 NT35516_SpiWriteData(0xED);
\r
343 NT35516_SpiWriteData(0x02);
\r
344 NT35516_SpiWriteData(0x1E);
\r
345 NT35516_SpiWriteData(0x02);
\r
346 NT35516_SpiWriteData(0x51);
\r
348 NT35516_SpiWriteCmd(0xE2);
\r
349 NT35516_SpiWriteData(0x02);
\r
350 NT35516_SpiWriteData(0x6C);
\r
351 NT35516_SpiWriteData(0x02);
\r
352 NT35516_SpiWriteData(0x8D);
\r
353 NT35516_SpiWriteData(0x02);
\r
354 NT35516_SpiWriteData(0xA5);
\r
355 NT35516_SpiWriteData(0x02);
\r
356 NT35516_SpiWriteData(0xC9);
\r
357 NT35516_SpiWriteData(0x02);
\r
358 NT35516_SpiWriteData(0xEA);
\r
359 NT35516_SpiWriteData(0x03);
\r
360 NT35516_SpiWriteData(0x19);
\r
361 NT35516_SpiWriteData(0x03);
\r
362 NT35516_SpiWriteData(0x45);
\r
363 NT35516_SpiWriteData(0x03);
\r
364 NT35516_SpiWriteData(0x7A);
\r
366 NT35516_SpiWriteCmd(0xE3);
\r
367 NT35516_SpiWriteData(0x03);
\r
368 NT35516_SpiWriteData(0xA0);
\r
369 NT35516_SpiWriteData(0x03);
\r
370 NT35516_SpiWriteData(0xF4);
\r
372 //Negative Gamma for GERREN
\r
373 NT35516_SpiWriteCmd(0xE4);
\r
374 NT35516_SpiWriteData(0x00);
\r
375 NT35516_SpiWriteData(0x32);
\r
376 NT35516_SpiWriteData(0x00);
\r
377 NT35516_SpiWriteData(0x41);
\r
378 NT35516_SpiWriteData(0x00);
\r
379 NT35516_SpiWriteData(0x54);
\r
380 NT35516_SpiWriteData(0x00);
\r
381 NT35516_SpiWriteData(0x67);
\r
382 NT35516_SpiWriteData(0x00);
\r
383 NT35516_SpiWriteData(0x7A);
\r
384 NT35516_SpiWriteData(0x00);
\r
385 NT35516_SpiWriteData(0x98);
\r
386 NT35516_SpiWriteData(0x00);
\r
387 NT35516_SpiWriteData(0xB0);
\r
388 NT35516_SpiWriteData(0x00);
\r
389 NT35516_SpiWriteData(0xDB);
\r
391 NT35516_SpiWriteCmd(0xE5);
\r
392 NT35516_SpiWriteData(0x01);
\r
393 NT35516_SpiWriteData(0x01);
\r
394 NT35516_SpiWriteData(0x01);
\r
395 NT35516_SpiWriteData(0x3F);
\r
396 NT35516_SpiWriteData(0x01);
\r
397 NT35516_SpiWriteData(0x70);
\r
398 NT35516_SpiWriteData(0x01);
\r
399 NT35516_SpiWriteData(0xB4);
\r
400 NT35516_SpiWriteData(0x01);
\r
401 NT35516_SpiWriteData(0xEC);
\r
402 NT35516_SpiWriteData(0x01);
\r
403 NT35516_SpiWriteData(0xED);
\r
404 NT35516_SpiWriteData(0x02);
\r
405 NT35516_SpiWriteData(0x1E);
\r
406 NT35516_SpiWriteData(0x02);
\r
407 NT35516_SpiWriteData(0x51);
\r
409 NT35516_SpiWriteCmd(0xE6);
\r
410 NT35516_SpiWriteData(0x02);
\r
411 NT35516_SpiWriteData(0x6C);
\r
412 NT35516_SpiWriteData(0x02);
\r
413 NT35516_SpiWriteData(0x8D);
\r
414 NT35516_SpiWriteData(0x02);
\r
415 NT35516_SpiWriteData(0xA5);
\r
416 NT35516_SpiWriteData(0x02);
\r
417 NT35516_SpiWriteData(0xC9);
\r
418 NT35516_SpiWriteData(0x02);
\r
419 NT35516_SpiWriteData(0xEA);
\r
420 NT35516_SpiWriteData(0x03);
\r
421 NT35516_SpiWriteData(0x19);
\r
422 NT35516_SpiWriteData(0x03);
\r
423 NT35516_SpiWriteData(0x45);
\r
424 NT35516_SpiWriteData(0x03);
\r
425 NT35516_SpiWriteData(0x7A);
\r
427 NT35516_SpiWriteCmd(0xE7);
\r
428 NT35516_SpiWriteData(0x03);
\r
429 NT35516_SpiWriteData(0xA0);
\r
430 NT35516_SpiWriteData(0x03);
\r
431 NT35516_SpiWriteData(0xF4);
\r
433 //Negative Gamma for BLUE
\r
434 NT35516_SpiWriteCmd(0xE8);
\r
435 NT35516_SpiWriteData(0x00);
\r
436 NT35516_SpiWriteData(0x32);
\r
437 NT35516_SpiWriteData(0x00);
\r
438 NT35516_SpiWriteData(0x41);
\r
439 NT35516_SpiWriteData(0x00);
\r
440 NT35516_SpiWriteData(0x54);
\r
441 NT35516_SpiWriteData(0x00);
\r
442 NT35516_SpiWriteData(0x67);
\r
443 NT35516_SpiWriteData(0x00);
\r
444 NT35516_SpiWriteData(0x7A);
\r
445 NT35516_SpiWriteData(0x00);
\r
446 NT35516_SpiWriteData(0x98);
\r
447 NT35516_SpiWriteData(0x00);
\r
448 NT35516_SpiWriteData(0xB0);
\r
449 NT35516_SpiWriteData(0x00);
\r
450 NT35516_SpiWriteData(0xDB);
\r
452 NT35516_SpiWriteCmd(0xE9);
\r
453 NT35516_SpiWriteData(0x01);
\r
454 NT35516_SpiWriteData(0x01);
\r
455 NT35516_SpiWriteData(0x01);
\r
456 NT35516_SpiWriteData(0x3F);
\r
457 NT35516_SpiWriteData(0x01);
\r
458 NT35516_SpiWriteData(0x70);
\r
459 NT35516_SpiWriteData(0x01);
\r
460 NT35516_SpiWriteData(0xB4);
\r
461 NT35516_SpiWriteData(0x01);
\r
462 NT35516_SpiWriteData(0xEC);
\r
463 NT35516_SpiWriteData(0x01);
\r
464 NT35516_SpiWriteData(0xED);
\r
465 NT35516_SpiWriteData(0x02);
\r
466 NT35516_SpiWriteData(0x1E);
\r
467 NT35516_SpiWriteData(0x02);
\r
468 NT35516_SpiWriteData(0x51);
\r
470 NT35516_SpiWriteCmd(0xEA);
\r
471 NT35516_SpiWriteData(0x02);
\r
472 NT35516_SpiWriteData(0x6C);
\r
473 NT35516_SpiWriteData(0x02);
\r
474 NT35516_SpiWriteData(0x8D);
\r
475 NT35516_SpiWriteData(0x02);
\r
476 NT35516_SpiWriteData(0xA5);
\r
477 NT35516_SpiWriteData(0x02);
\r
478 NT35516_SpiWriteData(0xC9);
\r
479 NT35516_SpiWriteData(0x02);
\r
480 NT35516_SpiWriteData(0xEA);
\r
481 NT35516_SpiWriteData(0x03);
\r
482 NT35516_SpiWriteData(0x19);
\r
483 NT35516_SpiWriteData(0x03);
\r
484 NT35516_SpiWriteData(0x45);
\r
485 NT35516_SpiWriteData(0x03);
\r
486 NT35516_SpiWriteData(0x7A);
\r
488 NT35516_SpiWriteCmd(0xEB);
\r
489 NT35516_SpiWriteData(0x03);
\r
490 NT35516_SpiWriteData(0xA0);
\r
491 NT35516_SpiWriteData(0x03);
\r
492 NT35516_SpiWriteData(0xF4);
\r
494 NT35516_SpiWriteCmd(0x3A); NT35516_SpiWriteData(0x77);
\r
496 NT35516_SpiWriteCmd(0x35); NT35516_SpiWriteData(0x00);
\r
498 NT35516_SpiWriteCmd(0x11); // Sleep out
\r
501 NT35516_SpiWriteCmd(0x29); // Display On
\r
505 static uint32_t nt35516_rgb_spi_readid(struct panel_spec *self)
\r
507 /*Jessica TODO: need read id*/
\r
512 void NT35516_RGB_SPI_set_display_window(
\r
513 uint16 left, // start Horizon address
\r
514 uint16 right, // end Horizon address
\r
515 uint16 top, // start Vertical address
\r
516 uint16 bottom // end Vertical address
\r
519 NT35516_SpiWriteCmd(0x2A00); NT35516_SpiWriteData((left>>8));// set left address
\r
520 NT35516_SpiWriteCmd(0x2A01); NT35516_SpiWriteData((left&0xff));
\r
521 NT35516_SpiWriteCmd(0x2A02); NT35516_SpiWriteData((right>>8));// set right address
\r
522 NT35516_SpiWriteCmd(0x2A03); NT35516_SpiWriteData((right&0xff));
\r
524 NT35516_SpiWriteCmd(0x2B00); NT35516_SpiWriteData((top>>8));// set left address
\r
525 NT35516_SpiWriteCmd(0x2B01); NT35516_SpiWriteData((top&0xff));
\r
526 NT35516_SpiWriteCmd(0x2B02); NT35516_SpiWriteData((bottom>>8));// set bottom address
\r
527 NT35516_SpiWriteCmd(0x2B03); NT35516_SpiWriteData((bottom&0xff));
\r
530 LCD_ERR_E NT35516_RGB_SPI_EnterSleep(BOOLEAN is_sleep)
\r
534 NT35516_SpiWriteCmd(0x28);
\r
536 NT35516_SpiWriteCmd(0x10);
\r
538 //Lcd_EnvidOnOff(0);//RGB TIMENG OFF
\r
544 //Lcd_EnvidOnOff(1);//RGB TIMENG ON
\r
554 LCD_ERR_E NT35516_RGB_SPI_SetDisplayWindow(
\r
555 uint16 left, //left of the window
\r
556 uint16 top, //top of the window
\r
557 uint16 right, //right of the window
\r
558 uint16 bottom //bottom of the window
\r
561 //NT35516_RGB_SPI_set_display_window(left, right, top, bottom);
\r
563 NT35516_SpiWriteCmd(0x2C);
\r
569 static struct panel_operations lcd_nt35516_rgb_spi_operations = {
\r
570 .panel_init = nt35516_rgb_spi_init,
\r
571 .panel_readid = nt35516_rgb_spi_readid,
\r
574 static struct timing_rgb lcd_nt35516_rgb_timing = {
\r
575 .hfp = 30, /* unit: pixel */
\r
578 .vfp = 16, /*unit: line*/
\r
583 static struct spi_info lcd_nt35516_rgb_spi_info = {
\r
587 static struct info_rgb lcd_nt35516_rgb_info = {
\r
588 .cmd_bus_mode = SPRDFB_RGB_BUS_TYPE_SPI,
\r
589 .video_bus_width = 24, /*18,16*/
\r
590 .h_sync_pol = SPRDFB_POLARITY_POS,
\r
591 .v_sync_pol = SPRDFB_POLARITY_POS,
\r
592 .de_pol = SPRDFB_POLARITY_POS,
\r
593 .timing = &lcd_nt35516_rgb_timing,
\r
595 .spi = &lcd_nt35516_rgb_spi_info,
\r
599 struct panel_spec lcd_nt35516_rgb_spi_spec = {
\r
602 .type = LCD_MODE_RGB,
\r
603 .direction = LCD_DIRECT_NORMAL,
\r
606 .rgb = &lcd_nt35516_rgb_info
\r
608 .ops = &lcd_nt35516_rgb_spi_operations,
\r