Merge tag 'v3.10.55' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / kr076 / lcm / mt65xx_lcm_list.c
1 #include <lcm_drv.h>
2 #ifdef BUILD_LK
3 #include <platform/disp_drv_platform.h>
4 #else
5 #include <linux/delay.h>
6 #include <mach/mt_gpio.h>
7 #endif
8 #include <cust_gpio_usage.h>
9 //used to identify float ID PIN status
10 #define LCD_HW_ID_STATUS_LOW 0
11 #define LCD_HW_ID_STATUS_HIGH 1
12 #define LCD_HW_ID_STATUS_FLOAT 0x02
13 #define LCD_HW_ID_STATUS_ERROR 0x03
14
15 #ifdef BUILD_LK
16 #define LCD_DEBUG(fmt) dprintf(CRITICAL,fmt)
17 #else
18 #define LCD_DEBUG(fmt) printk(fmt)
19 #endif
20 extern LCM_DRIVER otm1282a_hd720_dsi_vdo_lcm_drv;
21 extern LCM_DRIVER r63319_wqhd_dsi_vdo_truly_lcm_drv;
22 extern LCM_DRIVER nt35598_wqhd_dsi_vdo_truly_lcm_drv;
23 extern LCM_DRIVER lp079x01_lcm_drv;
24 extern LCM_DRIVER hx8369_lcm_drv;
25 extern LCM_DRIVER hx8369_6575_lcm_drv;
26 extern LCM_DRIVER hx8363_6575_dsi_lcm_drv;
27 extern LCM_DRIVER hx8363_6575_dsi_hvga_lcm_drv;
28 extern LCM_DRIVER hx8363_6575_dsi_qvga_lcm_drv;
29 extern LCM_DRIVER hx8363b_wvga_dsi_cmd_drv;
30 extern LCM_DRIVER bm8578_lcm_drv;
31 extern LCM_DRIVER nt35582_mcu_lcm_drv;
32 extern LCM_DRIVER nt35582_mcu_6575_lcm_drv;
33 extern LCM_DRIVER nt35582_rgb_6575_lcm_drv;
34 extern LCM_DRIVER hx8357b_lcm_drv;
35 extern LCM_DRIVER hx8357c_hvga_dsi_cmd_drv;
36 extern LCM_DRIVER hx8369_dsi_lcm_drv;
37 extern LCM_DRIVER hx8369_dsi_6575_lcm_drv;
38 extern LCM_DRIVER hx8369_dsi_6575_hvga_lcm_drv;
39 extern LCM_DRIVER hx8369_dsi_6575_qvga_lcm_drv;
40 extern LCM_DRIVER hx8369_dsi_vdo_lcm_drv;
41 extern LCM_DRIVER hx8369b_dsi_vdo_lcm_drv;
42 extern LCM_DRIVER hx8369b_wvga_dsi_vdo_drv;
43 extern LCM_DRIVER hx8389b_qhd_dsi_vdo_drv;
44 extern LCM_DRIVER hx8369_hvga_lcm_drv;
45 extern LCM_DRIVER ili9481_lcm_drv;
46 extern LCM_DRIVER nt35582_lcm_drv;
47 extern LCM_DRIVER s6d0170_lcm_drv;
48 extern LCM_DRIVER spfd5461a_lcm_drv;
49 extern LCM_DRIVER ta7601_lcm_drv;
50 extern LCM_DRIVER tft1p3037_lcm_drv;
51 extern LCM_DRIVER ha5266_lcm_drv;
52 extern LCM_DRIVER hsd070idw1_lcm_drv;
53 extern LCM_DRIVER lg4571_lcm_drv;
54 extern LCM_DRIVER lg4573b_wvga_dsi_vdo_lh430mv1_drv;
55 extern LCM_DRIVER lvds_wsvga_lcm_drv;
56 extern LCM_DRIVER lvds_wsvga_ti_lcm_drv;
57 extern LCM_DRIVER lvds_wsvga_ti_n_lcm_drv;
58 extern LCM_DRIVER nt35565_3d_lcm_drv;
59 extern LCM_DRIVER tm070ddh03_lcm_drv;
60 extern LCM_DRIVER r61408_lcm_drv;
61 extern LCM_DRIVER r61408_wvga_dsi_cmd_drv;
62 extern LCM_DRIVER nt35510_lcm_drv;
63 extern LCM_DRIVER nt35510_dpi_lcm_drv;
64 extern LCM_DRIVER nt35510_hvga_lcm_drv;
65 extern LCM_DRIVER nt35510_qvga_lcm_drv;
66 extern LCM_DRIVER nt35510_wvga_dsi_cmd_drv;
67 extern LCM_DRIVER nt35510_6517_lcm_drv;
68 extern LCM_DRIVER nt35510_dsi_cmd_6572_drv;
69 extern LCM_DRIVER nt35510_dsi_cmd_6572_hvga_drv;
70 extern LCM_DRIVER nt35510_dsi_cmd_6572_fwvga_drv;
71 extern LCM_DRIVER nt35510_dsi_cmd_6572_qvga_drv;
72 extern LCM_DRIVER nt35510_dsi_vdo_6572_drv;
73 extern LCM_DRIVER nt35510_dpi_6572_lcm_drv;
74 extern LCM_DRIVER nt35510_mcu_6572_lcm_drv;
75 extern LCM_DRIVER nt51012_hd720_dsi_vdo_lcm_drv;
76 extern LCM_DRIVER r63303_idisplay_lcm_drv;
77 extern LCM_DRIVER hj080ia_lcm_drv;
78 extern LCM_DRIVER hj101na02a_lcm_drv;
79 extern LCM_DRIVER hj101na02a_8135_lcm_drv;
80 extern LCM_DRIVER hsd070pfw3_lcm_drv;
81 extern LCM_DRIVER hsd070pfw3_8135_lcm_drv;
82 extern LCM_DRIVER cm_n070ice_dsi_vdo_lcm_drv;
83 extern LCM_DRIVER ej101ia_lcm_drv;
84 extern LCM_DRIVER scf0700m48ggu02_lcm_drv;
85 extern LCM_DRIVER nt35510_fwvga_lcm_drv;
86 #if defined(GN_SSD2825_SMD_S6E8AA)
87 extern LCM_DRIVER gn_ssd2825_smd_s6e8aa;
88 #endif
89 extern LCM_DRIVER nt35517_dsi_vdo_lcm_drv;
90 extern LCM_DRIVER hx8369_dsi_bld_lcm_drv;
91 extern LCM_DRIVER hx8369_dsi_tm_lcm_drv;
92 extern LCM_DRIVER otm1280a_hd720_dsi_cmd_drv;
93 extern LCM_DRIVER otm8018b_dsi_vdo_lcm_drv;
94 extern LCM_DRIVER otm8018b_dsi_vdo_txd_fwvga_lcm_drv;
95 extern LCM_DRIVER nt35512_dsi_vdo_lcm_drv;
96 extern LCM_DRIVER nt35512_wvga_dsi_vdo_boe_drv;
97 extern LCM_DRIVER hx8369_rgb_6585_fpga_lcm_drv;
98 extern LCM_DRIVER hx8369_rgb_6572_fpga_lcm_drv;
99 extern LCM_DRIVER hx8369_mcu_6572_lcm_drv;
100 extern LCM_DRIVER hx8369a_wvga_dsi_cmd_drv;
101 extern LCM_DRIVER hx8369a_wvga_dsi_vdo_drv;
102 extern LCM_DRIVER hx8392a_dsi_cmd_lcm_drv;
103 extern LCM_DRIVER nt35590_hd720_dsi_vdo_truly_lcm_drv;
104 extern LCM_DRIVER ssd2075_hd720_dsi_vdo_truly_lcm_drv;
105 extern LCM_DRIVER nt35590_hd720_dsi_cmd_drv;
106 extern LCM_DRIVER nt35590_hd720_dsi_cmd_auo_lcm_drv;
107 extern LCM_DRIVER nt35590_hd720_dsi_cmd_auo_fwvga_lcm_drv;
108 extern LCM_DRIVER nt35590_hd720_dsi_cmd_auo_wvga_lcm_drv;
109 extern LCM_DRIVER nt35590_hd720_dsi_cmd_auo_qhd_lcm_drv;
110 extern LCM_DRIVER nt35590_hd720_dsi_cmd_cmi_lcm_drv;
111 extern LCM_DRIVER nt35516_qhd_dsi_cmd_ipsboe_lcm_drv;
112 extern LCM_DRIVER nt35516_qhd_dsi_cmd_ipsboe_wvga_lcm_drv;
113 extern LCM_DRIVER nt35516_qhd_dsi_cmd_ipsboe_fwvga_lcm_drv;
114 extern LCM_DRIVER nt35516_qhd_dsi_cmd_ips9k1431_drv;
115 extern LCM_DRIVER nt35516_qhd_dsi_cmd_tft9k1342_drv;
116 extern LCM_DRIVER bp070ws1_lcm_drv;
117 extern LCM_DRIVER bp101wx1_lcm_drv;
118 extern LCM_DRIVER bp101wx1_n_lcm_drv;
119 extern LCM_DRIVER nt35516_qhd_rav4_lcm_drv;
120 extern LCM_DRIVER r63311_fhd_dsi_vdo_sharp_lcm_drv;
121 extern LCM_DRIVER r81592_hvga_dsi_cmd_drv;
122 extern LCM_DRIVER rm68190_dsi_vdo_lcm_drv;
123 extern LCM_DRIVER nt35596_fhd_dsi_vdo_truly_lcm_drv;
124 extern LCM_DRIVER nt35595_fhd_dsi_vdo_truly_lcm_drv;
125 extern LCM_DRIVER nt35595_fhd_dsi_cmd_truly_lcm_drv;
126 extern LCM_DRIVER nt35595_fhd_dsi_cmd_truly_tps65132_lcm_drv;
127 extern LCM_DRIVER nt35595_fhd_dsi_cmd_truly_tps65132_720p_lcm_drv;
128 extern LCM_DRIVER nt35596_fhd_dsi_vdo_yassy_lcm_drv;
129 extern LCM_DRIVER nt35590_hd720_dsi_cmd_truly2_lcm_drv;
130 extern LCM_DRIVER otm9608_wvga_dsi_cmd_drv;
131 extern LCM_DRIVER nt35510_dbi_18bit_gionee_lcm_drv;
132 extern LCM_DRIVER otm8009a_fwvga_dsi_cmd_tianma_lcm_drv;
133 extern LCM_DRIVER otm8009a_fwvga_dsi_vdo_tianma_lcm_drv;
134 extern LCM_DRIVER hx8389b_qhd_dsi_vdo_tianma_lcm_drv;
135 extern LCM_DRIVER cm_otc3108bhv161_dsi_vdo_lcm_drv;
136 extern LCM_DRIVER auo_b079xat02_dsi_vdo_lcm_drv;
137 extern LCM_DRIVER hx8389b_qhd_dsi_vdo_tianma055xdhp_lcm_drv;
138 extern LCM_DRIVER cpt_claa101fp01_dsi_vdo_lcm_drv;
139 extern LCM_DRIVER h070d_18dm_lcm_drv;
140 extern LCM_DRIVER hx8394a_hd720_dsi_vdo_tianma_lcm_drv;
141 extern LCM_DRIVER cpt_clap070wp03xg_sn65dsi83_lcm_drv;
142 extern LCM_DRIVER nt35520_hd720_tm_lcm_drv;
143 extern LCM_DRIVER nt35520_hd720_boe_lcm_drv;
144 extern LCM_DRIVER nt35521_hd720_dsi_vdo_boe_lcm_drv;
145 extern LCM_DRIVER nt35521_hd720_tm_lcm_drv;
146 extern LCM_DRIVER r69429_wuxga_dsi_vdo_lcm_drv;
147 extern LCM_DRIVER r69429_wuxga_dsi_cmd_lcm_drv;
148 extern LCM_DRIVER rm68210_hd720_dsi_ufoe_cmd_lcm_drv;
149 extern LCM_DRIVER r63311_fhd_dsi_vedio_lcm_drv;
150 extern LCM_DRIVER cpt_clap070wp03xg_lvds_lcm_drv;
151 extern LCM_DRIVER otm8018b_dsi_vdo_lcsh72_lcm_drv;
152 extern LCM_DRIVER hx8369_dsi_cmd_6571_lcm_drv;
153 extern LCM_DRIVER hx8369_dsi_vdo_6571_lcm_drv;
154 extern LCM_DRIVER hx8369_dbi_6571_lcm_drv;
155 extern LCM_DRIVER hx8369_dpi_6571_lcm_drv;
156 extern LCM_DRIVER nt35510_dsi_cmd_6571_lcm_drv;
157 extern LCM_DRIVER nt35510_dsi_cmd_6571_hvga_lcm_drv;
158 extern LCM_DRIVER nt35510_dsi_cmd_6571_qvga_lcm_drv;
159 extern LCM_DRIVER nt35510_dsi_vdo_6571_lcm_drv;
160 extern LCM_DRIVER nt35510_dbi_6571_lcm_drv;
161 extern LCM_DRIVER nt35510_dpi_6571_lcm_drv;
162 extern LCM_DRIVER nt35590_dsi_cmd_6571_fwvga_lcm_drv;
163 extern LCM_DRIVER nt35590_dsi_cmd_6571_qhd_lcm_drv;
164 extern LCM_DRIVER it6151_edp_dsi_video_sharp_lcm_drv;
165 extern LCM_DRIVER nt35517_qhd_dsi_vdo_lcm_drv;
166 extern LCM_DRIVER hx8389b_qhd_dsi_vdo_lgd_lcm_drv;
167 extern LCM_DRIVER it6151_fhd_edp_dsi_video_auo_lcm_drv;
168 extern LCM_DRIVER tf070mc_rgb_v18_mt6571_lcm_drv;
169 extern LCM_DRIVER zs070ih5015b3h6_mt6571_lcm_drv;
170 extern LCM_DRIVER a080ean01_dsi_vdo_lcm_drv;
171 LCM_DRIVER* lcm_driver_list[] =
172 {
173 #if defined(OTM8018B_DSI_VDO_TXD_FWVGA)
174 &otm8018b_dsi_vdo_txd_fwvga_lcm_drv,
175 #endif
176
177 #if defined(TF070MC_RGB_V18_MT6571)
178 &tf070mc_rgb_v18_mt6571_lcm_drv,
179 #endif
180
181 #if defined(ZS070IH5015B3H6_RGB_MT6571)
182 &zs070ih5015b3h6_mt6571_lcm_drv,
183 #endif
184
185 #if defined(OTM1282A_HD720_DSI_VDO)
186 &otm1282a_hd720_dsi_vdo_lcm_drv,
187 #endif
188
189 #if defined(R63311_FHD_DSI_VDO)
190 &r63311_fhd_dsi_vedio_lcm_drv,
191 #endif
192 #if defined(NT35517_QHD_DSI_VDO)
193 &nt35517_dsi_vdo_lcm_drv,
194 #endif
195
196
197 #if defined(LP079X01)
198 &lp079x01_lcm_drv,
199 #endif
200
201 #if defined(HX8369)
202 &hx8369_lcm_drv,
203 #endif
204
205 #if defined(HX8369_6575)
206 &hx8369_6575_lcm_drv,
207 #endif
208
209 #if defined(BM8578)
210 &bm8578_lcm_drv,
211 #endif
212
213 #if defined(NT35582_MCU)
214 &nt35582_mcu_lcm_drv,
215 #endif
216
217 #if defined(NT35582_MCU_6575)
218 &nt35582_mcu_6575_lcm_drv,
219 #endif
220
221 #if defined(NT35590_HD720_DSI_CMD_TRULY2)
222 &nt35590_hd720_dsi_cmd_truly2_lcm_drv,
223 #endif
224
225 #if defined(NT35590_HD720_DSI_VDO_TRULY)
226 &nt35590_hd720_dsi_vdo_truly_lcm_drv,
227 #endif
228
229 #if defined(SSD2075_HD720_DSI_VDO_TRULY)
230 &ssd2075_hd720_dsi_vdo_truly_lcm_drv,
231 #endif
232
233 #if defined(NT35590_HD720_DSI_CMD)
234 &nt35590_hd720_dsi_cmd_drv,
235 #endif
236
237 #if defined(NT35590_HD720_DSI_CMD_AUO)
238 &nt35590_hd720_dsi_cmd_auo_lcm_drv,
239 #endif
240
241 #if defined(NT35590_HD720_DSI_CMD_AUO_WVGA)
242 &nt35590_hd720_dsi_cmd_auo_wvga_lcm_drv,
243 #endif
244
245 #if defined(NT35590_HD720_DSI_CMD_AUO_QHD)
246 &nt35590_hd720_dsi_cmd_auo_qhd_lcm_drv,
247 #endif
248
249 #if defined(NT35590_HD720_DSI_CMD_AUO_FWVGA)
250 &nt35590_hd720_dsi_cmd_auo_fwvga_lcm_drv,
251 #endif
252
253 #if defined(NT35590_HD720_DSI_CMD_CMI)
254 &nt35590_hd720_dsi_cmd_cmi_lcm_drv,
255 #endif
256
257 #if defined(NT35582_RGB_6575)
258 &nt35582_rgb_6575_lcm_drv,
259 #endif
260
261 #if defined(NT51012_HD720_DSI_VDO)
262 &nt51012_hd720_dsi_vdo_lcm_drv,
263 #endif
264
265 #if defined(HX8369_RGB_6585_FPGA)
266 &hx8369_rgb_6585_fpga_lcm_drv,
267 #endif
268
269 #if defined(HX8369_RGB_6572_FPGA)
270 &hx8369_rgb_6572_fpga_lcm_drv,
271 #endif
272
273 #if defined(HX8369_MCU_6572)
274 &hx8369_mcu_6572_lcm_drv,
275 #endif
276
277 #if defined(HX8369A_WVGA_DSI_CMD)
278 &hx8369a_wvga_dsi_cmd_drv,
279 #endif
280
281 #if defined(HX8369A_WVGA_DSI_VDO)
282 &hx8369a_wvga_dsi_vdo_drv,
283 #endif
284
285 #if defined(HX8357B)
286 &hx8357b_lcm_drv,
287 #endif
288
289 #if defined(HX8357C_HVGA_DSI_CMD)
290 &hx8357c_hvga_dsi_cmd_drv,
291 #endif
292
293 #if defined(R61408)
294 &r61408_lcm_drv,
295 #endif
296
297 #if defined(R61408_WVGA_DSI_CMD)
298 &r61408_wvga_dsi_cmd_drv,
299 #endif
300
301 #if defined(HX8369_DSI_VDO)
302 &hx8369_dsi_vdo_lcm_drv,
303 #endif
304
305 #if defined(HX8369_DSI)
306 &hx8369_dsi_lcm_drv,
307 #endif
308
309 #if defined(HX8369_6575_DSI)
310 &hx8369_dsi_6575_lcm_drv,
311 #endif
312
313 #if defined(HX8369_6575_DSI_NFC_ZTE)
314 &hx8369_dsi_6575_lcm_drv,
315 #endif
316
317 #if defined(HX8369_6575_DSI_HVGA)
318 &hx8369_dsi_6575_hvga_lcm_drv,
319 #endif
320
321 #if defined(HX8369_6575_DSI_QVGA)
322 &hx8369_dsi_6575_qvga_lcm_drv,
323 #endif
324
325 #if defined(HX8369_HVGA)
326 &hx8369_hvga_lcm_drv,
327 #endif
328
329 #if defined(NT35510)
330 &nt35510_lcm_drv,
331 #endif
332
333 #if defined(NT35510_RGB_6575)
334 &nt35510_dpi_lcm_drv,
335 #endif
336
337 #if defined(NT35510_HVGA)
338 &nt35510_hvga_lcm_drv,
339 #endif
340
341 #if defined(NT35510_QVGA)
342 &nt35510_qvga_lcm_drv,
343 #endif
344
345 #if defined(NT35510_WVGA_DSI_CMD)
346 &nt35510_wvga_dsi_cmd_drv,
347 #endif
348
349 #if defined(NT35510_6517)
350 &nt35510_6517_lcm_drv,
351 #endif
352
353 #if defined(NT35510_DSI_CMD_6572)
354 &nt35510_dsi_cmd_6572_drv,
355 #endif
356
357 #if defined(NT35510_DSI_CMD_6572_HVGA)
358 &nt35510_dsi_cmd_6572_hvga_drv,
359 #endif
360
361 #if defined(NT35510_DSI_CMD_6572_FWVGA)
362 &nt35510_dsi_cmd_6572_fwvga_drv,
363 #endif
364
365 #if defined(NT35510_DSI_CMD_6572_QVGA)
366 &nt35510_dsi_cmd_6572_qvga_drv,
367 #endif
368
369 #if defined(NT35510_DSI_VDO_6572)
370 &nt35510_dsi_vdo_6572_drv,
371 #endif
372
373 #if defined(NT35510_DPI_6572)
374 &nt35510_dpi_6572_lcm_drv,
375 #endif
376
377 #if defined(NT35510_MCU_6572)
378 &nt35510_mcu_6572_lcm_drv,
379 #endif
380
381 #if defined(ILI9481)
382 &ili9481_lcm_drv,
383 #endif
384
385 #if defined(NT35582)
386 &nt35582_lcm_drv,
387 #endif
388
389 #if defined(S6D0170)
390 &s6d0170_lcm_drv,
391 #endif
392
393 #if defined(SPFD5461A)
394 &spfd5461a_lcm_drv,
395 #endif
396
397 #if defined(TA7601)
398 &ta7601_lcm_drv,
399 #endif
400
401 #if defined(TFT1P3037)
402 &tft1p3037_lcm_drv,
403 #endif
404
405 #if defined(HA5266)
406 &ha5266_lcm_drv,
407 #endif
408
409 #if defined(HSD070IDW1)
410 &hsd070idw1_lcm_drv,
411 #endif
412
413 #if defined(HX8363_6575_DSI)
414 &hx8363_6575_dsi_lcm_drv,
415 #endif
416
417 #if defined(HX8363_6575_DSI_HVGA)
418 &hx8363_6575_dsi_hvga_lcm_drv,
419 #endif
420
421 #if defined(HX8363B_WVGA_DSI_CMD)
422 &hx8363b_wvga_dsi_cmd_drv,
423 #endif
424
425 #if defined(LG4571)
426 &lg4571_lcm_drv,
427 #endif
428
429 #if defined(LG4573B_WVGA_DSI_VDO_LH430MV1)
430 &lg4573b_wvga_dsi_vdo_lh430mv1_drv,
431 #endif
432
433 #if defined(LVDS_WSVGA)
434 &lvds_wsvga_lcm_drv,
435 #endif
436
437 #if defined(LVDS_WSVGA_TI)
438 &lvds_wsvga_ti_lcm_drv,
439 #endif
440
441 #if defined(LVDS_WSVGA_TI_N)
442 &lvds_wsvga_ti_n_lcm_drv,
443 #endif
444
445 #if defined(NT35565_3D)
446 &nt35565_3d_lcm_drv,
447 #endif
448
449 #if defined(TM070DDH03)
450 &tm070ddh03_lcm_drv,
451 #endif
452 #if defined(R63303_IDISPLAY)
453 &r63303_idisplay_lcm_drv,
454 #endif
455
456 #if defined(HX8369B_DSI_VDO)
457 &hx8369b_dsi_vdo_lcm_drv,
458 #endif
459
460 #if defined(HX8369B_WVGA_DSI_VDO)
461 &hx8369b_wvga_dsi_vdo_drv,
462 #endif
463
464 #if defined(HX8369B_QHD_DSI_VDO)
465 &hx8389b_qhd_dsi_vdo_drv,
466 #endif
467
468 #if defined(GN_SSD2825_SMD_S6E8AA)
469 &gn_ssd2825_smd_s6e8aa,
470 #endif
471 #if defined(HX8369_TM_DSI)
472 &hx8369_dsi_tm_lcm_drv,
473 #endif
474
475 #if defined(HX8369_BLD_DSI)
476 &hx8369_dsi_bld_lcm_drv,
477 #endif
478
479 #if defined(HJ080IA)
480 &hj080ia_lcm_drv,
481 #endif
482
483 #if defined(HJ101NA02A)
484 &hj101na02a_lcm_drv,
485 #endif
486
487 #if defined(HJ101NA02A_8135)
488 &hj101na02a_8135_lcm_drv,
489 #endif
490
491 #if defined(HSD070PFW3)
492 &hsd070pfw3_lcm_drv,
493 #endif
494
495 #if defined(HSD070PFW3_8135)
496 &hsd070pfw3_8135_lcm_drv,
497 #endif
498
499 #if defined(EJ101IA)
500 &ej101ia_lcm_drv,
501 #endif
502
503 #if defined(SCF0700M48GGU02)
504 &scf0700m48ggu02_lcm_drv,
505 #endif
506
507 #if defined(OTM1280A_HD720_DSI_CMD)
508 &otm1280a_hd720_dsi_cmd_drv,
509 #endif
510
511 #if defined(OTM8018B_DSI_VDO)
512 &otm8018b_dsi_vdo_lcm_drv,
513 #endif
514
515 #if defined(NT35512_DSI_VDO)
516 &nt35512_dsi_vdo_lcm_drv,
517 #endif
518
519 #if defined(NT35512_WVGA_DSI_VDO_BOE)
520 &nt35512_wvga_dsi_vdo_boe_drv,
521 #endif
522
523 #if defined(HX8392A_DSI_CMD)
524 &hx8392a_dsi_cmd_lcm_drv,
525 #endif
526
527 #if defined(NT35516_QHD_DSI_CMD_IPSBOE)
528 &nt35516_qhd_dsi_cmd_ipsboe_lcm_drv,
529 #endif
530
531 #if defined(NT35516_QHD_DSI_CMD_IPSBOE_WVGA)
532 &nt35516_qhd_dsi_cmd_ipsboe_wvga_lcm_drv,
533 #endif
534
535 #if defined(NT35516_QHD_DSI_CMD_IPSBOE_FWVGA)
536 &nt35516_qhd_dsi_cmd_ipsboe_fwvga_lcm_drv,
537 #endif
538
539 #if defined(NT35516_QHD_DSI_CMD_IPS9K1431)
540 &nt35516_qhd_dsi_cmd_ips9k1431_drv,
541 #endif
542
543 #if defined(NT35516_QHD_DSI_CMD_TFT9K1342)
544 &nt35516_qhd_dsi_cmd_tft9k1342_drv,
545 #endif
546
547 #if defined(NT35516_QHD_DSI_VEDIO)
548 &nt35516_qhd_rav4_lcm_drv,
549 #endif
550
551 #if defined(BP070WS1)
552 &bp070ws1_lcm_drv,
553 #endif
554
555 #if defined(BP101WX1)
556 &bp101wx1_lcm_drv,
557 #endif
558
559 #if defined(BP101WX1_N)
560 &bp101wx1_n_lcm_drv,
561 #endif
562
563 #if defined(CM_N070ICE_DSI_VDO)
564 &cm_n070ice_dsi_vdo_lcm_drv,
565 #endif
566
567 #if defined(CM_OTC3108BH161_DSI_VDO)
568 &cm_otc3108bhv161_dsi_vdo_lcm_drv,
569 #endif
570 #if defined(NT35510_FWVGA)
571 &nt35510_fwvga_lcm_drv,
572 #endif
573
574 #if defined(R63311_FHD_DSI_VDO_SHARP)
575 &r63311_fhd_dsi_vdo_sharp_lcm_drv,
576 #endif
577
578 #if defined(R81592_HVGA_DSI_CMD)
579 &r81592_hvga_dsi_cmd_drv,
580 #endif
581
582 #if defined(RM68190_QHD_DSI_VDO)
583 &rm68190_dsi_vdo_lcm_drv,
584 #endif
585
586 #if defined(NT35596_FHD_DSI_VDO_TRULY)
587 &nt35596_fhd_dsi_vdo_truly_lcm_drv,
588 #endif
589
590 #if defined(NT35595_FHD_DSI_VDO_TRULY)
591 &nt35595_fhd_dsi_vdo_truly_lcm_drv,
592 #endif
593
594 #if defined(R63319_WQHD_DSI_VDO_TRULY)
595 &r63319_wqhd_dsi_vdo_truly_lcm_drv,
596 #endif
597
598
599 #if defined(NT35598_WQHD_DSI_VDO_TRULY)
600 &nt35598_wqhd_dsi_vdo_truly_lcm_drv,
601 #endif
602
603 #if defined(NT35595_FHD_DSI_CMD_TRULY_TPS65132)
604 &nt35595_fhd_dsi_cmd_truly_tps65132_lcm_drv,
605 #endif
606
607 #if defined(NT35595_FHD_DSI_CMD_TRULY_TPS65132_720P)
608 &nt35595_fhd_dsi_cmd_truly_tps65132_720p_lcm_drv,
609 #endif
610
611 #if defined(NT35595_FHD_DSI_CMD_TRULY)
612 &nt35595_fhd_dsi_cmd_truly_lcm_drv,
613 #endif
614
615
616 #if defined(NT35596_FHD_DSI_VDO_YASSY)
617 &nt35596_fhd_dsi_vdo_yassy_lcm_drv,
618 #endif
619
620 #if defined(AUO_B079XAT02_DSI_VDO)
621 &auo_b079xat02_dsi_vdo_lcm_drv,
622 #endif
623 #if defined(OTM9608_WVGA_DSI_CMD)
624 &otm9608_wvga_dsi_cmd_drv,
625 #endif
626
627 #if defined(NT35510_DBI_18BIT_GIONEE)
628 &nt35510_dbi_18bit_gionee_lcm_drv,
629 #endif
630
631 #if defined(OTM8009A_FWVGA_DSI_CMD_TIANMA)
632 &otm8009a_fwvga_dsi_cmd_tianma_lcm_drv,
633 #endif
634
635 #if defined(OTM8009A_FWVGA_DSI_VDO_TIANMA)
636 &otm8009a_fwvga_dsi_vdo_tianma_lcm_drv,
637 #endif
638
639 #if defined(HX8389B_QHD_DSI_VDO_TIANMA)
640 &hx8389b_qhd_dsi_vdo_tianma_lcm_drv,
641 #endif
642 #if defined(HX8389B_QHD_DSI_VDO_TIANMA055XDHP)
643 &hx8389b_qhd_dsi_vdo_tianma055xdhp_lcm_drv,
644 #endif
645
646 #if defined(CPT_CLAA101FP01_DSI_VDO)
647 &cpt_claa101fp01_dsi_vdo_lcm_drv,
648 #endif
649
650 #if defined(IT6151_EDP_DSI_VIDEO_SHARP)
651 &it6151_edp_dsi_video_sharp_lcm_drv,
652 #endif
653
654 #if defined(CPT_CLAP070WP03XG_SN65DSI83)
655 &cpt_clap070wp03xg_sn65dsi83_lcm_drv,
656 #endif
657 #if defined(NT35520_HD720_DSI_CMD_TM)
658 &nt35520_hd720_tm_lcm_drv,
659 #endif
660 #if defined(NT35520_HD720_DSI_CMD_BOE)
661 &nt35520_hd720_boe_lcm_drv,
662 #endif
663 #if defined(NT35521_HD720_DSI_VDO_BOE)
664 &nt35521_hd720_dsi_vdo_boe_lcm_drv,
665 #endif
666 #if defined(NT35521_HD720_DSI_VIDEO_TM)
667 &nt35521_hd720_tm_lcm_drv,
668 #endif
669 #if defined(H070D_18DM)
670 &h070d_18dm_lcm_drv,
671 #endif
672 #if defined(R69429_WUXGA_DSI_VDO)
673 &r69429_wuxga_dsi_vdo_lcm_drv,
674 #endif
675
676
677 #if defined(HX8394A_HD720_DSI_VDO_TIANMA)
678 &hx8394a_hd720_dsi_vdo_tianma_lcm_drv,
679 #endif
680
681 #if defined(R69429_WUXGA_DSI_CMD)
682 &r69429_wuxga_dsi_cmd_lcm_drv,
683 #endif
684
685 #if defined(RM68210_HD720_DSI_UFOE_CMD)
686 &rm68210_hd720_dsi_ufoe_cmd_lcm_drv,
687 #endif
688
689 #if defined(CPT_CLAP070WP03XG_LVDS)
690 &cpt_clap070wp03xg_lvds_lcm_drv,
691 #endif
692
693 #if defined(OTM8018B_DSI_VDO_LCSH72)
694 &otm8018b_dsi_vdo_lcsh72_lcm_drv,
695 #endif
696
697 #if defined(HX8369_DSI_CMD_6571)
698 &hx8369_dsi_cmd_6571_lcm_drv,
699 #endif
700
701 #if defined(HX8369_DSI_VDO_6571)
702 &hx8369_dsi_vdo_6571_lcm_drv,
703 #endif
704
705 #if defined(HX8369_DBI_6571)
706 &hx8369_dbi_6571_lcm_drv,
707 #endif
708
709 #if defined(HX8369_DPI_6571)
710 &hx8369_dpi_6571_lcm_drv,
711 #endif
712
713 #if defined(HX8389B_QHD_DSI_VDO_LGD)
714 &hx8389b_qhd_dsi_vdo_lgd_lcm_drv,
715 #endif
716
717 #if defined(NT35510_DSI_CMD_6571)
718 &nt35510_dsi_cmd_6571_lcm_drv,
719 #endif
720
721 #if defined(NT35510_DSI_CMD_6571_HVGA)
722 &nt35510_dsi_cmd_6571_hvga_lcm_drv,
723 #endif
724
725 #if defined(NT35510_DSI_CMD_6571_QVGA)
726 &nt35510_dsi_cmd_6571_qvga_lcm_drv,
727 #endif
728
729 #if defined(NT35510_DSI_VDO_6571)
730 &nt35510_dsi_vdo_6571_lcm_drv,
731 #endif
732
733 #if defined(NT35510_DBI_6571)
734 &nt35510_dbi_6571_lcm_drv,
735 #endif
736
737 #if defined(NT35510_DPI_6571)
738 &nt35510_dpi_6571_lcm_drv,
739 #endif
740
741 #if defined(NT35590_DSI_CMD_6571_FWVGA)
742 &nt35590_dsi_cmd_6571_fwvga_lcm_drv,
743 #endif
744
745 #if defined(NT35590_DSI_CMD_6571_QHD)
746 &nt35590_dsi_cmd_6571_qhd_lcm_drv,
747 #endif
748
749 #if defined(NT35517_QHD_DSI_VIDEO)
750 &nt35517_qhd_dsi_vdo_lcm_drv,
751 #endif
752
753 #if defined(IT6151_FHD_EDP_DSI_VIDEO_AUO)
754 &it6151_fhd_edp_dsi_video_auo_lcm_drv,
755 #endif
756
757 #if defined(A080EAN01_DSI_VDO)
758 &a080ean01_dsi_vdo_lcm_drv,
759 #endif
760 };
761
762 #define LCM_COMPILE_ASSERT(condition) LCM_COMPILE_ASSERT_X(condition, __LINE__)
763 #define LCM_COMPILE_ASSERT_X(condition, line) LCM_COMPILE_ASSERT_XX(condition, line)
764 #define LCM_COMPILE_ASSERT_XX(condition, line) char assertion_failed_at_line_##line[(condition)?1:-1]
765
766 unsigned int lcm_count = sizeof(lcm_driver_list)/sizeof(LCM_DRIVER*);
767 /*LCM_COMPILE_ASSERT(0 != sizeof(lcm_driver_list)/sizeof(LCM_DRIVER*));*/
768 #if defined(NT35520_HD720_DSI_CMD_TM) | defined(NT35520_HD720_DSI_CMD_BOE) | defined(NT35521_HD720_DSI_VDO_BOE) | defined(NT35521_HD720_DSI_VIDEO_TM)
769 #ifdef BUILD_LK
770 extern void mdelay(unsigned long msec);
771 #endif
772 static unsigned char lcd_id_pins_value = 0xFF;
773
774
775 /******************************************************************************
776 Function: which_lcd_module_triple
777 Description: read LCD ID PIN status,could identify three status:high¡¢low¡¢float
778 Input: none
779 Output: none
780 Return: LCD ID1|ID0 value
781 Others:
782 ******************************************************************************/
783 unsigned char which_lcd_module_triple(void)
784 {
785 unsigned char high_read0 = 0;
786 unsigned char low_read0 = 0;
787 unsigned char high_read1 = 0;
788 unsigned char low_read1 = 0;
789 unsigned char lcd_id0 = 0;
790 unsigned char lcd_id1 = 0;
791 unsigned char lcd_id = 0;
792 //Solve Coverity scan warning : check return value
793 unsigned int ret = 0;
794 //only recognise once
795 if(0xFF != lcd_id_pins_value)
796 {
797 return lcd_id_pins_value;
798 }
799 //Solve Coverity scan warning : check return value
800 ret = mt_set_gpio_mode(GPIO_DISP_ID0_PIN, GPIO_MODE_00);
801 if(0 != ret)
802 {
803 LCD_DEBUG("ID0 mt_set_gpio_mode fail\n");
804 }
805 ret = mt_set_gpio_dir(GPIO_DISP_ID0_PIN, GPIO_DIR_IN);
806 if(0 != ret)
807 {
808 LCD_DEBUG("ID0 mt_set_gpio_dir fail\n");
809 }
810 ret = mt_set_gpio_pull_enable(GPIO_DISP_ID0_PIN, GPIO_PULL_ENABLE);
811 if(0 != ret)
812 {
813 LCD_DEBUG("ID0 mt_set_gpio_pull_enable fail\n");
814 }
815 ret = mt_set_gpio_mode(GPIO_DISP_ID1_PIN, GPIO_MODE_00);
816 if(0 != ret)
817 {
818 LCD_DEBUG("ID1 mt_set_gpio_mode fail\n");
819 }
820 ret = mt_set_gpio_dir(GPIO_DISP_ID1_PIN, GPIO_DIR_IN);
821 if(0 != ret)
822 {
823 LCD_DEBUG("ID1 mt_set_gpio_dir fail\n");
824 }
825 ret = mt_set_gpio_pull_enable(GPIO_DISP_ID1_PIN, GPIO_PULL_ENABLE);
826 if(0 != ret)
827 {
828 LCD_DEBUG("ID1 mt_set_gpio_pull_enable fail\n");
829 }
830 //pull down ID0 ID1 PIN
831 ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN,GPIO_PULL_DOWN);
832 if(0 != ret)
833 {
834 LCD_DEBUG("ID0 mt_set_gpio_pull_select->Down fail\n");
835 }
836 ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN,GPIO_PULL_DOWN);
837 if(0 != ret)
838 {
839 LCD_DEBUG("ID1 mt_set_gpio_pull_select->Down fail\n");
840 }
841 //delay 100ms , for discharging capacitance
842 mdelay(100);
843 //get ID0 ID1 status
844 low_read0 = mt_get_gpio_in(GPIO_DISP_ID0_PIN);
845 low_read1 = mt_get_gpio_in(GPIO_DISP_ID1_PIN);
846 //pull up ID0 ID1 PIN
847 ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN,GPIO_PULL_UP);
848 if(0 != ret)
849 {
850 LCD_DEBUG("ID0 mt_set_gpio_pull_select->UP fail\n");
851 }
852 ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN,GPIO_PULL_UP);
853 if(0 != ret)
854 {
855 LCD_DEBUG("ID1 mt_set_gpio_pull_select->UP fail\n");
856 }
857 //delay 100ms , for charging capacitance
858 mdelay(100);
859 //get ID0 ID1 status
860 high_read0 = mt_get_gpio_in(GPIO_DISP_ID0_PIN);
861 high_read1 = mt_get_gpio_in(GPIO_DISP_ID1_PIN);
862
863 if( low_read0 != high_read0 )
864 {
865 /*float status , pull down ID0 ,to prevent electric leakage*/
866 ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN,GPIO_PULL_DOWN);
867 if(0 != ret)
868 {
869 LCD_DEBUG("ID0 mt_set_gpio_pull_select->Down fail\n");
870 }
871 lcd_id0 = LCD_HW_ID_STATUS_FLOAT;
872 }
873 else if((LCD_HW_ID_STATUS_LOW == low_read0) && (LCD_HW_ID_STATUS_LOW == high_read0))
874 {
875 /*low status , pull down ID0 ,to prevent electric leakage*/
876 ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN,GPIO_PULL_DOWN);
877 if(0 != ret)
878 {
879 LCD_DEBUG("ID0 mt_set_gpio_pull_select->Down fail\n");
880 }
881 lcd_id0 = LCD_HW_ID_STATUS_LOW;
882 }
883 else if((LCD_HW_ID_STATUS_HIGH == low_read0) && (LCD_HW_ID_STATUS_HIGH == high_read0))
884 {
885 /*high status , pull up ID0 ,to prevent electric leakage*/
886 ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN,GPIO_PULL_UP);
887 if(0 != ret)
888 {
889 LCD_DEBUG("ID0 mt_set_gpio_pull_select->UP fail\n");
890 }
891 lcd_id0 = LCD_HW_ID_STATUS_HIGH;
892 }
893 else
894 {
895 LCD_DEBUG(" Read LCD_id0 error\n");
896 ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN,GPIO_PULL_DISABLE);
897 if(0 != ret)
898 {
899 LCD_DEBUG("ID0 mt_set_gpio_pull_select->Disbale fail\n");
900 }
901 lcd_id0 = LCD_HW_ID_STATUS_ERROR;
902 }
903
904
905 if( low_read1 != high_read1 )
906 {
907 /*float status , pull down ID1 ,to prevent electric leakage*/
908 ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN,GPIO_PULL_DOWN);
909 if(0 != ret)
910 {
911 LCD_DEBUG("ID1 mt_set_gpio_pull_select->Down fail\n");
912 }
913 lcd_id1 = LCD_HW_ID_STATUS_FLOAT;
914 }
915 else if((LCD_HW_ID_STATUS_LOW == low_read1) && (LCD_HW_ID_STATUS_LOW == high_read1))
916 {
917 /*low status , pull down ID1 ,to prevent electric leakage*/
918 ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN,GPIO_PULL_DOWN);
919 if(0 != ret)
920 {
921 LCD_DEBUG("ID1 mt_set_gpio_pull_select->Down fail\n");
922 }
923 lcd_id1 = LCD_HW_ID_STATUS_LOW;
924 }
925 else if((LCD_HW_ID_STATUS_HIGH == low_read1) && (LCD_HW_ID_STATUS_HIGH == high_read1))
926 {
927 /*high status , pull up ID1 ,to prevent electric leakage*/
928 ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN,GPIO_PULL_UP);
929 if(0 != ret)
930 {
931 LCD_DEBUG("ID1 mt_set_gpio_pull_select->UP fail\n");
932 }
933 lcd_id1 = LCD_HW_ID_STATUS_HIGH;
934 }
935 else
936 {
937
938 LCD_DEBUG(" Read LCD_id1 error\n");
939 ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN,GPIO_PULL_DISABLE);
940 if(0 != ret)
941 {
942 LCD_DEBUG("ID1 mt_set_gpio_pull_select->Disable fail\n");
943 }
944 lcd_id1 = LCD_HW_ID_STATUS_ERROR;
945 }
946 #ifdef BUILD_LK
947 dprintf(CRITICAL,"which_lcd_module_triple,lcd_id0:%d\n",lcd_id0);
948 dprintf(CRITICAL,"which_lcd_module_triple,lcd_id1:%d\n",lcd_id1);
949 #else
950 printk("which_lcd_module_triple,lcd_id0:%d\n",lcd_id0);
951 printk("which_lcd_module_triple,lcd_id1:%d\n",lcd_id1);
952 #endif
953 lcd_id = lcd_id0 | (lcd_id1 << 2);
954
955 #ifdef BUILD_LK
956 dprintf(CRITICAL,"which_lcd_module_triple,lcd_id:%d\n",lcd_id);
957 #else
958 printk("which_lcd_module_triple,lcd_id:%d\n",lcd_id);
959 #endif
960
961 lcd_id_pins_value = lcd_id;
962 return lcd_id;
963 }
964 #endif