// SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2019 MediaTek Inc. * Author: Joey Pan */ #include "mt65xx_lcm_list.h" #include #ifdef BUILD_LK #include #else #include /* #include */ #endif enum LCM_DSI_MODE_CON lcm_dsi_mode; /* used to identify float ID PIN status */ #define LCD_HW_ID_STATUS_LOW 0 #define LCD_HW_ID_STATUS_HIGH 1 #define LCD_HW_ID_STATUS_FLOAT 0x02 #define LCD_HW_ID_STATUS_ERROR 0x03 struct LCM_DRIVER *lcm_driver_list[] = { #if defined(HX83102P_WXGA_VDO_INCELL_BOE) &hx83102p_wxga_vdo_incell_boe_lcm_drv, #endif #if defined(NT36672AH_HDP_DSI_VDO_TCL_CSOT) &nt36672ah_hdp_dsi_vdo_tcl_csot_lcm_drv, #endif #if defined(ES6311_ANX6585_ZIGZAG_WXGA) &es6311_anx6585_zigzag_wxga_lcm_drv, #endif #if defined(NT36672AH_HDP_DSI_VDO_TCL_CSOT_FWVPLUS) &nt36672ah_hdp_dsi_vdo_tcl_csot_fwvplus_lcm_drv, #endif #if defined(OTM1284A_HD720_DSI_VDO_TM) &otm1284a_hd720_dsi_vdo_tm_lcm_drv, #endif #if defined(OTM1285A_HD720_DSI_VDO_TM) &otm1285a_hd720_dsi_vdo_tm_lcm_drv, #endif #if defined(OTM1901A_FHD_DSI_VDO_TPV) &otm1901a_fhd_dsi_vdo_tpv_lcm_drv, #endif #if defined(R63350A_FHD_DSI_VDO_TRULY) &r63350a_fhd_dsi_vdo_truly_lcm_drv, #endif #if defined(NT35532_FHD_DSI_VDO_SHARP) &nt35532_fhd_dsi_vdo_sharp_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_8163) &nt35595_fhd_dsi_cmd_truly_8163_lcm_drv, #endif #if defined(NT35523_WXGA_DSI_VDO_8163) &nt35523_wxga_dsi_vdo_8163_lcm_drv, #endif #if defined(EK79007_WSVGALNL_DSI_VDO) &ek79007_wsvgalnl_dsi_vdo_lcm_drv, #endif #if defined(S6E3FA2_FHD1080_DSI_VDO) &s6e3fa2_fhd1080_dsi_vdo_lcm_drv, #endif #if defined(OTM1283A_HD720_DSI_VDO_TM) &otm1283a_hd720_dsi_vdo_tm_lcm_drv, #endif #if defined(IT6151_LP079QX1_EDP_DSI_VIDEO) &it6151_lp079qx1_edp_dsi_video_lcm_drv, #endif #if defined(VVX10F008B00_WUXGA_DSI_VDO) &vvx10f008b00_wuxga_dsi_vdo_lcm_drv, #endif #if defined(KD070D5450NHA6_RGB_DPI) &kd070d5450nha6_rgb_dpi_lcm_drv, #endif #if defined(KR101IA2S_DSI_VDO) &kr101ia2s_dsi_vdo_lcm_drv, #endif #if defined(KR070IA4T_DSI_VDO) &kr070ia4t_dsi_vdo_lcm_drv, #endif #if defined(HX8394A_HD720_DSI_VDO_TIANMA_V2) &hx8394a_hd720_dsi_vdo_tianma_v2_lcm_drv, #endif #if defined(OTM1283A) &otm1283a_6589_hd_dsi, #endif #if defined(OTM1282A_HD720_DSI_VDO_60HZ) &otm1282a_hd720_dsi_vdo_60hz_lcm_drv, #endif #if defined(OTM8018B_DSI_VDO_TXD_FWVGA) &otm8018b_dsi_vdo_txd_fwvga_lcm_drv, #endif #if defined(TF070MC_RGB_V18_MT6571) &tf070mc_rgb_v18_mt6571_lcm_drv, #endif #if defined(ZS070IH5015B3H6_RGB_MT6571) &zs070ih5015b3h6_mt6571_lcm_drv, #endif #if defined(OTM1282A_HD720_DSI_VDO) &otm1282a_hd720_dsi_vdo_lcm_drv, #endif #if defined(R63311_FHD_DSI_VDO) &r63311_fhd_dsi_vedio_lcm_drv, #endif #if defined(R63315_FHD_DSI_VDO_TRULY) &r63315_fhd_dsi_vdo_truly_lcm_drv, #endif #if defined(NT35517_QHD_DSI_VDO) &nt35517_dsi_vdo_lcm_drv, #endif #if defined(ILI9806E_DSI_VDO_FWVGA) &ili9806e_dsi_vdo_fwvga_drv, #endif #if defined(LP079X01) &lp079x01_lcm_drv, #endif #if defined(HX8369) &hx8369_lcm_drv, #endif #if defined(HX8369_6575) &hx8369_6575_lcm_drv, #endif #if defined(BM8578) &bm8578_lcm_drv, #endif #if defined(NT35582_MCU) &nt35582_mcu_lcm_drv, #endif #if defined(NT35582_MCU_6575) &nt35582_mcu_6575_lcm_drv, #endif #if defined(NT35590_HD720_DSI_CMD_TRULY2) &nt35590_hd720_dsi_cmd_truly2_lcm_drv, #endif #if defined(NT35590_HD720_DSI_VDO_TRULY) &nt35590_hd720_dsi_vdo_truly_lcm_drv, #endif #if defined(SSD2075_HD720_DSI_VDO_TRULY) &ssd2075_hd720_dsi_vdo_truly_lcm_drv, #endif #if defined(NT35590_HD720_DSI_CMD) &nt35590_hd720_dsi_cmd_drv, #endif #if defined(NT35590_HD720_DSI_CMD_AUO) &nt35590_hd720_dsi_cmd_auo_lcm_drv, #endif #if defined(NT35590_HD720_DSI_CMD_AUO_WVGA) &nt35590_hd720_dsi_cmd_auo_wvga_lcm_drv, #endif #if defined(NT35590_HD720_DSI_CMD_AUO_QHD) &nt35590_hd720_dsi_cmd_auo_qhd_lcm_drv, #endif #if defined(NT35590_HD720_DSI_CMD_AUO_FWVGA) &nt35590_hd720_dsi_cmd_auo_fwvga_lcm_drv, #endif #if defined(NT35590_HD720_DSI_CMD_CMI) &nt35590_hd720_dsi_cmd_cmi_lcm_drv, #endif #if defined(NT35582_RGB_6575) &nt35582_rgb_6575_lcm_drv, #endif #if defined(NT51012_HD720_DSI_VDO) &nt51012_hd720_dsi_vdo_lcm_drv, #endif #if defined(HX8369_RGB_6585_FPGA) &hx8369_rgb_6585_fpga_lcm_drv, #endif #if defined(HX8369_RGB_6572_FPGA) &hx8369_rgb_6572_fpga_lcm_drv, #endif #if defined(HX8369_MCU_6572) &hx8369_mcu_6572_lcm_drv, #endif #if defined(HX8369A_WVGA_DSI_CMD) &hx8369a_wvga_dsi_cmd_drv, #endif #if defined(HX8369A_WVGA_DSI_VDO) &hx8369a_wvga_dsi_vdo_drv, #endif #if defined(HX8357B) &hx8357b_lcm_drv, #endif #if defined(HX8357C_HVGA_DSI_CMD) &hx8357c_hvga_dsi_cmd_drv, #endif #if defined(R61408) &r61408_lcm_drv, #endif #if defined(R61408_WVGA_DSI_CMD) &r61408_wvga_dsi_cmd_drv, #endif #if defined(HX8369_DSI_VDO) &hx8369_dsi_vdo_lcm_drv, #endif #if defined(HX8369_DSI) &hx8369_dsi_lcm_drv, #endif #if defined(HX8369_6575_DSI) &hx8369_dsi_6575_lcm_drv, #endif #if defined(HX8369_6575_DSI_NFC_ZTE) &hx8369_dsi_6575_lcm_drv, #endif #if defined(HX8369_6575_DSI_HVGA) &hx8369_dsi_6575_hvga_lcm_drv, #endif #if defined(HX8369_6575_DSI_QVGA) &hx8369_dsi_6575_qvga_lcm_drv, #endif #if defined(HX8369_HVGA) &hx8369_hvga_lcm_drv, #endif #if defined(NT35510) &nt35510_lcm_drv, #endif #if defined(NT35510_RGB_6575) &nt35510_dpi_lcm_drv, #endif #if defined(NT35510_HVGA) &nt35510_hvga_lcm_drv, #endif #if defined(NT35510_QVGA) &nt35510_qvga_lcm_drv, #endif #if defined(NT35510_WVGA_DSI_CMD) &nt35510_wvga_dsi_cmd_drv, #endif #if defined(NT35510_6517) &nt35510_6517_lcm_drv, #endif #if defined(NT35510_DSI_CMD_6572) &nt35510_dsi_cmd_6572_drv, #endif #if defined(NT35510_DSI_CMD_6572_HVGA) &nt35510_dsi_cmd_6572_hvga_drv, #endif #if defined(NT35510_DSI_CMD_6572_FWVGA) &nt35510_dsi_cmd_6572_fwvga_drv, #endif #if defined(NT35510_DSI_CMD_6572_QVGA) &nt35510_dsi_cmd_6572_qvga_drv, #endif #if defined(NT35510_DSI_VDO_6572) &nt35510_dsi_vdo_6572_drv, #endif #if defined(NT35510_DPI_6572) &nt35510_dpi_6572_lcm_drv, #endif #if defined(NT35510_MCU_6572) &nt35510_mcu_6572_lcm_drv, #endif #if defined(ILI9481) &ili9481_lcm_drv, #endif #if defined(NT35582) &nt35582_lcm_drv, #endif #if defined(S6D0170) &s6d0170_lcm_drv, #endif #if defined(SPFD5461A) &spfd5461a_lcm_drv, #endif #if defined(TA7601) &ta7601_lcm_drv, #endif #if defined(TFT1P3037) &tft1p3037_lcm_drv, #endif #if defined(HA5266) &ha5266_lcm_drv, #endif #if defined(HSD070IDW1) &hsd070idw1_lcm_drv, #endif #if defined(HX8363_6575_DSI) &hx8363_6575_dsi_lcm_drv, #endif #if defined(HX8363_6575_DSI_HVGA) &hx8363_6575_dsi_hvga_lcm_drv, #endif #if defined(HX8363B_WVGA_DSI_CMD) &hx8363b_wvga_dsi_cmd_drv, #endif #if defined(LG4571) &lg4571_lcm_drv, #endif #if defined(LG4573B_WVGA_DSI_VDO_LH430MV1) &lg4573b_wvga_dsi_vdo_lh430mv1_drv, #endif #if defined(LVDS_WSVGA) &lvds_wsvga_lcm_drv, #endif #if defined(LVDS_WSVGA_TI) &lvds_wsvga_ti_lcm_drv, #endif #if defined(LVDS_WSVGA_TI_N) &lvds_wsvga_ti_n_lcm_drv, #endif #if defined(NT35565_3D) &nt35565_3d_lcm_drv, #endif #if defined(TM070DDH03) &tm070ddh03_lcm_drv, #endif #if defined(R63303_IDISPLAY) &r63303_idisplay_lcm_drv, #endif #if defined(HX8369B_DSI_VDO) &hx8369b_dsi_vdo_lcm_drv, #endif #if defined(HX8369B_WVGA_DSI_VDO) &hx8369b_wvga_dsi_vdo_drv, #endif #if defined(HX8369B_QHD_DSI_VDO) &hx8389b_qhd_dsi_vdo_drv, #endif #if defined(HX8389B_HD720_DSI_VDO) &hx8389b_hd720_dsi_vdo_drv, #endif #if defined(GN_SSD2825_SMD_S6E8AA) &gn_ssd2825_smd_s6e8aa, #endif #if defined(HX8369_TM_DSI) &hx8369_dsi_tm_lcm_drv, #endif #if defined(HX8369_BLD_DSI) &hx8369_dsi_bld_lcm_drv, #endif #if defined(HJ080IA) &hj080ia_lcm_drv, #endif #if defined(HJ101NA02A) &hj101na02a_lcm_drv, #endif #if defined(HJ101NA02A_8135) &hj101na02a_8135_lcm_drv, #endif #if defined(HSD070PFW3) &hsd070pfw3_lcm_drv, #endif #if defined(HSD070PFW3_8135) &hsd070pfw3_8135_lcm_drv, #endif #if defined(EJ101IA) &ej101ia_lcm_drv, #endif #if defined(SCF0700M48GGU02) &scf0700m48ggu02_lcm_drv, #endif #if defined(OTM1280A_HD720_DSI_CMD) &otm1280a_hd720_dsi_cmd_drv, #endif #if defined(OTM8018B_DSI_VDO) &otm8018b_dsi_vdo_lcm_drv, #endif #if defined(NT35512_DSI_VDO) &nt35512_dsi_vdo_lcm_drv, #endif #if defined(NT35512_WVGA_DSI_VDO_BOE) &nt35512_wvga_dsi_vdo_boe_drv, #endif #if defined(HX8392A_DSI_CMD) &hx8392a_dsi_cmd_lcm_drv, #endif #if defined(HX8392A_DSI_CMD_3LANE) &hx8392a_dsi_cmd_3lane_lcm_drv, #endif #if defined(HX8392A_DSI_CMD_WVGA) &hx8392a_dsi_cmd_wvga_lcm_drv, #endif #if defined(HX8392A_DSI_CMD_FWVGA) &hx8392a_dsi_cmd_fwvga_lcm_drv, #endif #if defined(HX8392A_DSI_CMD_QHD) &hx8392a_dsi_cmd_qhd_lcm_drv, #endif #if defined(HX8392A_DSI_VDO) &hx8392a_dsi_vdo_lcm_drv, #endif #if defined(HX8392A_DSI_VDO_2LANE) &hx8392a_dsi_vdo_2lane_lcm_drv, #endif #if defined(HX8392A_DSI_VDO_3LANE) &hx8392a_dsi_vdo_3lane_lcm_drv, #endif #if defined(NT35516_QHD_DSI_CMD_IPSBOE) &nt35516_qhd_dsi_cmd_ipsboe_lcm_drv, #endif #if defined(NT35516_QHD_DSI_CMD_IPSBOE_WVGA) &nt35516_qhd_dsi_cmd_ipsboe_wvga_lcm_drv, #endif #if defined(NT35516_QHD_DSI_CMD_IPSBOE_FWVGA) &nt35516_qhd_dsi_cmd_ipsboe_fwvga_lcm_drv, #endif #if defined(NT35516_QHD_DSI_CMD_IPS9K1431) &nt35516_qhd_dsi_cmd_ips9k1431_drv, #endif #if defined(NT35516_QHD_DSI_CMD_TFT9K1342) &nt35516_qhd_dsi_cmd_tft9k1342_drv, #endif #if defined(NT35516_QHD_DSI_VEDIO) &nt35516_qhd_rav4_lcm_drv, #endif #if defined(BP070WS1) &bp070ws1_lcm_drv, #endif #if defined(BP101WX1) &bp101wx1_lcm_drv, #endif #if defined(BP101WX1_N) &bp101wx1_n_lcm_drv, #endif #if defined(CM_N070ICE_DSI_VDO) &cm_n070ice_dsi_vdo_lcm_drv, #endif #if defined(CM_N070ICE_DSI_VDO_MT8135) &cm_n070ice_dsi_vdo_mt8135_lcm_drv, #endif #if defined(CM_OTC3108BH161_DSI_VDO) &cm_otc3108bhv161_dsi_vdo_lcm_drv, #endif #if defined(NT35510_FWVGA) &nt35510_fwvga_lcm_drv, #endif #if defined(R63311_FHD_DSI_VDO_SHARP) &r63311_fhd_dsi_vdo_sharp_lcm_drv, #endif #if defined(R81592_HVGA_DSI_CMD) &r81592_hvga_dsi_cmd_drv, #endif #if defined(RM68190_QHD_DSI_VDO) &rm68190_dsi_vdo_lcm_drv, #endif #if defined(NT35596_FHD_DSI_VDO_TRULY) &nt35596_fhd_dsi_vdo_truly_lcm_drv, #endif #if defined(NT35595_FHD_DSI_VDO_TRULY) &nt35595_fhd_dsi_vdo_truly_lcm_drv, #endif #if defined(R63319_WQHD_DSI_VDO_TRULY) &r63319_wqhd_dsi_vdo_truly_lcm_drv, #endif #if defined(NT35598_WQHD_DSI_VDO_TRULY) &nt35598_wqhd_dsi_vdo_truly_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_TPS65132) &nt35595_fhd_dsi_cmd_truly_tps65132_lcm_drv, #endif #if defined(NT35595_FHD_DSI_VDO_TRULY_TPS65132) &nt35595_fhd_dsi_vdo_truly_tps65132_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_TPS65132_720P) &nt35595_fhd_dsi_cmd_truly_tps65132_720p_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY) &nt35595_fhd_dsi_cmd_truly_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_NT50358) &nt35595_fhd_dsi_cmd_truly_nt50358_lcm_drv, #endif #if defined(NT35595_FHD_DSI_VDO_TRULY_NT50358) &nt35595_fhd_dsi_vdo_truly_nt50358_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_NT50358_720P) &nt35595_fhd_dsi_cmd_truly_nt50358_720p_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_NT50358_QHD) &nt35595_fhd_dsi_cmd_truly_nt50358_qhd_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_NT50358_FWVGA) &nt35595_fhd_dsi_cmd_truly_nt50358_fwvga_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_NT50358_WVGA) &nt35595_fhd_dsi_cmd_truly_nt50358_wvga_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_NT50358_6735) &nt35595_fhd_dsi_cmd_truly_nt50358_6735_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_NT50358_6735_720P) &nt35595_fhd_dsi_cmd_truly_nt50358_6735_720p_lcm_drv, #endif #if defined(NT35596_FHD_DSI_VDO_YASSY) &nt35596_fhd_dsi_vdo_yassy_lcm_drv, #endif #if defined(NT35596_HD720_DSI_VDO_TRULY_TPS65132) &nt35596_hd720_dsi_vdo_truly_tps65132_lcm_drv, #endif #if defined(AUO_B079XAT02_DSI_VDO) &auo_b079xat02_dsi_vdo_lcm_drv, #endif #if defined(OTM9608_WVGA_DSI_CMD) &otm9608_wvga_dsi_cmd_drv, #endif #if defined(OTM9608_FWVGA_DSI_CMD) &otm9608_fwvga_dsi_cmd_drv, #endif #if defined(OTM9608_QHD_DSI_CMD) &otm9608_qhd_dsi_cmd_drv, #endif #if defined(OTM9608_QHD_DSI_VDO) &otm9608_qhd_dsi_vdo_drv, #endif #if defined(OTM8009A_FWVGA_DSI_CMD_TIANMA) &otm8009a_fwvga_dsi_cmd_tianma_lcm_drv, #endif #if defined(OTM8009A_FWVGA_DSI_VDO_TIANMA) &otm8009a_fwvga_dsi_vdo_tianma_lcm_drv, #endif #if defined(HX8389B_QHD_DSI_VDO_TIANMA) &hx8389b_qhd_dsi_vdo_tianma_lcm_drv, #endif #if defined(HX8389B_QHD_DSI_VDO_TIANMA055XDHP) &hx8389b_qhd_dsi_vdo_tianma055xdhp_lcm_drv, #endif #if defined(CPT_CLAA101FP01_DSI_VDO) &cpt_claa101fp01_dsi_vdo_lcm_drv, #endif #if defined(CPT_CLAA101FP01_DSI_VDO_8163) &cpt_claa101fp01_dsi_vdo_8163_lcm_drv, #endif #if defined(IT6151_EDP_DSI_VIDEO_SHARP) &it6151_edp_dsi_video_sharp_lcm_drv, #endif #if defined(CPT_CLAP070WP03XG_SN65DSI83) &cpt_clap070wp03xg_sn65dsi83_lcm_drv, #endif #if defined(NT35520_HD720_DSI_CMD_TM) &nt35520_hd720_tm_lcm_drv, #endif #if defined(NT35520_HD720_DSI_CMD_BOE) &nt35520_hd720_boe_lcm_drv, #endif #if defined(NT35521_HD720_DSI_VDO_BOE) &nt35521_hd720_dsi_vdo_boe_lcm_drv, #endif #if defined(NT35521_HD720_DSI_VIDEO_TM) &nt35521_hd720_tm_lcm_drv, #endif #if defined(NT35521_HD_DSI_VDO_TRULY_RT5081) &nt35521_hd_dsi_vdo_truly_rt5081_lcm_drv, #endif #if defined(R69338_HD720_DSI_VDO_JDI_DW8755A) &r69338_hd720_dsi_vdo_jdi_dw8755a_drv, #endif #if defined(H070D_18DM) &h070d_18dm_lcm_drv, #endif #if defined(R69429_WUXGA_DSI_VDO) &r69429_wuxga_dsi_vdo_lcm_drv, #endif #if defined(HX8394D_HD720_DSI_VDO_TIANMA) &hx8394d_hd720_dsi_vdo_tianma_lcm_drv, #endif #if defined(HX8394A_HD720_DSI_VDO_TIANMA) &hx8394a_hd720_dsi_vdo_tianma_lcm_drv, #endif #if defined(R69429_WUXGA_DSI_CMD) &r69429_wuxga_dsi_cmd_lcm_drv, #endif #if defined(RM68210_HD720_DSI_UFOE_CMD) &rm68210_hd720_dsi_ufoe_cmd_lcm_drv, #endif #if defined(CPT_CLAP070WP03XG_LVDS) &cpt_clap070wp03xg_lvds_lcm_drv, #endif #if defined(OTM8018B_DSI_VDO_L72) &otm8018b_dsi_vdo_l72_lcm_drv, #endif #if defined(HX8369_DSI_CMD_6571) &hx8369_dsi_cmd_6571_lcm_drv, #endif #if defined(HX8369_DSI_VDO_6571) &hx8369_dsi_vdo_6571_lcm_drv, #endif #if defined(RX_498HX_615B_82) &RX_498HX_615B_82_lcm_drv, #endif #if defined(HX8369_DBI_6571) &hx8369_dbi_6571_lcm_drv, #endif #if defined(RX_498HX_615B) &RX_498HX_615B_lcm_drv, #endif #if defined(HX8369_DPI_6571) &hx8369_dpi_6571_lcm_drv, #endif #if defined(HX8389B_QHD_DSI_VDO_LGD) &hx8389b_qhd_dsi_vdo_lgd_lcm_drv, #endif #if defined(NT35510_DSI_CMD_6571) &nt35510_dsi_cmd_6571_lcm_drv, #endif #if defined(NT35510_DSI_CMD_6571_HVGA) &nt35510_dsi_cmd_6571_hvga_lcm_drv, #endif #if defined(NT35510_DSI_CMD_6571_QVGA) &nt35510_dsi_cmd_6571_qvga_lcm_drv, #endif #if defined(NT35510_DSI_VDO_6571) &nt35510_dsi_vdo_6571_lcm_drv, #endif #if defined(NT35510_DBI_6571) &nt35510_dbi_6571_lcm_drv, #endif #if defined(NT35510_DPI_6571) &nt35510_dpi_6571_lcm_drv, #endif #if defined(NT35590_DSI_CMD_6571_FWVGA) &nt35590_dsi_cmd_6571_fwvga_lcm_drv, #endif #if defined(NT35590_DSI_CMD_6571_QHD) &nt35590_dsi_cmd_6571_qhd_lcm_drv, #endif #if defined(NT35517_QHD_DSI_VIDEO) &nt35517_qhd_dsi_vdo_lcm_drv, #endif #if defined(IT6151_FHD_EDP_DSI_VIDEO_AUO) &it6151_fhd_edp_dsi_video_auo_lcm_drv, #endif #if defined(A080EAN01_DSI_VDO) &a080ean01_dsi_vdo_lcm_drv, #endif #if defined(IT6121_G156XW01V1_LVDS_VDO) &it6121_g156xw01v1_lvds_vdo_lcm_drv, #endif #if defined(ILI9806C_DSI_VDO_DJN_FWVGA) &ili9806c_dsi_vdo_djn_fwvga_lcm_drv, #endif #if defined(R69338_HD720_DSI_VDO_JDI) &r69338_hd720_dsi_vdo_jdi_drv, #endif #if defined(R69338_HD720_5IN_DSI_VDO_JDI_DW8768) &r69338_hd720_5in_dsi_vdo_jdi_dw8768_drv, #endif #if defined(DB7436_DSI_VDO_FWVGA) &db7436_dsi_vdo_fwvga_drv, #endif #if defined(R63417_FHD_DSI_CMD_TRULY_NT50358) &r63417_fhd_dsi_cmd_truly_nt50358_lcm_drv, #endif #if defined(R63417_FHD_DSI_CMD_TRULY_NT50358_720P) &r63417_fhd_dsi_cmd_truly_nt50358_720p_lcm_drv, #endif #if defined(R63417_FHD_DSI_CMD_TRULY_NT50358_QHD) &r63417_fhd_dsi_cmd_truly_nt50358_qhd_lcm_drv, #endif #if defined(R63417_FHD_DSI_VDO_TRULY_NT50358) &r63417_fhd_dsi_vdo_truly_nt50358_lcm_drv, #endif #if defined(R63419_WQHD_TRULY_PHANTOM_2K_CMD_OK) &r63419_wqhd_truly_phantom_cmd_lcm_drv, #endif #if defined(R63419_WQHD_TRULY_PHANTOM_2K_CMD_OK_MT6797) &r63419_wqhd_truly_phantom_cmd_lcm_drv, #endif #if defined(R63419_WQHD_TRULY_PHANTOM_2K_VDO_OK) &r63419_wqhd_truly_phantom_vdo_lcm_drv, #endif #if defined(R63419_WQHD_TRULY_PHANTOM_2K_VDO_OK_MT6797) &r63419_wqhd_truly_phantom_vdo_lcm_drv, #endif #if defined(R63419_FHD_TRULY_PHANTOM_2K_CMD_OK) &r63419_fhd_truly_phantom_lcm_drv, #endif #if defined(R63419_FHD_TRULY_PHANTOM_2K_CMD_OK_MT6797) &r63419_fhd_truly_phantom_lcm_drv, #endif #if defined(R63423_WQHD_TRULY_PHANTOM_2K_CMD_OK) &r63423_wqhd_truly_phantom_lcm_drv, #endif #if defined(NT35523_WXGA_DSI_VDO_BOE) &nt35523_wxga_dsi_vdo_boe_lcm_drv, #endif #if defined(NT35523_WSVGA_DSI_VDO_BOE) &nt35523_wsvga_dsi_vdo_boe_lcm_drv, #endif #if defined(EK79023_DSI_WSVGA_VDO) &ek79023_dsi_wsvga_vdo_lcm_drv, #endif #if defined(OTM9605A_QHD_DSI_VDO) &otm9605a_qhd_dsi_vdo_drv, #endif #if defined(OTM1906A_FHD_DSI_CMD_AUTO) &otm1906a_fhd_dsi_cmd_auto_lcm_drv, #endif #if defined(NT35532_FHD_DSI_VDO_SHARP) &nt35532_fhd_dsi_vdo_sharp_lcm_drv, #endif #if defined(CLAP070WP03XG_LVDS) &clap070wp03xg_lvds_lcm_drv, #endif #if defined(S6D7AA0_WXGA_DSI_VDO) &s6d7aa0_wxga_dsi_vdo_lcm_drv, #endif #if defined(SY20810800210132_WUXGA_DSI_VDO) &sy20810800210132_wuxga_dsi_vdo_lcm_drv, #endif #if defined(OTM1906B_FHD_DSI_CMD_JDI_TPS65132) &otm1906b_fhd_dsi_cmd_jdi_tps65132_lcm_drv, #endif #if defined(OTM1906B_FHD_DSI_CMD_JDI_TPS65132_MT6797) &otm1906b_fhd_dsi_cmd_jdi_tps65132_mt6797_lcm_drv, #endif #if defined(OTM1906B_FHD_DSI_VDO_JDI_TPS65132_MT6797) &otm1906b_fhd_dsi_vdo_jdi_tps65132_mt6797_lcm_drv, #endif #if defined(HX8394C_WXGA_DSI_VDO) &hx8394c_wxga_dsi_vdo_lcm_drv, #endif #if defined(IT6151_LP079QX1_EDP_DSI_VIDEO_8163EVB) &it6151_lp079qx1_edp_dsi_video_8163evb_lcm_drv, #endif #if defined(NT35510_DSI_CMD) &nt35510_dsi_cmd_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_TRULY_NT50358) &nt35695B_fhd_dsi_cmd_truly_nt50358_lcm_drv, #endif #if defined(NT35695_FHD_DSI_CMD_TRULY_NT50358) &nt35695_fhd_dsi_cmd_truly_nt50358_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_TRULY_NT50358) &nt35695_fhd_dsi_vdo_truly_nt50358_lcm_drv, #endif #if defined(NT35695_FHD_DSI_CMD_TRULY_NT50358_720P) &nt35695_fhd_dsi_cmd_truly_nt50358_720p_lcm_drv, #endif #if defined(NT35695_FHD_DSI_CMD_TRULY_NT50358_QHD) &nt35695_fhd_dsi_cmd_truly_nt50358_qhd_lcm_drv, #endif #if defined(NT35695_FHD_DSI_CMD_TRULY_RT4801) &nt35695_fhd_dsi_cmd_truly_rt4801_lcm_drv, #endif #if defined(NT35695_FHD_DSI_CMD_TRULY_RT5081) &nt35695_fhd_dsi_cmd_truly_rt5081_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_TRULY_RT5081) &nt35695_fhd_dsi_vdo_truly_rt5081_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_TRULY_RT5081_720P) &nt35695_fhd_dsi_vdo_truly_rt5081_720p_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_TRULY_RT5081_HDP) &nt35695_fhd_dsi_vdo_truly_rt5081_hdp_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_TRULY_RT5081_HDP_19_9) &nt35695_fhd_dsi_vdo_truly_rt5081_hdp_19_9_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_TRULY_RT5081_HDP_1560) &nt35695_fhd_dsi_vdo_truly_rt5081_hdp_1560_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_TRULY_RT5081_HDP_1680) &nt35695_fhd_dsi_vdo_truly_rt5081_hdp_1680_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_TRULY_RT5081_HDP_20_9) &nt35695_fhd_dsi_vdo_truly_rt5081_hdp_20_9_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_TRULY_RT5081_720P) &nt35695_fhd_dsi_vdo_truly_rt5081_720p_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_TRULY_RT5081_QHD) &nt35695_fhd_dsi_vdo_truly_rt5081_qhd_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_TRULY_RT5081) &nt35695B_fhd_dsi_cmd_truly_rt5081_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_TRULY_RT5081_720P) &nt35695B_fhd_dsi_cmd_truly_rt5081_720p_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_TRULY_RT5081_QHD) &nt35695B_fhd_dsi_cmd_truly_rt5081_qhd_lcm_drv, #endif #if defined(RM69032_DSI_CMD) &rm69032_dsi_cmd_lcm_drv, #endif #if defined(ST7789H2_DBI) &st7789h2_dbi_lcm_drv, #endif #if defined(CM_N070ICE_DSI_VDO_MT8173) &cm_n070ice_dsi_vdo_mt8173_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_NT50358_EXTERN) &nt35595_fhd_dsi_cmd_truly_nt50358_extern_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_NT50358_2TH) &nt35595_fhd_dsi_cmd_truly_nt50358_2th_lcm_drv, #endif #if defined(R69429_WQXGA_DSI_VDO) &r69429_wqxga_dsi_vdo_lcm_drv, #endif #if defined(HX8394C_WXGA_DSI_VDO) &hx8394c_wxga_dsi_vdo_lcm_drv, #endif #if defined(NT35595_TRULY_FHD_DSI_VDO) &nt35595_truly_fhd_dsi_vdo_lcm_drv, #endif #if defined(NT36850_WQHD_DSI_2K_CMD) &nt36850_wqhd_dsi_2k_cmd_lcm_drv, #endif #if defined(S6E3HA3_WQHD_2K_CMD) &s6e3ha3_wqhd_2k_cmd_lcm_drv, #endif #if defined(S6E3FA3_FHD_CMD) &s6e3fa3_fhd_cmd_lcm_drv, #endif #if defined(NT35595_FHD_DSI_CMD_TRULY_NT50358_720P_EXTERN) &nt35595_fhd_dsi_cmd_truly_nt50358_720p_extern_lcm_drv, #endif #if defined(NT35695_FHD_DSI_CMD_AUO_NT50358_LANESWAP) &nt35695_fhd_dsi_cmd_auo_nt50358_laneswap_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_AUO_NT50358_LANESWAP) &nt35695_fhd_dsi_vdo_auo_nt50358_laneswap_lcm_drv, #endif #if defined(NT35695_FHD_DSI_CMD_AUO_NT50358_LANESWAP_MT6799) &nt35695_fhd_dsi_cmd_auo_nt50358_laneswap_mt6799_lcm_drv, #endif #if defined(NT35695_FHD_DSI_VDO_AUO_NT50358_LANESWAP_MT6799) &nt35695_fhd_dsi_vdo_auo_nt50358_laneswap_mt6799_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_AUO_RT4801) &nt35695B_fhd_dsi_cmd_auo_rt4801_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_AUO_NT50358_HDP) &nt35695B_fhd_dsi_cmd_auo_nt50358_hdp_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_AUO_RT5081) &nt35695B_fhd_dsi_cmd_auo_rt5081_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_AUO_RT5081_720P) &nt35695B_fhd_dsi_cmd_auo_rt5081_720p_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_AUO_RT5081_QHD) &nt35695B_fhd_dsi_cmd_auo_rt5081_qhd_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_AUO_RT5081_HDP) &nt35695B_fhd_dsi_cmd_auo_rt5081_hdp_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_AUO_RT5081_HDP_19_9) &nt35695B_fhd_dsi_cmd_auo_rt5081_hdp_19_9_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_VDO_AUO_RT5081) &nt35695B_fhd_dsi_vdo_auo_rt5081_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_VDO_AUO_RT5081_720P) &nt35695B_fhd_dsi_vdo_auo_rt5081_720p_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_VDO_AUO_RT5081_QHD) &nt35695B_fhd_dsi_vdo_auo_rt5081_qhd_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_VDO_AUO_RT5081_HDP) &nt35695B_fhd_dsi_vdo_auo_rt5081_hdp_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_VDO_AUO_RT5081_HDP_19_9) &nt35695B_fhd_dsi_vdo_auo_rt5081_hdp_19_9_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_VDO_AUO_RT5081_HDP_1560) &nt35695B_fhd_dsi_vdo_auo_rt5081_hdp_1560_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_VDO_AUO_RT5081_HDP_1680) &nt35695B_fhd_dsi_vdo_auo_rt5081_hdp_1680_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_VDO_AUO_RT5081_HDP_20_9) &nt35695B_fhd_dsi_vdo_auo_rt5081_hdp_20_9_lcm_drv, #endif #if defined(CLAA101FP01_DSI_VDO) &claa101fp01_dsi_vdo_lcm_drv, #endif #if defined(R61322_FHD_DSI_VDO_SHARP_LFR) &r61322_fhd_dsi_vdo_sharp_lfr_lcm_drv, #endif #if defined(S6E3HA3_WQHD_2K_CMD_LANESWAP) &s6e3ha3_wqhd_2k_cmd_laneswap_drv, #endif #if defined(NT36380_WQHD_VDO_OK) &nt36380_wqhd_vdo_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_AUO_NT50358) &nt35695B_fhd_dsi_cmd_auo_nt50358_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_VDO_AUO_NT50358) &nt35695B_fhd_dsi_vdo_auo_nt50358_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_AUO_NT50358_720P) &nt35695B_fhd_dsi_cmd_auo_nt50358_720p_lcm_drv, #endif #if defined(NT35695B_FHD_DSI_CMD_AUO_NT50358_QHD) &nt35695B_fhd_dsi_cmd_auo_nt50358_qhd_lcm_drv, #endif #if defined(ILI9881C_HDP_DSI_VDO_ILITEK_RT5081) &ili9881c_hdp_dsi_vdo_ilitek_rt5081_lcm_drv, #endif #if defined(NT51021_WUXGA_DSI_VDO_MT8173) &nt51021_wuxga_dsi_vdo_mt8173_lcm_drv, #endif #if defined(ILI9881C_HDP_DSI_VDO_ILITEK_RT5081_EBBG) &ili9881c_hdp_dsi_vdo_ilitek_rt5081_lcm_drv_ebbg, #endif #if defined(HX8394F_HD720_DSI_VDO_TIANMA) &hx8394f_hd720_dsi_vdo_tianma_lcm_drv, #endif #if defined(JD9365_HD720_DSI) &jd9365_hd720_dsi_lcm_drv, #endif #if defined(NT36672_FHDP_DSI_VDO_AUO) &nt36672_fhdp_dsi_vdo_auo_lcm_drv, #endif #ifndef CONFIG_MACH_MT6761 #if defined(NT36672_FHDP_DSI_VDO_AUO_LANESWAP) &nt36672_fhdp_dsi_vdo_auo_laneswap_lcm_drv, #endif #if defined(NT35521_HD_DSI_VDO_TRULY_NT50358) &nt35521_hd_dsi_vdo_truly_nt50358_lcm_drv, #endif #endif #if defined(ILI9881H_HDP_DSI_VDO_ILITEK_RT5081_19_9) &ili9881h_hdp_dsi_vdo_ilitek_rt5081_19_9_lcm_drv, #endif #if defined(ILI9881H_HDP_DSI_VDO_ILITEK_RT5081_19_9_90HZ) &ili9881h_hdp_dsi_vdo_ilitek_rt5081_19_9_90hz_lcm_drv, #endif #if defined(ILI9881C_HD_DSI_VDO_ILITEK_NT50358) &ili9881c_hd_dsi_vdo_ilitek_nt50358_lcm_drv, #endif #if defined(ILI9882N_HDP_DSI_VDO_RT4801_90HZ) &ili9882n_hdp_dsi_vdo_rt4801_90hz_lcm_drv, #endif #if defined(HX83112B_FHDP_DSI_CMD_AUO_RT4801) &hx83112b_fhdp_dsi_cmd_auo_rt4801_lcm_drv, #endif #if defined(HX83112B_FHDP_DSI_CMD_FHD_AUO_RT4801) &hx83112b_fhdp_dsi_cmd_fhd_auo_rt4801_lcm_drv, #endif #if defined(FT8201_WXGA_VDO_INCELL_BOE) &ft8201_wxga_vdo_incell_boe_lcm_drv, #endif #if defined(NT51021H_WUXGA_VDO_ONCELL_BOE) &nt51021h_wuxga_vdo_oncell_boe_lcm_drv, #endif #if defined(HX83112B_FHDP_DSI_VDO_AUO_RT4801) &hx83112b_fhdp_dsi_vdo_auo_rt4801_lcm_drv, #endif #if defined(HX83112B_FHDP_DSI_CMD_AUO_RT5081) &hx83112b_fhdp_dsi_cmd_auo_rt5081_lcm_drv, #endif #if defined(HX83112B_FHDP_DSI_VDO_AUO_RT5081) &hx83112b_fhdp_dsi_vdo_auo_rt5081_lcm_drv, #endif #if defined(HX83112B_FHDP_DSI_CMD_AUO_RT5081_HDP) &hx83112b_fhdp_dsi_cmd_auo_rt5081_hdp_lcm_drv, #endif #if defined(HX83112B_FHDP_DSI_VDO_AUO_RT5081_HDP) &hx83112b_fhdp_dsi_vdo_auo_rt5081_hdp_lcm_drv, #endif #if defined(SOFEG01_FHDPLUS_DSI_CMD_SAMSUNG) &sofeg01_fhdplus_dsi_cmd_samsung_lcm_drv, #endif #if defined(NT36672C_FHDP_DSI_VDO_AUO_CPHY_90HZ_TIANMA) &nt36672c_fhdp_dsi_vdo_auo_cphy_90hz_tianma_lcm_drv, #endif #if defined(NT36672C_FHDP_DSI_VDO_60HZ_WO_DSC_SHENCHAO) &nt36672c_fhdp_dsi_vdo_60hz_wo_dsc_shenchao_lcm_drv, #endif #if defined(OPPO_TIANMA_TD4310_FHDP_DSI_VDO_RT5081) &oppo_tianma_td4310_fhdp_dsi_vdo_rt5081_lcm_drv, #endif #if defined(NT36672C_FHDP_DSI_VDO_60HZ_SHENCHAO) &nt36672c_fhdp_dsi_vdo_60hz_shenchao_lcm_drv, #endif #if defined(NT36672C_FHDP_DSI_VDO_90HZ_SHENCHAO) &nt36672c_fhdp_dsi_vdo_90hz_shenchao_lcm_drv, #endif #if defined(NT36672C_FHDP_DSI_VDO_90HZ_SHENCHAO_6382) &nt36672c_fhdp_dsi_vdo_90hz_shenchao_6382_lcm_drv, #endif #if defined(TD4320_FHDP_DSI_VDO_AUO_RT5081) &td4320_fhdp_dsi_vdo_auo_rt5081_lcm_drv, #endif #if defined(TD4320_FHDP_DSI_VDO_AUO_RT4801) &td4320_fhdp_dsi_vdo_auo_rt4801_lcm_drv, #endif #if defined(NT36672C_FHDP_DSI_VDO_AUO_CPHY_90HZ_JDI) &nt36672c_fhdp_dsi_vdo_auo_cphy_90hz_jdi_lcm_drv, #endif #if defined(NT36672C_FHDP_DSI_VDO_120HZ_SHENCHAO_6382) &nt36672c_fhdp_dsi_vdo_120hz_shenchao_6382_lcm_drv, #endif #if defined(R66451_FHDP_DSI_CMD_TIANMA) &r66451_fhdp_dsi_cmd_tianma_lcm_drv, #endif /*6768 OTM*/ #if defined(OTM1911A_FHDP_DSI_VDO_TRULY_RT5081) &otm1911a_fhdp_dsi_vdo_truly_rt5081_lcm_drv, #endif #if defined(OTM1911A_FHDP_DSI_VDO_TRULY_RT5081_HDP) &otm1911a_fhdp_dsi_vdo_truly_rt5081_hdp_lcm_drv, #endif #if defined(OTM1911A_FHDP_DSI_VDO_TRULY_RT4801) &otm1911a_fhdp_dsi_vdo_truly_rt4801_lcm_drv, #endif // mt6768 ref device #if defined(NT36672C_FHDP_DSI_VDO_DSC_TXD_BOE) &nt36672c_fhdp_dsi_vdo_dsc_txd_boe_lcm_drv, #endif #if defined(KD070FHFID015_DSI_1200X1920) &kd070fhfid015_dsi_1200x1920_lcm_drv, #endif }; unsigned char lcm_name_list[][128] = { #if defined(HX8392A_DSI_CMD) "hx8392a_dsi_cmd", #endif #if defined(S6E3HA3_WQHD_2K_CMD) "s6e3ha3_wqhd_2k_cmd", #endif #if defined(HX8392A_DSI_VDO) "hx8392a_vdo_cmd", #endif #if defined(HX8392A_DSI_CMD_FWVGA) "hx8392a_dsi_cmd_fwvga", #endif #if defined(OTM9608_QHD_DSI_CMD) "otm9608a_qhd_dsi_cmd", #endif #if defined(OTM9608_QHD_DSI_VDO) "otm9608a_qhd_dsi_vdo", #endif #if defined(R63417_FHD_DSI_CMD_TRULY_NT50358) "r63417_fhd_dsi_cmd_truly_nt50358_drv", #endif #if defined(R63417_FHD_DSI_CMD_TRULY_NT50358_QHD) "r63417_fhd_dsi_cmd_truly_nt50358_qhd_drv", #endif #if defined(R63417_FHD_DSI_VDO_TRULY_NT50358) "r63417_fhd_dsi_vdo_truly_nt50358_drv", #endif #if defined(R63419_WQHD_TRULY_PHANTOM_2K_CMD_OK) "r63419_wqhd_truly_phantom_2k_cmd_ok", #endif #if defined(NT35695_FHD_DSI_CMD_TRULY_NT50358) "nt35695_fhd_dsi_cmd_truly_nt50358_drv", #endif #if defined(S6E3HA3_WQHD_2K_CMD_LANESWAP) "s6e3ha3_wqhd_2k_cmd_laneswap_drv", #endif #if defined(NT36380_WQHD_VDO_OK) "nt36380_wqhd_vdo_lcm_drv", #endif #if defined(NT35521_HD_DSI_VDO_TRULY_RT5081) "nt35521_hd_dsi_vdo_truly_rt5081_drv", #endif #if defined(ILI9881C_HDP_DSI_VDO_ILITEK_RT5081) "ili9881c_hdp_dsi_vdo_ilitek_rt5081_drv", #endif #if defined(NT35695B_FHD_DSI_VDO_AUO_RT5081_HDP) "nt35695B_fhd_dsi_vdo_auo_rt5081_hdp_drv", #endif #if defined(HX83112B_FHDP_DSI_CMD_FHD_AUO_RT4801) "hx83112b_fhdp_dsi_cmd_fhd_auo_rt4801_drv", #endif #if defined(NT35695B_FHD_DSI_CMD_TRULY_RT5081_720P) "nt35695B_fhd_dsi_cmd_truly_rt5081_720p_lcm_drv", #endif #if defined(OPPO_TIANMA_TD4310_FHDP_DSI_VDO_RT5081) "oppo_tianma_td4310_fhdp_dsi_vdo_rt5081_drv", #endif #if defined(KD070FHFID015_DSI_1200X1920) "kd070fhfid015_dsi_1200x1920", #endif }; #define LCM_COMPILE_ASSERT(condition) \ LCM_COMPILE_ASSERT_X(condition, __LINE__) #define LCM_COMPILE_ASSERT_X(condition, line) \ LCM_COMPILE_ASSERT_XX(condition, line) #define LCM_COMPILE_ASSERT_XX(condition, line) \ char assertion_failed_at_line_##line[(condition) ? 1 : -1] unsigned int lcm_count = sizeof(lcm_driver_list) / sizeof(struct LCM_DRIVER *); LCM_COMPILE_ASSERT(sizeof(lcm_driver_list) / sizeof(struct LCM_DRIVER *) != 0); #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) static unsigned char lcd_id_pins_value = 0xFF; /* * Function: which_lcd_module_triple * Description: read LCD ID PIN status,could identify three status:highlowfloat * Input: none * Output: none * Return: LCD ID1|ID0 value * Others: */ unsigned char which_lcd_module_triple(void) { unsigned char high_read0 = 0; unsigned char low_read0 = 0; unsigned char high_read1 = 0; unsigned char low_read1 = 0; unsigned char lcd_id0 = 0; unsigned char lcd_id1 = 0; unsigned char lcd_id = 0; /*Solve Coverity scan warning : check return value*/ unsigned int ret = 0; /*only recognise once*/ if (lcd_id_pins_value != 0xFF) return lcd_id_pins_value; /*Solve Coverity scan warning : check return value*/ ret = mt_set_gpio_mode(GPIO_DISP_ID0_PIN, GPIO_MODE_00); if (ret != 0) pr_debug("[LCM]ID0 mt_set_gpio_mode fail\n"); ret = mt_set_gpio_dir(GPIO_DISP_ID0_PIN, GPIO_DIR_IN); if (ret != 0) pr_debug("[LCM]ID0 mt_set_gpio_dir fail\n"); ret = mt_set_gpio_pull_enable(GPIO_DISP_ID0_PIN, GPIO_PULL_ENABLE); if (ret != 0) pr_debug("[LCM]ID0 mt_set_gpio_pull_enable fail\n"); ret = mt_set_gpio_mode(GPIO_DISP_ID1_PIN, GPIO_MODE_00); if (ret != 0) pr_debug("[LCM]ID1 mt_set_gpio_mode fail\n"); ret = mt_set_gpio_dir(GPIO_DISP_ID1_PIN, GPIO_DIR_IN); if (ret != 0) pr_debug("[LCM]ID1 mt_set_gpio_dir fail\n"); ret = mt_set_gpio_pull_enable(GPIO_DISP_ID1_PIN, GPIO_PULL_ENABLE); if (ret != 0) pr_debug("[LCM]ID1 mt_set_gpio_pull_enable fail\n"); /*pull down ID0 ID1 PIN*/ ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN, GPIO_PULL_DOWN); if (ret != 0) pr_debug("[LCM]ID0 mt_set_gpio_pull_select->Down fail\n"); ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN, GPIO_PULL_DOWN); if (ret != 0) pr_debug("[LCM]ID1 mt_set_gpio_pull_select->Down fail\n"); /* delay 100ms , for discharging capacitance*/ mdelay(100); /* get ID0 ID1 status*/ low_read0 = mt_get_gpio_in(GPIO_DISP_ID0_PIN); low_read1 = mt_get_gpio_in(GPIO_DISP_ID1_PIN); /* pull up ID0 ID1 PIN */ ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN, GPIO_PULL_UP); if (ret != 0) pr_debug("[LCM]ID0 mt_set_gpio_pull_select->UP fail\n"); ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN, GPIO_PULL_UP); if (ret != 0) pr_debug("[LCM]ID1 mt_set_gpio_pull_select->UP fail\n"); /* delay 100ms , for charging capacitance */ mdelay(100); /* get ID0 ID1 status */ high_read0 = mt_get_gpio_in(GPIO_DISP_ID0_PIN); high_read1 = mt_get_gpio_in(GPIO_DISP_ID1_PIN); if (low_read0 != high_read0) { /*float status , pull down ID0 ,to prevent electric leakage*/ ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN, GPIO_PULL_DOWN); if (ret != 0) pr_debug("[LCM]ID0 mt_set_gpio_pull_select->Down fail\n"); lcd_id0 = LCD_HW_ID_STATUS_FLOAT; } else if ((low_read0 == LCD_HW_ID_STATUS_LOW) && (high_read0 == LCD_HW_ID_STATUS_LOW)) { /*low status , pull down ID0 ,to prevent electric leakage*/ ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN, GPIO_PULL_DOWN); if (ret != 0) pr_debug("[LCM]ID0 mt_set_gpio_pull_select->Down fail\n"); lcd_id0 = LCD_HW_ID_STATUS_LOW; } else if ((low_read0 == LCD_HW_ID_STATUS_HIGH) && (high_read0 == LCD_HW_ID_STATUS_HIGH)) { /*high status , pull up ID0 ,to prevent electric leakage*/ ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN, GPIO_PULL_UP); if (ret != 0) pr_debug("[LCM]ID0 mt_set_gpio_pull_select->UP fail\n"); lcd_id0 = LCD_HW_ID_STATUS_HIGH; } else { pr_debug("[LCM] Read LCD_id0 error\n"); ret = mt_set_gpio_pull_select(GPIO_DISP_ID0_PIN, GPIO_PULL_DISABLE); if (ret != 0) pr_debug("[KERNEL/LCM]ID0 mt_set_gpio_pull_select->Disable fail\n"); lcd_id0 = LCD_HW_ID_STATUS_ERROR; } if (low_read1 != high_read1) { /*float status , pull down ID1 ,to prevent electric leakage*/ ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN, GPIO_PULL_DOWN); if (ret != 0) pr_debug("[LCM]ID1 mt_set_gpio_pull_select->Down fail\n"); lcd_id1 = LCD_HW_ID_STATUS_FLOAT; } else if ((low_read1 == LCD_HW_ID_STATUS_LOW) && (high_read1 == LCD_HW_ID_STATUS_LOW)) { /*low status , pull down ID1 ,to prevent electric leakage*/ ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN, GPIO_PULL_DOWN); if (ret != 0) pr_debug("[LCM]ID1 mt_set_gpio_pull_select->Down fail\n"); lcd_id1 = LCD_HW_ID_STATUS_LOW; } else if ((low_read1 == LCD_HW_ID_STATUS_HIGH) && (high_read1 == LCD_HW_ID_STATUS_HIGH)) { /*high status , pull up ID1 ,to prevent electric leakage*/ ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN, GPIO_PULL_UP); if (ret != 0) pr_debug("[LCM]ID1 mt_set_gpio_pull_select->UP fail\n"); lcd_id1 = LCD_HW_ID_STATUS_HIGH; } else { pr_debug("[LCM] Read LCD_id1 error\n"); ret = mt_set_gpio_pull_select(GPIO_DISP_ID1_PIN, GPIO_PULL_DISABLE); if (ret != 0) pr_debug("[KERNEL/LCM]ID1 mt_set_gpio_pull_select->Disable fail\n"); lcd_id1 = LCD_HW_ID_STATUS_ERROR; } #ifdef BUILD_LK dprintf(CRITICAL, "%s,lcd_id0:%d\n", __func__, lcd_id0); dprintf(CRITICAL, "%s,lcd_id1:%d\n", __func__, lcd_id1); #else pr_debug("[LCM]%s,lcd_id0:%d\n", __func__, lcd_id0); pr_debug("[LCM]%s,lcd_id1:%d\n", __func__, lcd_id1); #endif lcd_id = lcd_id0 | (lcd_id1 << 2); #ifdef BUILD_LK dprintf(CRITICAL, "%s,lcd_id:%d\n", __func__, lcd_id); #else pr_debug("[LCM]%s,lcd_id:%d\n", __func__, lcd_id); #endif lcd_id_pins_value = lcd_id; return lcd_id; } #endif