1 /* drivers/video/sc8810/lcd_nt35516_mcu.c
6 * Copyright (C) 2010 Spreadtrum
10 #include <asm/arch/sprd_lcd.h>
16 #define LCD_PRINT printk
18 #define LCD_PRINT(...)
20 static int32_t nt35516_init(struct panel_spec *self)
22 send_data_t send_cmd = self->info.mcu->ops->send_cmd;
23 send_cmd_data_t send_cmd_data = self->info.mcu->ops->send_cmd_data;
24 send_data_t send_data = self->info.mcu->ops->send_data;
26 LCD_PRINT("nt35516_init\n");
28 send_cmd(0xFF00); send_data(0x00AA); /*AA*/
29 send_cmd(0xFF01); send_data(0x0055);/*55*/
30 send_cmd(0xFF02); send_data(0x0025);/*25*/
31 send_cmd(0xFF03); send_data(0x0001);/*01*/
33 // send_cmd(0xF300); send_data(0x0002);
34 // send_cmd(0xF301); send_data(0x0003);
35 // send_cmd(0xF302); send_data(0x0007);
36 // send_cmd(0xF303); send_data(0x0015);
40 send_cmd(0xF000); send_data(0x0055); /*Manufacture Command Set Control*/
41 send_cmd(0xF001); send_data(0x00AA);
42 send_cmd(0xF002); send_data(0x0052);
43 send_cmd(0xF003); send_data(0x0008);
44 send_cmd(0xF004); send_data(0x0000);
46 send_cmd(0xB100); send_data(0x00FC);
48 send_cmd(0xB700); send_data(0x0000);
49 send_cmd(0xB701); send_data(0x0000);
51 send_cmd(0xC800); send_data(0x0001);
52 send_cmd(0xC801); send_data(0x0000);
53 send_cmd(0xC802); send_data(0x0046);
54 send_cmd(0xC803); send_data(0x001E);
55 send_cmd(0xC804); send_data(0x0046);
56 send_cmd(0xC805); send_data(0x001E);
57 send_cmd(0xC806); send_data(0x0046);
58 send_cmd(0xC807); send_data(0x001E);
59 send_cmd(0xC808); send_data(0x0046);
60 send_cmd(0xC809); send_data(0x001E);
61 send_cmd(0xC80A); send_data(0x0064);
62 send_cmd(0xC80B); send_data(0x003C);//64
63 send_cmd(0xC80C); send_data(0x003C);//64
64 send_cmd(0xC80D); send_data(0x0064);
65 send_cmd(0xC80E); send_data(0x0064);
66 send_cmd(0xC80F); send_data(0x003C);//64
67 send_cmd(0xC810); send_data(0x003C);//64
68 send_cmd(0xC811); send_data(0x0064);
72 send_cmd(0xB800); send_data(0x0001);
73 send_cmd(0xB801); send_data(0x0002);
74 send_cmd(0xB802); send_data(0x0002);
75 send_cmd(0xB803); send_data(0x0002);
77 send_cmd(0xBC00); send_data(0x0005); /*Zig-Zag Inversion*/
78 send_cmd(0xBC01); send_data(0x0005);
79 send_cmd(0xBC02); send_data(0x0005);
84 //send_cmd(0x4C00); send_data(0x0011); /*DB4=1,Enable Vivid Color,DB4=0 Disable Vivid Color*/
87 send_cmd(0xF000); send_data(0x0055); /*Manufacture Command Set Control */
88 send_cmd(0xF001); send_data(0x00AA);
89 send_cmd(0xF002); send_data(0x0052);
90 send_cmd(0xF003); send_data(0x0008);
91 send_cmd(0xF004); send_data(0x0001);/*Page1*/
93 send_cmd(0xB000); send_data(0x0005); /*Setting AVDD Voltage 6V*/
94 send_cmd(0xB001); send_data(0x0005);
95 send_cmd(0xB002); send_data(0x0005);
97 send_cmd(0xB100); send_data(0x0005);
98 send_cmd(0xB101); send_data(0x0005);
99 send_cmd(0xB102); send_data(0x0005);
103 send_cmd(0xB600); send_data(0x0044); /* Setting AVEE boosting time 2.5*vpnl */
104 send_cmd(0xB601); send_data(0x0044);
105 send_cmd(0xB602); send_data(0x0044);
108 /*Sett AVEE boosting time -2.5NL*/
109 send_cmd(0xB700); send_data(0x0034);//44
110 send_cmd(0xB701); send_data(0x0034);//44
111 send_cmd(0xB702); send_data(0x0034);//44
113 // send_cmd(0xB800); send_data(0x0020);//ADD 2012_9_24
114 // send_cmd(0xB801); send_data(0x0020);
115 // send_cmd(0xB802); send_data(0x0020);
117 send_cmd(0xB300); send_data(0x0012);//10
118 send_cmd(0xB301); send_data(0x0012);//10
119 send_cmd(0xB302); send_data(0x0012);//10
121 send_cmd(0xB900); send_data(0x0034);///*0x24 --> 0x14*/
122 send_cmd(0xB901); send_data(0x0034);
123 send_cmd(0xB902); send_data(0x0034);
125 send_cmd(0xB400); send_data(0x000A);//0A
126 send_cmd(0xB401); send_data(0x000A);//0A
127 send_cmd(0xB402); send_data(0x000A);//0A
129 /*Sett VGLX boosting time AVEVDD */
130 send_cmd(0xBA00); send_data(0x0024);///*0x24 --> 0x14*/
131 send_cmd(0xBA01); send_data(0x0024);
132 send_cmd(0xBA02); send_data(0x0024);
134 send_cmd(0xCB00); send_data(0x0084);//ADD 2012_9_24
135 send_cmd(0xCB01); send_data(0x0063);
138 send_cmd(0xBC00); send_data(0x0000);
139 send_cmd(0xBC01); send_data(0x00A0);/*VGMP 0x88=4.7V 0x78=4.5V 0xA0=5.0V */
140 send_cmd(0xBC02); send_data(0x0000);/*VGSP*/
143 send_cmd(0xBD00); send_data(0x0000);
144 send_cmd(0xBD01); send_data(0x00A0);/*VGMN 0x88=-4.7V 0x78=-4.5V 0xA0=-5.0V*/
145 send_cmd(0xBD02); send_data(0x0000);/*VGSN*/
147 send_cmd(0xBE00); send_data(0x004E); /* Setting VCOM Offset Voltage 0x4E\u017e??ยช0x57 20111019 LIYAN*/
151 send_cmd(0xD100); send_data(0x0000);
152 send_cmd(0xD101); send_data(0x0032);
153 send_cmd(0xD102); send_data(0x0000);
154 send_cmd(0xD103); send_data(0x0041);
155 send_cmd(0xD104); send_data(0x0000);
156 send_cmd(0xD105); send_data(0x0054);
157 send_cmd(0xD106); send_data(0x0000);
158 send_cmd(0xD107); send_data(0x0067);
159 send_cmd(0xD108); send_data(0x0000);
160 send_cmd(0xD109); send_data(0x007A);
161 send_cmd(0xD10A); send_data(0x0000);
162 send_cmd(0xD10B); send_data(0x0098);
163 send_cmd(0xD10C); send_data(0x0000);
164 send_cmd(0xD10D); send_data(0x00B0);
165 send_cmd(0xD10E); send_data(0x0000);
166 send_cmd(0xD10F); send_data(0x00DB);
167 send_cmd(0xD200); send_data(0x0001);
168 send_cmd(0xD201); send_data(0x0001);
169 send_cmd(0xD202); send_data(0x0001);
170 send_cmd(0xD203); send_data(0x003F);
171 send_cmd(0xD204); send_data(0x0001);
172 send_cmd(0xD205); send_data(0x0070);
173 send_cmd(0xD206); send_data(0x0001);
174 send_cmd(0xD207); send_data(0x00B4);
175 send_cmd(0xD208); send_data(0x0001);
176 send_cmd(0xD209); send_data(0x00EC);
177 send_cmd(0xD20A); send_data(0x0001);
178 send_cmd(0xD20B); send_data(0x00ED);
179 send_cmd(0xD20C); send_data(0x0002);
180 send_cmd(0xD20D); send_data(0x001E);
181 send_cmd(0xD20E); send_data(0x0002);
182 send_cmd(0xD20F); send_data(0x0051);
183 send_cmd(0xD300); send_data(0x0002);
184 send_cmd(0xD301); send_data(0x006C);
185 send_cmd(0xD302); send_data(0x0002);
186 send_cmd(0xD303); send_data(0x008D);
187 send_cmd(0xD304); send_data(0x0002);
188 send_cmd(0xD305); send_data(0x00A5);
189 send_cmd(0xD306); send_data(0x0002);
190 send_cmd(0xD307); send_data(0x00C9);
191 send_cmd(0xD308); send_data(0x0002);
192 send_cmd(0xD309); send_data(0x00EA);
193 send_cmd(0xD30A); send_data(0x0003);
194 send_cmd(0xD30B); send_data(0x0019);
195 send_cmd(0xD30C); send_data(0x0003);
196 send_cmd(0xD30D); send_data(0x0045);
197 send_cmd(0xD30E); send_data(0x0003);
198 send_cmd(0xD30F); send_data(0x007A);
199 send_cmd(0xD400); send_data(0x0003);
200 send_cmd(0xD401); send_data(0x00B0);
201 send_cmd(0xD402); send_data(0x0003);
202 send_cmd(0xD403); send_data(0x00F4);
204 /*Posie Gamma for GREEN*/
205 send_cmd(0xD500); send_data(0x0000);
206 send_cmd(0xD501); send_data(0x0037);
207 send_cmd(0xD502); send_data(0x0000);
208 send_cmd(0xD503); send_data(0x0041);
209 send_cmd(0xD504); send_data(0x0000);
210 send_cmd(0xD505); send_data(0x0054);
211 send_cmd(0xD506); send_data(0x0000);
212 send_cmd(0xD507); send_data(0x0067);
213 send_cmd(0xD508); send_data(0x0000);
214 send_cmd(0xD509); send_data(0x007A);
215 send_cmd(0xD50A); send_data(0x0000);
216 send_cmd(0xD50B); send_data(0x0098);
217 send_cmd(0xD50C); send_data(0x0000);
218 send_cmd(0xD50D); send_data(0x00B0);
219 send_cmd(0xD50E); send_data(0x0000);
220 send_cmd(0xD50F); send_data(0x00DB);
221 send_cmd(0xD600); send_data(0x0001);
222 send_cmd(0xD601); send_data(0x0001);
223 send_cmd(0xD602); send_data(0x0001);
224 send_cmd(0xD603); send_data(0x003F);
225 send_cmd(0xD604); send_data(0x0001);
226 send_cmd(0xD605); send_data(0x0070);
227 send_cmd(0xD606); send_data(0x0001);
228 send_cmd(0xD607); send_data(0x00B4);
229 send_cmd(0xD608); send_data(0x0001);
230 send_cmd(0xD609); send_data(0x00EC);
231 send_cmd(0xD60A); send_data(0x0001);
232 send_cmd(0xD60B); send_data(0x00ED);
233 send_cmd(0xD60C); send_data(0x0002);
234 send_cmd(0xD60D); send_data(0x001E);
235 send_cmd(0xD60E); send_data(0x0002);
236 send_cmd(0xD60F); send_data(0x0051);
237 send_cmd(0xD700); send_data(0x0002);
238 send_cmd(0xD701); send_data(0x006C);
239 send_cmd(0xD702); send_data(0x0002);
240 send_cmd(0xD703); send_data(0x008D);
241 send_cmd(0xD704); send_data(0x0002);
242 send_cmd(0xD705); send_data(0x00A5);
243 send_cmd(0xD706); send_data(0x0002);
244 send_cmd(0xD707); send_data(0x00C9);
245 send_cmd(0xD708); send_data(0x0002);
246 send_cmd(0xD709); send_data(0x00EA);
247 send_cmd(0xD70A); send_data(0x0003);
248 send_cmd(0xD70B); send_data(0x0019);
249 send_cmd(0xD70C); send_data(0x0003);
250 send_cmd(0xD70D); send_data(0x0045);
251 send_cmd(0xD70E); send_data(0x0003);
252 send_cmd(0xD70F); send_data(0x007A);
253 send_cmd(0xD800); send_data(0x0003);
254 send_cmd(0xD801); send_data(0x00A0);
255 send_cmd(0xD802); send_data(0x0003);
256 send_cmd(0xD803); send_data(0x00F4);
258 /*Posie Gamma for BLUE*/
259 send_cmd(0xD900); send_data(0x0000);
260 send_cmd(0xD901); send_data(0x0032);
261 send_cmd(0xD902); send_data(0x0000);
262 send_cmd(0xD903); send_data(0x0041);
263 send_cmd(0xD904); send_data(0x0000);
264 send_cmd(0xD905); send_data(0x0054);
265 send_cmd(0xD906); send_data(0x0000);
266 send_cmd(0xD907); send_data(0x0067);
267 send_cmd(0xD908); send_data(0x0000);
268 send_cmd(0xD909); send_data(0x007A);
269 send_cmd(0xD90A); send_data(0x0000);
270 send_cmd(0xD90B); send_data(0x0098);
271 send_cmd(0xD90C); send_data(0x0000);
272 send_cmd(0xD90D); send_data(0x00B0);
273 send_cmd(0xD90E); send_data(0x0000);
274 send_cmd(0xD90F); send_data(0x00DB);
275 send_cmd(0xDD00); send_data(0x0001);
276 send_cmd(0xDD01); send_data(0x0001);
277 send_cmd(0xDD02); send_data(0x0001);
278 send_cmd(0xDD03); send_data(0x003F);
279 send_cmd(0xDD04); send_data(0x0001);
280 send_cmd(0xDD05); send_data(0x0070);
281 send_cmd(0xDD06); send_data(0x0001);
282 send_cmd(0xDD07); send_data(0x00B4);
283 send_cmd(0xDD08); send_data(0x0001);
284 send_cmd(0xDD09); send_data(0x00EC);
285 send_cmd(0xDD0A); send_data(0x0001);
286 send_cmd(0xDD0B); send_data(0x00ED);
287 send_cmd(0xDD0C); send_data(0x0002);
288 send_cmd(0xDD0D); send_data(0x001E);
289 send_cmd(0xDD0E); send_data(0x0002);
290 send_cmd(0xDD0F); send_data(0x0051);
291 send_cmd(0xDE00); send_data(0x0002);
292 send_cmd(0xDE01); send_data(0x006C);
293 send_cmd(0xDE02); send_data(0x0002);
294 send_cmd(0xDE03); send_data(0x008D);
295 send_cmd(0xDE04); send_data(0x0002);
296 send_cmd(0xDE05); send_data(0x00A5);
297 send_cmd(0xDE06); send_data(0x0002);
298 send_cmd(0xDE07); send_data(0x00C9);
299 send_cmd(0xDE08); send_data(0x0002);
300 send_cmd(0xDE09); send_data(0x00EA);
301 send_cmd(0xDE0A); send_data(0x0003);
302 send_cmd(0xDE0B); send_data(0x0019);
303 send_cmd(0xDE0C); send_data(0x0003);
304 send_cmd(0xDE0D); send_data(0x0045);
305 send_cmd(0xDE0E); send_data(0x0003);
306 send_cmd(0xDE0F); send_data(0x007A);
307 send_cmd(0xDF00); send_data(0x0003);
308 send_cmd(0xDF01); send_data(0x00A0);
309 send_cmd(0xDF02); send_data(0x0003);
310 send_cmd(0xDF03); send_data(0x00F4);
312 /*Negae Gamma for RED*/
313 send_cmd(0xE000); send_data(0x0000);
314 send_cmd(0xE001); send_data(0x0032);
315 send_cmd(0xE002); send_data(0x0000);
316 send_cmd(0xE003); send_data(0x0041);
317 send_cmd(0xE004); send_data(0x0000);
318 send_cmd(0xE005); send_data(0x0054);
319 send_cmd(0xE006); send_data(0x0000);
320 send_cmd(0xE007); send_data(0x0067);
321 send_cmd(0xE008); send_data(0x0000);
322 send_cmd(0xE009); send_data(0x007A);
323 send_cmd(0xE00A); send_data(0x0000);
324 send_cmd(0xE00B); send_data(0x0098);
325 send_cmd(0xE00C); send_data(0x0000);
326 send_cmd(0xE00D); send_data(0x00B0);
327 send_cmd(0xE00E); send_data(0x0000);
328 send_cmd(0xE00F); send_data(0x00DB);
329 send_cmd(0xE100); send_data(0x0001);
330 send_cmd(0xE101); send_data(0x0001);
331 send_cmd(0xE102); send_data(0x0001);
332 send_cmd(0xE103); send_data(0x003F);
333 send_cmd(0xE104); send_data(0x0001);
334 send_cmd(0xE105); send_data(0x0070);
335 send_cmd(0xE106); send_data(0x0001);
336 send_cmd(0xE107); send_data(0x00B4);
337 send_cmd(0xE108); send_data(0x0001);
338 send_cmd(0xE109); send_data(0x00EC);
339 send_cmd(0xE10A); send_data(0x0001);
340 send_cmd(0xE10B); send_data(0x00ED);
341 send_cmd(0xE10C); send_data(0x0002);
342 send_cmd(0xE10D); send_data(0x001E);
343 send_cmd(0xE10E); send_data(0x0002);
344 send_cmd(0xE10F); send_data(0x0051);
345 send_cmd(0xE200); send_data(0x0002);
346 send_cmd(0xE201); send_data(0x006C);
347 send_cmd(0xE202); send_data(0x0002);
348 send_cmd(0xE203); send_data(0x008D);
349 send_cmd(0xE204); send_data(0x0002);
350 send_cmd(0xE205); send_data(0x00A5);
351 send_cmd(0xE206); send_data(0x0002);
352 send_cmd(0xE207); send_data(0x00C9);
353 send_cmd(0xE208); send_data(0x0002);
354 send_cmd(0xE209); send_data(0x00EA);
355 send_cmd(0xE20A); send_data(0x0003);
356 send_cmd(0xE20B); send_data(0x0019);
357 send_cmd(0xE20C); send_data(0x0003);
358 send_cmd(0xE20D); send_data(0x0045);
359 send_cmd(0xE20E); send_data(0x0003);
360 send_cmd(0xE20F); send_data(0x007A);
361 send_cmd(0xE300); send_data(0x0003);
362 send_cmd(0xE301); send_data(0x00A0);
363 send_cmd(0xE302); send_data(0x0003);
364 send_cmd(0xE303); send_data(0x00F4);
366 /*Negae Gamma for GERREN*/
367 send_cmd(0xE400); send_data(0x0000);
368 send_cmd(0xE401); send_data(0x0032);
369 send_cmd(0xE402); send_data(0x0000);
370 send_cmd(0xE403); send_data(0x0041);
371 send_cmd(0xE404); send_data(0x0000);
372 send_cmd(0xE405); send_data(0x0054);
373 send_cmd(0xE406); send_data(0x0000);
374 send_cmd(0xE407); send_data(0x0067);
375 send_cmd(0xE408); send_data(0x0000);
376 send_cmd(0xE409); send_data(0x007A);
377 send_cmd(0xE40A); send_data(0x0000);
378 send_cmd(0xE40B); send_data(0x0098);
379 send_cmd(0xE40C); send_data(0x0000);
380 send_cmd(0xE40D); send_data(0x00B0);
381 send_cmd(0xE40E); send_data(0x0000);
382 send_cmd(0xE40F); send_data(0x00DB);
383 send_cmd(0xE500); send_data(0x0001);
384 send_cmd(0xE501); send_data(0x0001);
385 send_cmd(0xE502); send_data(0x0001);
386 send_cmd(0xE503); send_data(0x003F);
387 send_cmd(0xE504); send_data(0x0001);
388 send_cmd(0xE505); send_data(0x0070);
389 send_cmd(0xE506); send_data(0x0001);
390 send_cmd(0xE507); send_data(0x00B4);
391 send_cmd(0xE508); send_data(0x0001);
392 send_cmd(0xE509); send_data(0x00EC);
393 send_cmd(0xE50A); send_data(0x0001);
394 send_cmd(0xE50B); send_data(0x00ED);
395 send_cmd(0xE50C); send_data(0x0002);
396 send_cmd(0xE50D); send_data(0x001E);
397 send_cmd(0xE50E); send_data(0x0002);
398 send_cmd(0xE50F); send_data(0x0051);
399 send_cmd(0xE600); send_data(0x0002);
400 send_cmd(0xE601); send_data(0x006C);
401 send_cmd(0xE602); send_data(0x0002);
402 send_cmd(0xE603); send_data(0x008D);
403 send_cmd(0xE604); send_data(0x0002);
404 send_cmd(0xE605); send_data(0x00A5);
405 send_cmd(0xE606); send_data(0x0002);
406 send_cmd(0xE607); send_data(0x00C9);
407 send_cmd(0xE608); send_data(0x0002);
408 send_cmd(0xE609); send_data(0x00EA);
409 send_cmd(0xE60A); send_data(0x0003);
410 send_cmd(0xE60B); send_data(0x0019);
411 send_cmd(0xE60C); send_data(0x0003);
412 send_cmd(0xE60D); send_data(0x0045);
413 send_cmd(0xE60E); send_data(0x0003);
414 send_cmd(0xE60F); send_data(0x007A);
415 send_cmd(0xE700); send_data(0x0003);
416 send_cmd(0xE701); send_data(0x00A0);
417 send_cmd(0xE702); send_data(0x0003);
418 send_cmd(0xE703); send_data(0x00F4);
420 /*Negae Gamma for BLUE*/
421 send_cmd(0xE800); send_data(0x0000);
422 send_cmd(0xE801); send_data(0x0032);
423 send_cmd(0xE802); send_data(0x0000);
424 send_cmd(0xE803); send_data(0x0041);
425 send_cmd(0xE804); send_data(0x0000);
426 send_cmd(0xE805); send_data(0x0054);
427 send_cmd(0xE806); send_data(0x0000);
428 send_cmd(0xE807); send_data(0x0067);
429 send_cmd(0xE808); send_data(0x0000);
430 send_cmd(0xE809); send_data(0x007A);
431 send_cmd(0xE80A); send_data(0x0000);
432 send_cmd(0xE80B); send_data(0x0098);
433 send_cmd(0xE80C); send_data(0x0000);
434 send_cmd(0xE80D); send_data(0x00B0);
435 send_cmd(0xE80E); send_data(0x0000);
436 send_cmd(0xE80F); send_data(0x00DB);
437 send_cmd(0xE900); send_data(0x0001);
438 send_cmd(0xE901); send_data(0x0001);
439 send_cmd(0xE902); send_data(0x0001);
440 send_cmd(0xE903); send_data(0x003F);
441 send_cmd(0xE904); send_data(0x0001);
442 send_cmd(0xE905); send_data(0x0070);
443 send_cmd(0xE906); send_data(0x0001);
444 send_cmd(0xE907); send_data(0x00B4);
445 send_cmd(0xE908); send_data(0x0001);
446 send_cmd(0xE909); send_data(0x00EC);
447 send_cmd(0xE90A); send_data(0x0001);
448 send_cmd(0xE90B); send_data(0x00ED);
449 send_cmd(0xE90C); send_data(0x0002);
450 send_cmd(0xE90D); send_data(0x001E);
451 send_cmd(0xE90E); send_data(0x0002);
452 send_cmd(0xE90F); send_data(0x0051);
453 send_cmd(0xEA00); send_data(0x0002);
454 send_cmd(0xEA01); send_data(0x006C);
455 send_cmd(0xEA02); send_data(0x0002);
456 send_cmd(0xEA03); send_data(0x008D);
457 send_cmd(0xEA04); send_data(0x0002);
458 send_cmd(0xEA05); send_data(0x00A5);
459 send_cmd(0xEA06); send_data(0x0002);
460 send_cmd(0xEA07); send_data(0x00C9);
461 send_cmd(0xEA08); send_data(0x0002);
462 send_cmd(0xEA09); send_data(0x00EA);
463 send_cmd(0xEA0A); send_data(0x0003);
464 send_cmd(0xEA0B); send_data(0x0019);
465 send_cmd(0xEA0C); send_data(0x0003);
466 send_cmd(0xEA0D); send_data(0x0045);
467 send_cmd(0xEA0E); send_data(0x0003);
468 send_cmd(0xEA0F); send_data(0x007A);
469 send_cmd(0xEB00); send_data(0x0003);
470 send_cmd(0xEB01); send_data(0x00A0);
471 send_cmd(0xEB02); send_data(0x0003);
472 send_cmd(0xEB03); send_data(0x00F4);
474 send_cmd(0x3A00); send_data(0x0007);
476 send_cmd(0x3500); send_data(0x0000);
478 send_cmd(0x4C00); send_data(0x0011);
480 send_cmd(0x1100); /* Sleep out*/
482 // send_cmd(0x2900); /* Display On*/
484 send_cmd(0x2900); /* Display On*/
488 static int32_t nt35516_enter_sleep(struct panel_spec *self, uint8_t is_sleep)
490 send_data_t send_cmd = self->info.mcu->ops->send_cmd;
491 send_cmd_data_t send_cmd_data = self->info.mcu->ops->send_cmd_data;
492 send_data_t send_data = self->info.mcu->ops->send_data;
499 /*Lcd_EnvidOnOff(0);*//*RGB TIMENG OFF*/
508 /*Lcd_EnvidOnOff(1);*//*RGB TIMENG ON*/
520 static int32_t nt35516_set_window(struct panel_spec*self,
521 uint16_t left, uint16_t top, uint16_t right, uint16_t bottom)
523 send_data_t send_cmd = self->info.mcu->ops->send_cmd;
524 send_cmd_data_t send_cmd_data = self->info.mcu->ops->send_cmd_data;
525 send_data_t send_data = self->info.mcu->ops->send_data;
527 LCD_PRINT("nt35516_set_window: %d, %d, %d, %d\n",left, top, right, bottom);
529 send_cmd(0x2A00); send_data((left>>8));// set left address
530 send_cmd(0x2A01); send_data((left&0xff));
531 send_cmd(0x2A02); send_data((right>>8));// set right address
532 send_cmd(0x2A03); send_data((right&0xff));
534 send_cmd(0x2B00); send_data((top>>8));// set left address
535 send_cmd(0x2B01); send_data((top&0xff));
536 send_cmd(0x2B02); send_data((bottom>>8));// set bottom address
537 send_cmd(0x2B03); send_data((bottom&0xff));
543 static int32_t nt35516_invalidate(struct panel_spec *self)
545 LCD_PRINT("nt35516_invalidate\n");
547 return self->ops->panel_set_window(self, 0, 0,
548 self->width - 1, self->height - 1);
553 static int32_t nt35516_invalidate_rect(struct panel_spec *self,
554 uint16_t left, uint16_t top,
555 uint16_t right, uint16_t bottom)
557 LCD_PRINT("nt35516_invalidate_rect \n");
559 return self->ops->panel_set_window(self, left, top,
563 static int32_t nt35516_read_id(struct panel_spec *self)
566 send_data_t send_cmd = self->info.mcu->ops->send_cmd;
567 read_data_t read_data = self->info.mcu->ops->read_data;
568 send_data_t send_data = self->info.mcu->ops->send_data;
571 send_cmd(0xF000); send_data(0x0055); /*Manufacture Command Set Control */
572 send_cmd(0xF001); send_data(0x00AA);
573 send_cmd(0xF002); send_data(0x0052);
574 send_cmd(0xF003); send_data(0x0008);
575 send_cmd(0xF004); send_data(0x0001);/*Page1*/
577 send_cmd(0xc501); //0xc500
583 static struct panel_operations lcd_nt35516_operations = {
584 .panel_init = nt35516_init,
585 .panel_set_window = nt35516_set_window,
586 .panel_invalidate_rect= nt35516_invalidate_rect,
587 .panel_invalidate = nt35516_invalidate,
588 .panel_enter_sleep = nt35516_enter_sleep,
589 .panel_readid = nt35516_read_id
592 static struct timing_mcu lcd_nt35516_timing[] = {
593 [0] = { // read/write register timing
601 [1] = { // read/write gram timing
611 static struct info_mcu lcd_nt35516_info = {
612 .bus_mode = LCD_BUS_8080,
615 .timing = lcd_nt35516_timing,
620 struct panel_spec lcd_nt35516_mcu_spec = {
623 .type = LCD_MODE_MCU,
624 .direction = LCD_DIRECT_NORMAL,
626 .mcu = &lcd_nt35516_info
628 .ops = &lcd_nt35516_operations,