├── ili9807_qhd_dsi ├── .svn │ ├── prop-base │ │ └── ili9807_qhd_dsi.c.svn-base │ └── entries └── Makefile ├── st7789h2_dbi └── Makefile ├── nt35510_dsi_cmd └── Makefile ├── rm69032_dsi_cmd └── Makefile ├── otm9608_qhd_dsi_cmd ├── otm9608_qhd_dsi_cmd.c └── Makefile ├── otm9608_wvga_dsi_cmd ├── otm9608_wvga_dsi_cmd.c └── Makefile ├── r81592_hvga_dsi_cmd ├── r81592_hvga_dsi_cmd.c └── Makefile ├── otm9608_fwvga_dsi_cmd ├── otm9608_fwvga_dsi_cmd.c └── Makefile ├── otm1280a_hd720_dsi_cmd ├── otm1280a_hd720_dsi_cmd.c └── Makefile ├── nt35598_wqhd_dsi_vdo_truly ├── nt35598_wqhd_dsi_vdo_truly.c └── Makefile ├── r63423_wqhd_truly_phantom_2k_cmd_ok └── Makefile ├── it6151_fhd_edp_dsi_video_auo ├── it6151_fhd_edp_dsi_video_auo.c ├── Makefile └── it6151_i2c.c ├── KR070IA4T_DSI_VDO ├── Makefile └── KR070IA4T_DSI_VDO.c ├── KR101IA2S_DSI_VDO └── Makefile ├── dummy ├── Makefile └── dummy.c ├── EJ101IA └── Makefile ├── bm8578 └── Makefile ├── bp070ws1 ├── Makefile └── bp070ws1.c ├── bp101wx1 └── Makefile ├── ha5266 ├── Makefile └── ha5266.c ├── otm9605a_qhd_dsi_vdo └── Makefile ├── H070D_18DM └── Makefile ├── HJ101NA02A └── Makefile ├── bp101wx1_n └── Makefile ├── h070d_18dm └── Makefile ├── hx8357B ├── Makefile └── hx8357b.c ├── hx8369 └── Makefile ├── ili9481 ├── Makefile └── ili9481.c ├── lg4571 └── Makefile ├── nt35510 └── Makefile ├── nt35582 └── Makefile ├── r61408 └── Makefile ├── s6d0170 └── Makefile ├── ta7601 └── Makefile ├── HSD070PFW3 └── Makefile ├── LP079X01 ├── Makefile └── LP079X01.c ├── TM070DDH03 ├── Makefile └── TM070DDH03.c ├── hsd070idw1 ├── Makefile └── hsd070idw1.c ├── hx8369_dsi └── Makefile ├── nt35565_3D └── Makefile ├── otm1283a └── Makefile ├── spfd5461a └── Makefile ├── tft1p3037 └── Makefile ├── HJ101NA02A_8135 ├── Makefile └── HJ101NA02A_8135.c ├── hx8369_6575 └── Makefile ├── hx8369_hvga └── Makefile ├── nt35510_6517 └── Makefile ├── nt35510_hvga └── Makefile ├── nt35510_qvga └── Makefile ├── nt35582_mcu └── Makefile ├── HSD070PFW3_8135 ├── Makefile └── HSD070PFW3_8135.c ├── RX_498HX_615B └── Makefile ├── SCF0700M48GGU02 └── Makefile ├── a080ean01_dsi_vdo └── Makefile ├── cm_n070ice_dsi_vdo └── Makefile ├── hx8363_6575_dsi └── Makefile ├── hx8369_6575_dsi └── Makefile ├── hx8369_dbi_6571 └── Makefile ├── hx8369_dpi_6571 └── Makefile ├── hx8369_dsi_vdo └── Makefile ├── hx8369_mcu_6572 └── Makefile ├── hx8369b_dsi_vdo └── Makefile ├── hx8392a_dsi_cmd └── Makefile ├── hx8392a_dsi_vdo └── Makefile ├── lvds_wsvga_ti ├── Makefile └── lvds_wsvga_ti.c ├── lvds_wsvga_ti_n ├── Makefile └── lvds_wsvga_ti_n.c ├── nt35510_fwvga └── Makefile ├── nt35512_dsi_vdo └── Makefile ├── r63303_idisplay └── Makefile ├── RX_498HX_615B_82 └── Makefile ├── ili9340d_dbi_qvga └── Makefile ├── nt35510_dbi_6571 └── Makefile ├── nt35510_dpi_6571 └── Makefile ├── nt35510_dpi_6572 └── Makefile ├── nt35510_mcu_6572 └── Makefile ├── nt35582_mcu_6575 └── Makefile ├── nt35582_rgb_6575 └── Makefile ├── otm8018b_dsi_vdo └── Makefile ├── s6d7aa0_wxga_dsi_vdo └── Makefile ├── CM_OTC3108BH161_DSI_VDO └── Makefile ├── CPT_CLAA101FP01_DSI_VDO └── Makefile ├── CPT_CLAP070WP03XG_LVDS └── Makefile ├── auo_b079xat02_dsi_vdo └── Makefile ├── clap070wp03xg_lvds_8163 └── Makefile ├── db7436_dsi_vdo_fwvga └── Makefile ├── ek79023_dsi_wsvga_vdo └── Makefile ├── gn_ssd2825_smd_s6e8aa └── Makefile ├── hx8357c_hvga_dsi_cmd └── Makefile ├── hx8363_6575_dsi_hvga └── Makefile ├── hx8363b_wvga_dsi_cmd └── Makefile ├── hx8369_6575_dsi_hvga └── Makefile ├── hx8369_6575_dsi_qvga └── Makefile ├── hx8369_dsi_cmd_6571 └── Makefile ├── hx8369_dsi_vdo_6571 └── Makefile ├── hx8369_rgb_6572_fpga └── Makefile ├── hx8369_rgb_6585_fpga └── Makefile ├── hx8369a_wvga_dsi_cmd └── Makefile ├── hx8369a_wvga_dsi_vdo └── Makefile ├── hx8369b_wvga_dsi_vdo └── Makefile ├── hx8379a_wvga_dsi_vdo └── Makefile ├── hx8389b_qhd_dsi_vdo └── Makefile ├── hx8392a_dsi_cmd_qhd └── Makefile ├── hx8392a_dsi_cmd_wvga └── Makefile ├── hx8394c_wxga_dsi_vdo └── Makefile ├── ili9806c_dsi_vdo_djn └── Makefile ├── ili9806c_dsi_vdo_txd └── Makefile ├── nt35510_dsi_cmd_6571 └── Makefile ├── nt35510_dsi_cmd_6572 └── Makefile ├── nt35510_dsi_vdo_6571 └── Makefile ├── nt35510_dsi_vdo_6572 └── Makefile ├── nt35510_wvga_dsi_cmd └── Makefile ├── nt35517_qhd_dsi_vdo └── Makefile ├── nt35565_qhd_dsi_cmd └── Makefile ├── otm1284a_hd_dsi_vdo └── Makefile ├── otm9608_qhd_dsi_vdo └── Makefile ├── r61408_wvga_dsi_cmd └── Makefile ├── r63311_fhd_dsi_vdo └── Makefile ├── r69429_wuxga_dsi_cmd └── Makefile ├── r69429_wuxga_dsi_vdo └── Makefile ├── rm68190_qhd_dsi_vdo └── Makefile ├── hx8389b_hd720_dsi_vdo └── Makefile ├── hx8392a_dsi_cmd_3lane └── Makefile ├── hx8392a_dsi_cmd_fwvga └── Makefile ├── hx8392a_dsi_vdo_3lane └── Makefile ├── ili9806e_dsi_vdo_fwvga └── Makefile ├── jd9365_6735_dsi_video └── Makefile ├── jd9367_6735_dsi_video └── Makefile ├── nt35516_qhd_dsi_vedio └── Makefile ├── nt35517_qhd_dsi_video └── Makefile ├── nt35590_hd720_dsi_cmd └── Makefile ├── nt51012_hd720_dsi_vdo └── Makefile ├── otm1282a_hd720_dsi_vdo └── Makefile ├── otm8018b_dsi_vdo_trust └── Makefile ├── r69338_hd720_5in_dsi_vdo_jdi_dw8768 └── Makefile ├── r69338_hd720_dsi_vdo_jdi └── Makefile ├── rm68200_6735_dsi_video └── Makefile ├── CPT_CLAA101FP01_DSI_VDO_8163 └── Makefile ├── EK79007_WSVGALNL_DSI_VDO └── Makefile ├── hct_otm1282a_dsi_vdo_hd_auo └── Makefile ├── hx8379a_dsi_vdo_azet_ips └── Makefile ├── hx8379c_fwvga_dsi_vdo_TDT └── Makefile ├── ili9806c_dsi_vdo_azet_ips └── Makefile ├── ili9806c_dsi_vdo_txd_ips └── Makefile ├── nt35510_dbi_18bit_gionee └── Makefile ├── nt35510_dsi_cmd_6571_hvga └── Makefile ├── nt35510_dsi_cmd_6571_qvga └── Makefile ├── nt35510_dsi_cmd_6572_hvga └── Makefile ├── nt35510_dsi_cmd_6572_qvga └── Makefile ├── nt35512_wvga_dsi_vdo_boe └── Makefile ├── nt35520_hd720_dsi_cmd_boe └── Makefile ├── nt35520_hd720_dsi_cmd_tm └── Makefile ├── nt35521_hd720_dsi_vdo_boe └── Makefile ├── nt35523_wsvga_dsi_vdo_boe └── Makefile ├── nt35523_wxga_dsi_vdo_boe └── Makefile ├── nt35532_fhd_dsi_vdo_sharp └── Makefile ├── nt35590_dsi_cmd_6571_qhd └── Makefile ├── nt35590_hd720_dsi_cmd_auo └── Makefile ├── nt35590_hd720_dsi_cmd_cmi └── Makefile ├── nt35595_fhd_dsi_cmd_truly └── Makefile ├── nt35595_fhd_dsi_vdo_truly └── Makefile ├── nt35596_fhd_dsi_vdo_truly └── Makefile ├── nt35596_fhd_dsi_vdo_yassy └── Makefile ├── otm1283a_hd720_dsi_vdo_tm └── Makefile ├── otm1284a_hd720_dsi_vdo_tm └── Makefile ├── otm1285a_hd720_dsi_vdo_tm └── Makefile ├── otm1906a_fhd_dsi_cmd_auto └── Makefile ├── otm8018b_dsi_vdo_lcsh72 └── Makefile ├── r63311_fhd_dsi_vdo_sharp ├── Makefile └── r63311_fhd_dsi_vdo_sharp.c ├── r63315_fhd_dsi_vdo_truly └── Makefile ├── r63319_wqhd_dsi_vdo_truly └── Makefile ├── s6e3fa2_fhd1080_dsi_vdo └── Makefile ├── VVX10F008B00_WUXGA_DSI_VDO └── Makefile ├── hct_ili9881_dsi_vdo_hd_cpt └── Makefile ├── hx8389b_qhd_dsi_vdo_tianma └── Makefile ├── ili9806c_dsi_vdo_djn_fwvga └── Makefile ├── ili9806e_fwvga_dsi_vdo_TXD ├── Makefile └── Makefile~ ├── it6121_g156xw01v1_lvds_vdo ├── Makefile └── it6121_i2c.c ├── it6151_edp_dsi_video_sharp ├── Makefile └── it6151_i2c.c ├── nt35510_dsi_cmd_6572_fwvga └── Makefile ├── nt35516_qhd_dsi_cmd_ipsboe └── Makefile ├── nt35521_hd720_dsi_video_tm └── Makefile ├── nt35590_dsi_cmd_6571_fwvga └── Makefile ├── nt35590_hd720_dsi_vdo_truly └── Makefile ├── otm1282a_hd720_dsi_vdo_60hz └── Makefile ├── otm8018b_dsi_vdo_txd_fwvga ├── Makefile └── otm8018b_dsi_vdo_txd_fwvga.c ├── rm68210_hd720_dsi_ufoe_cmd └── Makefile ├── ssd2075_hd720_dsi_vdo_truly └── Makefile ├── sy20810800210132_dsi_wuxga_vdo └── Makefile ├── hct_hx8394f_dsi_vdo_hd_cmi └── Makefile ├── hct_rm68200_dsi_vdo_hd_cpt └── Makefile ├── hx8394a_hd720_dsi_vdo_tianma └── Makefile ├── hx8394d_hd720_dsi_vdo_tianma └── Makefile ├── lg4573b_wvga_dsi_vdo_lh430mv1 └── Makefile ├── nt35516_qhd_dsi_cmd_ips9k1431 └── Makefile ├── nt35516_qhd_dsi_cmd_tft9k1342 └── Makefile ├── nt35590_hd720_dsi_cmd_auo_qhd └── Makefile ├── nt35590_hd720_dsi_cmd_auo_wvga └── Makefile ├── nt35590_hd720_dsi_cmd_truly2 └── Makefile ├── otm1287a_hd720_dsi_vdo_dijing └── Makefile ├── otm8009a_fwvga_dsi_cmd_tianma └── Makefile ├── otm8009a_fwvga_dsi_vdo_tianma └── Makefile ├── r69338_hd720_dsi_vdo_jdi_dw8755a └── Makefile ├── nt35516_qhd_dsi_cmd_ipsboe_fwvga └── Makefile ├── nt35516_qhd_dsi_cmd_ipsboe_wvga └── Makefile ├── nt35521_hd720_dsi_vdo_cpt_booyi └── Makefile ├── nt35590_hd720_dsi_cmd_auo_fwvga └── Makefile ├── r63417_fhd_dsi_cmd_truly_nt50358 └── Makefile ├── r63417_fhd_dsi_vdo_truly_nt50358 └── Makefile ├── hx8389b_qhd_dsi_vdo_tianma055xdhp └── Makefile ├── nt35595_fhd_dsi_cmd_truly_nt50358 └── Makefile ├── nt35595_fhd_dsi_cmd_truly_tps65132 └── Makefile ├── nt35595_fhd_dsi_vdo_truly_nt50358 └── Makefile ├── nt35595_fhd_dsi_vdo_truly_tps65132 └── Makefile ├── otm1906b_fhd_dsi_cmd_jdi_tps65132 └── Makefile ├── r63419_fhd_truly_phantom_2k_cmd_ok └── Makefile ├── r63419_wqhd_truly_phantom_2k_cmd_ok └── Makefile ├── r63419_wqhd_truly_phantom_2k_vdo_ok └── Makefile ├── nt35595_fhd_dsi_cmd_truly_nt50358_qhd └── Makefile ├── nt35596_hd720_dsi_vdo_truly_tps65132 └── Makefile ├── r63417_fhd_dsi_cmd_truly_nt50358_720p └── Makefile ├── r63417_fhd_dsi_cmd_truly_nt50358_qhd └── Makefile ├── cpt_clap070wp03xg_sn65dsi83 ├── Makefile └── sn65dsi83_i2c.c ├── nt35595_fhd_dsi_cmd_truly_nt50358_6735 └── Makefile ├── nt35595_fhd_dsi_cmd_truly_nt50358_720p └── Makefile ├── nt35595_fhd_dsi_cmd_truly_nt50358_fwvga └── Makefile ├── nt35595_fhd_dsi_cmd_truly_nt50358_wvga └── Makefile ├── nt35595_fhd_dsi_cmd_truly_tps65132_720p └── Makefile ├── it6151_lp079qx1_edp_dsi_video ├── Makefile └── it6151_i2c.c ├── nt35595_fhd_dsi_cmd_truly_nt50358_6735_720p └── Makefile ├── it6151_lp079qx1_edp_dsi_video_8163evb ├── Makefile └── it6151_i2c.c ├── nt35521_dsi_6735_H └── Makefile ├── hct_nt35521_dsi_vdo_hd_boe └── Makefile ├── hct_nt35521s_dsi_vdo_hd_boe_50_xld └── Makefile └── inc └── sn65dsi83_i2c.h /ili9807_qhd_dsi/.svn/prop-base/ili9807_qhd_dsi.c.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 1 4 | * 5 | END 6 | -------------------------------------------------------------------------------- /st7789h2_dbi/Makefile: -------------------------------------------------------------------------------- 1 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 2 | 3 | obj-y += st7789h2_dbi.o 4 | -------------------------------------------------------------------------------- /nt35510_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 2 | 3 | obj-y += nt35510_dsi_cmd.o 4 | -------------------------------------------------------------------------------- /rm69032_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 2 | 3 | obj-y += rm69032_dsi_cmd.o 4 | -------------------------------------------------------------------------------- /otm9608_qhd_dsi_cmd/otm9608_qhd_dsi_cmd.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LinerSRT/LCM_mediatek/HEAD/otm9608_qhd_dsi_cmd/otm9608_qhd_dsi_cmd.c -------------------------------------------------------------------------------- /otm9608_wvga_dsi_cmd/otm9608_wvga_dsi_cmd.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LinerSRT/LCM_mediatek/HEAD/otm9608_wvga_dsi_cmd/otm9608_wvga_dsi_cmd.c -------------------------------------------------------------------------------- /r81592_hvga_dsi_cmd/r81592_hvga_dsi_cmd.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LinerSRT/LCM_mediatek/HEAD/r81592_hvga_dsi_cmd/r81592_hvga_dsi_cmd.c -------------------------------------------------------------------------------- /otm9608_fwvga_dsi_cmd/otm9608_fwvga_dsi_cmd.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LinerSRT/LCM_mediatek/HEAD/otm9608_fwvga_dsi_cmd/otm9608_fwvga_dsi_cmd.c -------------------------------------------------------------------------------- /otm1280a_hd720_dsi_cmd/otm1280a_hd720_dsi_cmd.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LinerSRT/LCM_mediatek/HEAD/otm1280a_hd720_dsi_cmd/otm1280a_hd720_dsi_cmd.c -------------------------------------------------------------------------------- /nt35598_wqhd_dsi_vdo_truly/nt35598_wqhd_dsi_vdo_truly.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LinerSRT/LCM_mediatek/HEAD/nt35598_wqhd_dsi_vdo_truly/nt35598_wqhd_dsi_vdo_truly.c -------------------------------------------------------------------------------- /r63423_wqhd_truly_phantom_2k_cmd_ok/Makefile: -------------------------------------------------------------------------------- 1 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 2 | 3 | obj-y += r63423_wqhd_truly_phantom_2k_cmd_ok.o 4 | 5 | -------------------------------------------------------------------------------- /it6151_fhd_edp_dsi_video_auo/it6151_fhd_edp_dsi_video_auo.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LinerSRT/LCM_mediatek/HEAD/it6151_fhd_edp_dsi_video_auo/it6151_fhd_edp_dsi_video_auo.c -------------------------------------------------------------------------------- /KR070IA4T_DSI_VDO/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += KR070IA4T_DSI_VDO.o 7 | -------------------------------------------------------------------------------- /KR101IA2S_DSI_VDO/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += KR101IA2S_DSI_VDO.o 7 | -------------------------------------------------------------------------------- /dummy/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += dummy.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /EJ101IA/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += EJ101IA.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /bm8578/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += bm8578.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /bp070ws1/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += bp070ws1.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /bp101wx1/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += bp101wx1.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ha5266/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ha5266.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /otm9605a_qhd_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm9605a_qhd_dsi_vdo.o 7 | -------------------------------------------------------------------------------- /H070D_18DM/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += H070D_18DM.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /HJ101NA02A/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += HJ101NA02A.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /bp101wx1_n/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += bp101wx1_n.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /h070d_18dm/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += h070d_18dm.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /hx8357B/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8357B.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ili9481/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ili9481.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /lg4571/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += lg4571.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35582/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35582.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r61408/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r61408.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /s6d0170/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += s6d0170.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ta7601/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ta7601.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /HSD070PFW3/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += HSD070PFW3.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /LP079X01/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += LP079X01.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /TM070DDH03/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += TM070DDH03.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hsd070idw1/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hsd070idw1.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_dsi/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_dsi.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35565_3D/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35565_3D.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm1283a/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm1283a.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /spfd5461a/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += spfd5461a.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tft1p3037/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += tft1p3037.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /HJ101NA02A_8135/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += HJ101NA02A_8135.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /hx8369_6575/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_6575.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_hvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_hvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_6517/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_6517.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_hvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_hvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_qvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_qvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35582_mcu/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35582_mcu.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /HSD070PFW3_8135/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += HSD070PFW3_8135.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /RX_498HX_615B/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += RX_498HX_615B.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SCF0700M48GGU02/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += SCF0700M48GGU02.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /a080ean01_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += a080ean01_dsi_vdo.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /cm_n070ice_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += cm_n070ice_dsi_vdo.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /hx8363_6575_dsi/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8363_6575_dsi.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_6575_dsi/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_6575_dsi.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_dbi_6571/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_dbi_6571.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_dpi_6571/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_dpi_6571.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_mcu_6572/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_mcu_6572.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369b_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369b_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8392a_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8392a_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8392a_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8392a_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ili9807_qhd_dsi/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ili9807_qhd_dsi.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /lvds_wsvga_ti/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += lvds_wsvga_ti.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /lvds_wsvga_ti_n/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += lvds_wsvga_ti_n.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_fwvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_fwvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35512_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35512_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63303_idisplay/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63303_idisplay.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /RX_498HX_615B_82/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += RX_498HX_615B_82.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ili9340d_dbi_qvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ili9340d_dbi_qvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dbi_6571/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dbi_6571.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dpi_6571/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dpi_6571.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dpi_6572/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dpi_6572.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_mcu_6572/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_mcu_6572.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35582_mcu_6575/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35582_mcu_6575.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35582_rgb_6575/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35582_rgb_6575.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm8018b_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm8018b_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /s6d7aa0_wxga_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += s6d7aa0_wxga_dsi_vdo.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CM_OTC3108BH161_DSI_VDO/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += CM_OTC3108BH161_DSI_VDO.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CPT_CLAA101FP01_DSI_VDO/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += CPT_CLAA101FP01_DSI_VDO.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CPT_CLAP070WP03XG_LVDS/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += CPT_CLAP070WP03XG_LVDS.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /auo_b079xat02_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += auo_b079xat02_dsi_vdo.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /clap070wp03xg_lvds_8163/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += clap070wp03xg_lvds_8163.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /db7436_dsi_vdo_fwvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += db7436_dsi_vdo_fwvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ek79023_dsi_wsvga_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ek79023_dsi_wsvga_vdo.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /gn_ssd2825_smd_s6e8aa/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += gn_ssd2825_smd_s6e8aa.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /hx8357c_hvga_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8357c_hvga_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8363_6575_dsi_hvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8363_6575_dsi_hvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8363b_wvga_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8363b_wvga_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_6575_dsi_hvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_6575_dsi_hvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_6575_dsi_qvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_6575_dsi_qvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_dsi_cmd_6571/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_dsi_cmd_6571.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_dsi_vdo_6571/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_dsi_vdo_6571.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_rgb_6572_fpga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_rgb_6572_fpga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369_rgb_6585_fpga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369_rgb_6585_fpga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369a_wvga_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369a_wvga_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369a_wvga_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369a_wvga_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8369b_wvga_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8369b_wvga_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8379a_wvga_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8379a_wvga_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8389b_qhd_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8389b_qhd_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8392a_dsi_cmd_qhd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8392a_dsi_cmd_qhd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8392a_dsi_cmd_wvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8392a_dsi_cmd_wvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8394c_wxga_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8394c_wxga_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ili9806c_dsi_vdo_djn/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ili9806c_dsi_vdo_djn.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ili9806c_dsi_vdo_txd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ili9806c_dsi_vdo_txd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dsi_cmd_6571/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dsi_cmd_6571.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dsi_cmd_6572/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dsi_cmd_6572.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dsi_vdo_6571/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dsi_vdo_6571.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dsi_vdo_6572/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dsi_vdo_6572.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_wvga_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_wvga_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35517_qhd_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35517_qhd_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35565_qhd_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35565_qhd_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm1284a_hd_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm1284a_hd_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm9608_qhd_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm9608_qhd_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm9608_qhd_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm9608_qhd_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm9608_wvga_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm9608_wvga_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r61408_wvga_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r61408_wvga_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63311_fhd_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63311_fhd_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r69429_wuxga_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r69429_wuxga_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r69429_wuxga_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r69429_wuxga_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r81592_hvga_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r81592_hvga_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /rm68190_qhd_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += rm68190_qhd_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8389b_hd720_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8389b_hd720_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8392a_dsi_cmd_3lane/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8392a_dsi_cmd_3lane.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8392a_dsi_cmd_fwvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8392a_dsi_cmd_fwvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8392a_dsi_vdo_3lane/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8392a_dsi_vdo_3lane.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ili9806e_dsi_vdo_fwvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ili9806e_dsi_vdo_fwvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /jd9365_6735_dsi_video/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += jd9365_6735_dsi_video.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /jd9367_6735_dsi_video/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += jd9367_6735_dsi_video.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35516_qhd_dsi_vedio/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35516_qhd_dsi_vedio.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35517_qhd_dsi_video/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35517_qhd_dsi_video.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35590_hd720_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35590_hd720_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt51012_hd720_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt51012_hd720_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm1280a_hd720_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm1280a_hd720_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm1282a_hd720_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm1282a_hd720_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm8018b_dsi_vdo_trust/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm8018b_dsi_vdo_trust.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm9608_fwvga_dsi_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm9608_fwvga_dsi_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r69338_hd720_5in_dsi_vdo_jdi_dw8768/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r69338_hd720_5in_dsi_vdo_jdi_dw8768.o 7 | 8 | -------------------------------------------------------------------------------- /r69338_hd720_dsi_vdo_jdi/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r69338_hd720_dsi_vdo_jdi.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /rm68200_6735_dsi_video/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += rm68200_6735_dsi_video.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CPT_CLAA101FP01_DSI_VDO_8163/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += CPT_CLAA101FP01_DSI_VDO_8163.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /EK79007_WSVGALNL_DSI_VDO/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += EK79007_WSVGALNL_DSI_VDO.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hct_otm1282a_dsi_vdo_hd_auo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | 5 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 6 | 7 | obj-y += hct_otm1282a_dsi_vdo_hd_auo.o 8 | 9 | 10 | -------------------------------------------------------------------------------- /hx8379a_dsi_vdo_azet_ips/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8379a_dsi_vdo_azet_ips.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8379c_fwvga_dsi_vdo_TDT/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8379c_fwvga_dsi_vdo_TDT.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ili9806c_dsi_vdo_azet_ips/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ili9806c_dsi_vdo_azet_ips.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ili9806c_dsi_vdo_txd_ips/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ili9806c_dsi_vdo_txd_ips.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dbi_18bit_gionee/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dbi_18bit_gionee.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dsi_cmd_6571_hvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dsi_cmd_6571_hvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dsi_cmd_6571_qvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dsi_cmd_6571_qvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dsi_cmd_6572_hvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dsi_cmd_6572_hvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dsi_cmd_6572_qvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dsi_cmd_6572_qvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35512_wvga_dsi_vdo_boe/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35512_wvga_dsi_vdo_boe.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35520_hd720_dsi_cmd_boe/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35520_hd720_dsi_cmd_boe.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35520_hd720_dsi_cmd_tm/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35520_hd720_dsi_cmd_tm.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35521_hd720_dsi_vdo_boe/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35521_hd720_dsi_vdo_boe.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35523_wsvga_dsi_vdo_boe/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35523_wsvga_dsi_vdo_boe.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35523_wxga_dsi_vdo_boe/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35523_wxga_dsi_vdo_boe.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35532_fhd_dsi_vdo_sharp/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35532_fhd_dsi_vdo_sharp.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35590_dsi_cmd_6571_qhd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35590_dsi_cmd_6571_qhd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35590_hd720_dsi_cmd_auo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35590_hd720_dsi_cmd_auo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35590_hd720_dsi_cmd_cmi/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35590_hd720_dsi_cmd_cmi.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_cmd_truly/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_cmd_truly.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_vdo_truly/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_vdo_truly.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35596_fhd_dsi_vdo_truly/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35596_fhd_dsi_vdo_truly.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35596_fhd_dsi_vdo_yassy/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35596_fhd_dsi_vdo_yassy.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm1283a_hd720_dsi_vdo_tm/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm1283a_hd720_dsi_vdo_tm.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm1284a_hd720_dsi_vdo_tm/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm1284a_hd720_dsi_vdo_tm.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm1285a_hd720_dsi_vdo_tm/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm1285a_hd720_dsi_vdo_tm.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm1906a_fhd_dsi_cmd_auto/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm1906a_fhd_dsi_cmd_auto.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm8018b_dsi_vdo_lcsh72/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm8018b_dsi_vdo_lcsh72.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63311_fhd_dsi_vdo_sharp/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63311_fhd_dsi_vdo_sharp.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63315_fhd_dsi_vdo_truly/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63315_fhd_dsi_vdo_truly.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63319_wqhd_dsi_vdo_truly/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63319_wqhd_dsi_vdo_truly.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /s6e3fa2_fhd1080_dsi_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += s6e3fa2_fhd1080_dsi_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /VVX10F008B00_WUXGA_DSI_VDO/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += VVX10F008B00_WUXGA_DSI_VDO.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hct_ili9881_dsi_vdo_hd_cpt/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y +=hct_ili9881_dsi_vdo_hd_cpt.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8389b_qhd_dsi_vdo_tianma/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8389b_qhd_dsi_vdo_tianma.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ili9806c_dsi_vdo_djn_fwvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ili9806c_dsi_vdo_djn_fwvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ili9806e_fwvga_dsi_vdo_TXD/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ili9806e_fwvga_dsi_vdo_TXD.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ili9806e_fwvga_dsi_vdo_TXD/Makefile~: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ili9806e_wvga_dsi_vdo_TXD.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /it6121_g156xw01v1_lvds_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += it6121_g156xw01v1_lvds_vdo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /it6151_edp_dsi_video_sharp/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += it6151_edp_dsi_video_sharp.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35510_dsi_cmd_6572_fwvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35510_dsi_cmd_6572_fwvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35516_qhd_dsi_cmd_ipsboe/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35516_qhd_dsi_cmd_ipsboe.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35521_hd720_dsi_video_tm/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35521_hd720_dsi_video_tm.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35590_dsi_cmd_6571_fwvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35590_dsi_cmd_6571_fwvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35590_hd720_dsi_vdo_truly/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35590_hd720_dsi_vdo_truly.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35598_wqhd_dsi_vdo_truly/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35598_wqhd_dsi_vdo_truly.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm1282a_hd720_dsi_vdo_60hz/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm1282a_hd720_dsi_vdo_60hz.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm8018b_dsi_vdo_txd_fwvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm8018b_dsi_vdo_txd_fwvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /rm68210_hd720_dsi_ufoe_cmd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += rm68210_hd720_dsi_ufoe_cmd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ssd2075_hd720_dsi_vdo_truly/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += ssd2075_hd720_dsi_vdo_truly.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /sy20810800210132_dsi_wuxga_vdo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += sy20810800210132_dsi_wuxga_vdo.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /hct_hx8394f_dsi_vdo_hd_cmi/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | 5 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 6 | 7 | obj-y += hct_hx8394f_dsi_vdo_hd_cmi.o 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /hct_rm68200_dsi_vdo_hd_cpt/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | 5 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 6 | 7 | obj-y += hct_rm68200_dsi_vdo_hd_cpt.o 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /hx8394a_hd720_dsi_vdo_tianma/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8394a_hd720_dsi_vdo_tianma.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8394d_hd720_dsi_vdo_tianma/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8394d_hd720_dsi_vdo_tianma.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /it6151_fhd_edp_dsi_video_auo/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += it6151_fhd_edp_dsi_video_auo.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /lg4573b_wvga_dsi_vdo_lh430mv1/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += lg4573b_wvga_dsi_vdo_lh430mv1.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35516_qhd_dsi_cmd_ips9k1431/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35516_qhd_dsi_cmd_ips9k1431.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35516_qhd_dsi_cmd_tft9k1342/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35516_qhd_dsi_cmd_tft9k1342.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35590_hd720_dsi_cmd_auo_qhd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35590_hd720_dsi_cmd_auo_qhd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35590_hd720_dsi_cmd_auo_wvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35590_hd720_dsi_cmd_auo_wvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35590_hd720_dsi_cmd_truly2/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35590_hd720_dsi_cmd_truly2.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm1287a_hd720_dsi_vdo_dijing/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm1287a_hd720_dsi_vdo_dijing.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm8009a_fwvga_dsi_cmd_tianma/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm8009a_fwvga_dsi_cmd_tianma.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm8009a_fwvga_dsi_vdo_tianma/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm8009a_fwvga_dsi_vdo_tianma.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r69338_hd720_dsi_vdo_jdi_dw8755a/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r69338_hd720_dsi_vdo_jdi_dw8755a.o 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /nt35516_qhd_dsi_cmd_ipsboe_fwvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35516_qhd_dsi_cmd_ipsboe_fwvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35516_qhd_dsi_cmd_ipsboe_wvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35516_qhd_dsi_cmd_ipsboe_wvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35521_hd720_dsi_vdo_cpt_booyi/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35521_hd720_dsi_vdo_cpt_booyi.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35590_hd720_dsi_cmd_auo_fwvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35590_hd720_dsi_cmd_auo_fwvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63417_fhd_dsi_cmd_truly_nt50358/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63417_fhd_dsi_cmd_truly_nt50358.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63417_fhd_dsi_vdo_truly_nt50358/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63417_fhd_dsi_vdo_truly_nt50358.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hx8389b_qhd_dsi_vdo_tianma055xdhp/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += hx8389b_qhd_dsi_vdo_tianma055xdhp.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_cmd_truly_nt50358/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_cmd_truly_nt50358.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_cmd_truly_tps65132/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_cmd_truly_tps65132.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_vdo_truly_nt50358/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_vdo_truly_nt50358.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_vdo_truly_tps65132/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_vdo_truly_tps65132.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /otm1906b_fhd_dsi_cmd_jdi_tps65132/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += otm1906b_fhd_dsi_cmd_jdi_tps65132.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63419_fhd_truly_phantom_2k_cmd_ok/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63419_fhd_truly_phantom_2k_cmd_ok.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63419_wqhd_truly_phantom_2k_cmd_ok/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63419_wqhd_truly_phantom_2k_cmd_ok.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63419_wqhd_truly_phantom_2k_vdo_ok/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63419_wqhd_truly_phantom_2k_vdo_ok.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_cmd_truly_nt50358_qhd/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_cmd_truly_nt50358_qhd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35596_hd720_dsi_vdo_truly_tps65132/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35596_hd720_dsi_vdo_truly_tps65132.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63417_fhd_dsi_cmd_truly_nt50358_720p/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63417_fhd_dsi_cmd_truly_nt50358_720p.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /r63417_fhd_dsi_cmd_truly_nt50358_qhd/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += r63417_fhd_dsi_cmd_truly_nt50358_qhd.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /cpt_clap070wp03xg_sn65dsi83/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += cpt_clap070wp03xg_sn65dsi83.o 7 | obj-y += sn65dsi83_i2c.o 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_cmd_truly_nt50358_6735/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_cmd_truly_nt50358_6735.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_cmd_truly_nt50358_720p/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_cmd_truly_nt50358_720p.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_cmd_truly_nt50358_fwvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_cmd_truly_nt50358_fwvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_cmd_truly_nt50358_wvga/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_cmd_truly_nt50358_wvga.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_cmd_truly_tps65132_720p/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_cmd_truly_tps65132_720p.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /it6151_lp079qx1_edp_dsi_video/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += it6151_lp079qx1_edp_dsi_video.o 7 | obj-y += it6151_i2c.o 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /nt35595_fhd_dsi_cmd_truly_nt50358_6735_720p/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += nt35595_fhd_dsi_cmd_truly_nt50358_6735_720p.o 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /it6151_lp079qx1_edp_dsi_video_8163evb/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 5 | 6 | obj-y += it6151_lp079qx1_edp_dsi_video_8163evb.o 7 | obj-y += it6151_i2c.o 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /nt35521_dsi_6735_H/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | ifdef MTK_LEGCY 5 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 6 | endif 7 | 8 | ccflags-y += -Wno-unused-variable -g 9 | ccflags-y += -Wno-unused-function -g 10 | 11 | obj-y += nt35521_dsi_6735_H.o 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /hct_nt35521_dsi_vdo_hd_boe/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | ifdef MTK_LEGCY 5 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 6 | endif 7 | 8 | ccflags-y += -Wno-unused-variable -g 9 | ccflags-y += -Wno-unused-function -g 10 | 11 | obj-y += hct_nt35521_dsi_vdo_hd_boe.o 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /hct_nt35521s_dsi_vdo_hd_boe_50_xld/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for misc devices that really don't fit anywhere else. 3 | # 4 | ifdef MTK_LEGCY 5 | include $(srctree)/drivers/misc/mediatek/Makefile.custom 6 | endif 7 | 8 | ccflags-y += -Wno-unused-variable -g 9 | ccflags-y += -Wno-unused-function -g 10 | 11 | obj-y += hct_nt35521s_dsi_vdo_hd_boe_50_xld.o 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /otm8018b_dsi_vdo_txd_fwvga/otm8018b_dsi_vdo_txd_fwvga.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #endif 4 | #include "lcm_drv.h" 5 | 6 | #ifdef BUILD_LK 7 | #include 8 | #elif defined(BUILD_UBOOT) 9 | #include 10 | #else 11 | #include 12 | #endif 13 | LCM_DRIVER otm8018b_dsi_vdo_txd_fwvga_lcm_drv = 14 | { 15 | .name = "otm8018b_dsi_vdo_txd_fwvga", 16 | }; 17 | 18 | -------------------------------------------------------------------------------- /ili9807_qhd_dsi/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 18 5 | svn://192.168.1.129/q3/mediatek/custom/common/kernel/lcm/ili9807_qhd_dsi 6 | svn://192.168.1.129/q3 7 | 8 | 9 | 10 | 2015-04-08T05:51:45.775448Z 11 | 18 12 | znq 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ecc1d274-6087-4c84-8dc6-4809d00a62fa 28 | 29 | ili9807_qhd_dsi.c 30 | file 31 | 46 32 | 33 | 34 | 35 | 2015-05-05T07:51:26.496435Z 36 | 87413cd4746345d04ec7f0a61b502c87 37 | 2015-05-06T03:28:34.587569Z 38 | 46 39 | znq 40 | has-props 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 32231 62 | 63 | -------------------------------------------------------------------------------- /inc/sn65dsi83_i2c.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * Filename: 4 | * --------- 5 | * sn65dsi83.h 6 | * 7 | * Project: 8 | * -------- 9 | * Android 10 | * 11 | * Description: 12 | * ------------ 13 | * sn65dsi83 header file 14 | * 15 | * Author: 16 | * ------- 17 | * 18 | ****************************************************************************/ 19 | 20 | #ifndef _sn65dsi83_SW_H_ 21 | #define _sn65dsi83_SW_H_ 22 | #ifndef BUILD_LK 23 | 24 | //--------------------------------------------------------- 25 | extern int sn65dsi83_read_byte(kal_uint8 cmd, kal_uint8 *returnData); 26 | extern int sn65dsi83_write_byte(kal_uint8 cmd, kal_uint8 writeData); 27 | #endif 28 | #endif // _fan5405_SW_H_ 29 | 30 | -------------------------------------------------------------------------------- /dummy/dummy.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "lcm_drv.h" 4 | 5 | 6 | // --------------------------------------------------------------------------- 7 | // Local Constants 8 | // --------------------------------------------------------------------------- 9 | 10 | #define FRAME_WIDTH (480) 11 | #define FRAME_HEIGHT (800) 12 | 13 | 14 | // --------------------------------------------------------------------------- 15 | // Local Variables 16 | // --------------------------------------------------------------------------- 17 | 18 | static LCM_UTIL_FUNCS lcm_util = {0}; 19 | 20 | #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v))) 21 | 22 | #define UDELAY(n) (lcm_util.udelay(n)) 23 | #define MDELAY(n) (lcm_util.mdelay(n)) 24 | 25 | 26 | // --------------------------------------------------------------------------- 27 | // Local Functions 28 | // --------------------------------------------------------------------------- 29 | 30 | 31 | // --------------------------------------------------------------------------- 32 | // LCM Driver Implementations 33 | // --------------------------------------------------------------------------- 34 | 35 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 36 | { 37 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 38 | } 39 | 40 | 41 | static void lcm_get_params(LCM_PARAMS *params) 42 | { 43 | memset(params, 0, sizeof(LCM_PARAMS)); 44 | 45 | params->type = LCM_TYPE_DPI; 46 | params->ctrl = LCM_CTRL_NONE; 47 | params->width = FRAME_WIDTH; 48 | params->height = FRAME_HEIGHT; 49 | 50 | params->dpi.mipi_pll_clk_ref = 0; 51 | params->dpi.mipi_pll_clk_div1 = 42; 52 | params->dpi.mipi_pll_clk_div2 = 10; 53 | params->dpi.dpi_clk_div = 2; 54 | params->dpi.dpi_clk_duty = 1; 55 | 56 | params->dpi.clk_pol = LCM_POLARITY_FALLING; 57 | params->dpi.de_pol = LCM_POLARITY_FALLING; 58 | params->dpi.vsync_pol = LCM_POLARITY_FALLING; 59 | params->dpi.hsync_pol = LCM_POLARITY_FALLING; 60 | 61 | params->dpi.hsync_pulse_width = 4; 62 | params->dpi.hsync_back_porch = 10; 63 | params->dpi.hsync_front_porch = 18; 64 | params->dpi.vsync_pulse_width = 2; 65 | params->dpi.vsync_back_porch = 2; 66 | params->dpi.vsync_front_porch = 14; 67 | 68 | params->dpi.format = LCM_DPI_FORMAT_RGB888; 69 | params->dpi.rgb_order = LCM_COLOR_ORDER_RGB; 70 | params->dpi.is_serial_output = 0; 71 | 72 | params->dpi.intermediat_buffer_num = 2; 73 | 74 | params->dpi.io_driving_current = 0; 75 | } 76 | 77 | 78 | static void lcm_init(void) 79 | { 80 | } 81 | 82 | 83 | static void lcm_suspend(void) 84 | { 85 | } 86 | 87 | 88 | static void lcm_resume(void) 89 | { 90 | } 91 | 92 | 93 | // --------------------------------------------------------------------------- 94 | // Get LCM Driver Hooks 95 | // --------------------------------------------------------------------------- 96 | 97 | const LCM_DRIVER* LCM_GetDriver() 98 | { 99 | static const LCM_DRIVER LCM_DRV = 100 | { 101 | .set_util_funcs = lcm_set_util_funcs, 102 | .get_params = lcm_get_params, 103 | .init = lcm_init, 104 | .suspend = lcm_suspend, 105 | .resume = lcm_resume 106 | }; 107 | 108 | return &LCM_DRV; 109 | } 110 | 111 | -------------------------------------------------------------------------------- /hsd070idw1/hsd070idw1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #ifdef BUILD_UBOOT 3 | #include 4 | #else 5 | #include 6 | #endif 7 | #include "lcm_drv.h" 8 | 9 | 10 | // --------------------------------------------------------------------------- 11 | // Local Constants 12 | // --------------------------------------------------------------------------- 13 | 14 | #define FRAME_WIDTH (800) 15 | #define FRAME_HEIGHT (480) 16 | 17 | 18 | // --------------------------------------------------------------------------- 19 | // Local Variables 20 | // --------------------------------------------------------------------------- 21 | 22 | static LCM_UTIL_FUNCS lcm_util = {0}; 23 | 24 | #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v))) 25 | 26 | #define UDELAY(n) (lcm_util.udelay(n)) 27 | #define MDELAY(n) (lcm_util.mdelay(n)) 28 | 29 | 30 | // --------------------------------------------------------------------------- 31 | // Local Functions 32 | // --------------------------------------------------------------------------- 33 | 34 | 35 | // --------------------------------------------------------------------------- 36 | // LCM Driver Implementations 37 | // --------------------------------------------------------------------------- 38 | 39 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 40 | { 41 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 42 | } 43 | 44 | 45 | static void lcm_get_params(LCM_PARAMS *params) 46 | { 47 | memset(params, 0, sizeof(LCM_PARAMS)); 48 | 49 | params->type = LCM_TYPE_DPI; 50 | params->ctrl = LCM_CTRL_NONE; 51 | params->width = FRAME_WIDTH; 52 | params->height = FRAME_HEIGHT; 53 | params->io_select_mode = 0; 54 | 55 | params->dpi.mipi_pll_clk_ref = 0; 56 | params->dpi.mipi_pll_clk_div1 = 36; 57 | params->dpi.mipi_pll_clk_div2 = 8; 58 | params->dpi.dpi_clk_div = 2; 59 | params->dpi.dpi_clk_duty = 1; 60 | 61 | params->dpi.clk_pol = LCM_POLARITY_RISING; 62 | params->dpi.de_pol = LCM_POLARITY_RISING; 63 | params->dpi.vsync_pol = LCM_POLARITY_FALLING; 64 | params->dpi.hsync_pol = LCM_POLARITY_FALLING; 65 | 66 | params->dpi.hsync_pulse_width = 48; 67 | params->dpi.hsync_back_porch = 40; 68 | params->dpi.hsync_front_porch = 40; 69 | params->dpi.vsync_pulse_width = 3; 70 | params->dpi.vsync_back_porch = 29; 71 | params->dpi.vsync_front_porch = 13; 72 | 73 | params->dpi.format = LCM_DPI_FORMAT_RGB888; 74 | params->dpi.rgb_order = LCM_COLOR_ORDER_RGB; 75 | params->dpi.is_serial_output = 0; 76 | 77 | params->dpi.intermediat_buffer_num = 2; 78 | 79 | params->dpi.io_driving_current = LCM_DRIVING_CURRENT_8MA | LCM_DRIVING_CURRENT_4MA | LCM_DRIVING_CURRENT_2MA; 80 | } 81 | 82 | 83 | static void lcm_init(void) 84 | { 85 | lcm_util.set_gpio_dir(GPIO138, GPIO_DIR_OUT); 86 | lcm_util.set_gpio_mode(GPIO138, GPIO_MODE_01); 87 | //program reset pin 88 | SET_RESET_PIN(0); 89 | MDELAY(25); 90 | SET_RESET_PIN(1); 91 | MDELAY(50); 92 | } 93 | 94 | 95 | static void lcm_suspend(void) 96 | { 97 | //disable output pixel clk 98 | } 99 | 100 | 101 | static void lcm_resume(void) 102 | { 103 | //enable output pixel clk 104 | } 105 | 106 | 107 | // --------------------------------------------------------------------------- 108 | // Get LCM Driver Hooks 109 | // --------------------------------------------------------------------------- 110 | LCM_DRIVER hsd070idw1_lcm_drv = 111 | { 112 | .name = "hsd070idw1", 113 | .set_util_funcs = lcm_set_util_funcs, 114 | .get_params = lcm_get_params, 115 | .init = lcm_init, 116 | .suspend = lcm_suspend, 117 | .resume = lcm_resume, 118 | }; 119 | -------------------------------------------------------------------------------- /it6151_edp_dsi_video_sharp/it6151_i2c.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | 23 | #include 24 | #include 25 | #include 26 | 27 | //#include "it6151_i2c.h" 28 | //#include "cust_charging.h" 29 | //#include 30 | 31 | 32 | /********************************************************** 33 | * 34 | * [I2C Slave Setting] 35 | * 36 | *********************************************************/ 37 | 38 | static DEFINE_MUTEX(it6151_i2c_access); 39 | 40 | #define it6151_BUSNUM 2 41 | 42 | #define DEVICE_NAME "it6151" 43 | #define it6151_DEVICE_ID 0x5c 44 | 45 | 46 | struct i2c_client *it6151_0; 47 | struct i2c_client *it6151_1; 48 | 49 | 50 | 51 | static const struct i2c_device_id it6151_id[] = { 52 | { "it6151_0", 0 }, 53 | { "it6151_1", 0 } 54 | }; 55 | 56 | static struct i2c_board_info it6151_i2c[] = { 57 | { 58 | .type = "it6151_0", 59 | .addr = 0x5C, 60 | }, 61 | { 62 | .type = "it6151_1", 63 | .addr = 0x6C, 64 | } 65 | }; 66 | 67 | // i2c_smbus_read_byte_data(sii902xA,RegOffset); 68 | UINT8 it6151_reg_i2c_read (struct i2c_client *client,UINT8 RegOffset) 69 | { 70 | UINT8 Readnum; 71 | Readnum = i2c_smbus_read_byte_data(client,RegOffset); 72 | printk("[6151]client:%s , read RegOffset=0x%x,Readnum=0x%x \n", client->name, RegOffset, Readnum); 73 | return Readnum; 74 | } 75 | 76 | UINT8 it6151_reg_i2c_read_byte(U8 dev_addr,U8 *cmdBuffer, U8 *dataBuffer) 77 | { 78 | UINT8 RetVal = 0xFF; 79 | if(dev_addr == it6151_0->addr) 80 | RetVal = it6151_reg_i2c_read(it6151_0, *cmdBuffer); 81 | else if(dev_addr == it6151_1->addr) 82 | RetVal = it6151_reg_i2c_read(it6151_1, *cmdBuffer); 83 | else 84 | printk("[it6151_reg_i2c_read_byte]error: no this dev_addr \n"); 85 | 86 | return RetVal; 87 | } 88 | 89 | void it6151_reg_i2c_write (struct i2c_client *client,UINT8 RegOffset, UINT8 Data) 90 | { 91 | i2c_smbus_write_byte_data(client, RegOffset, Data); 92 | 93 | printk("[6151]client:%s , write RegOffset=0x%x,Data=0x%x \n", client->name, RegOffset, Data); 94 | } 95 | 96 | void it6151_reg_i2c_write_byte(U8 dev_addr,U8 cmd, U8 data) 97 | { 98 | 99 | U8 write_data[8]; 100 | 101 | write_data[0] = cmd; 102 | write_data[1] = data; 103 | 104 | 105 | if(dev_addr == 0x5C) 106 | { 107 | it6151_0->addr = 0x5C; 108 | it6151_0->ext_flag = 0; 109 | i2c_master_send(it6151_0, write_data, 2); 110 | } 111 | else if(dev_addr == 0x6C) 112 | { 113 | it6151_1->addr = 0x6C; 114 | it6151_1->ext_flag = 0; 115 | i2c_master_send(it6151_1, write_data, 2); 116 | } 117 | else 118 | printk("[it6151_reg_i2c_read_byte]error: no this dev_addr \n"); 119 | 120 | } 121 | 122 | 123 | static int match_id(const struct i2c_device_id *id, const struct i2c_client *client) 124 | { 125 | if (strcmp(client->name, id->name) == 0) 126 | return true; 127 | 128 | return false; 129 | } 130 | 131 | static int it6151_i2c_probe(struct i2c_client *client, 132 | const struct i2c_device_id *id) 133 | { 134 | 135 | int ret = 0; 136 | int err=0; 137 | 138 | if(match_id(&it6151_id[0], client)) 139 | { 140 | if (!(it6151_0 = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) { 141 | err = -ENOMEM; 142 | goto exit; 143 | } 144 | memset(it6151_0, 0, sizeof(struct i2c_client)); 145 | it6151_0 = client; 146 | dev_info(&client->adapter->dev, "attached it6151_0: %s " 147 | "into i2c adapter successfully \n", id->name); 148 | } 149 | else if(match_id(&it6151_id[1], client)) 150 | { 151 | if (!(it6151_1 = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) { 152 | err = -ENOMEM; 153 | goto exit; 154 | } 155 | memset(it6151_1, 0, sizeof(struct i2c_client)); 156 | it6151_1 = client; 157 | dev_info(&client->adapter->dev, "attached it6151_1: %s " 158 | "into i2c adapter successfully \n", id->name); 159 | } 160 | else 161 | { 162 | dev_err(&client->adapter->dev, "invalid i2c adapter: can not found dev_id matched\n"); 163 | return -EIO; 164 | } 165 | 166 | printk("[it6151_i2c_probe] Suss \n"); 167 | return ret; 168 | 169 | exit: 170 | return err; 171 | 172 | } 173 | 174 | 175 | static struct i2c_driver it6151_i2c_driver = { 176 | .driver = { 177 | .name = DEVICE_NAME, 178 | }, 179 | .probe = it6151_i2c_probe, 180 | .id_table = it6151_id, 181 | }; 182 | 183 | static int __init it6151_i2c_init(void) 184 | { 185 | // int ret=0; //fixed for build warning 186 | 187 | printk("[it6151_i2c_init] init start\n"); 188 | 189 | i2c_register_board_info(it6151_BUSNUM, it6151_i2c, 2); 190 | 191 | if(i2c_add_driver(&it6151_i2c_driver)!=0) 192 | { 193 | printk("[it6151_i2c_init] failed to register it6151 i2c driver.\n"); 194 | } 195 | else 196 | { 197 | printk("[it6151_i2c_init] Success to register it6151 i2c driver.\n"); 198 | } 199 | 200 | return 0; 201 | } 202 | 203 | static void __exit it6151_i2c_exit(void) 204 | { 205 | i2c_del_driver(&it6151_i2c_driver); 206 | } 207 | 208 | module_init(it6151_i2c_init); 209 | module_exit(it6151_i2c_exit); 210 | 211 | MODULE_LICENSE("GPL"); 212 | MODULE_DESCRIPTION("I2C it6151 Driver"); 213 | MODULE_AUTHOR("jitao.shi"); 214 | #endif 215 | 216 | -------------------------------------------------------------------------------- /it6151_fhd_edp_dsi_video_auo/it6151_i2c.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | 23 | #include 24 | #include 25 | #include 26 | 27 | //#include "it6151_i2c.h" 28 | //#include "cust_charging.h" 29 | //#include 30 | 31 | 32 | /********************************************************** 33 | * 34 | * [I2C Slave Setting] 35 | * 36 | *********************************************************/ 37 | 38 | static DEFINE_MUTEX(it6151_i2c_access); 39 | 40 | #define it6151_BUSNUM 3 41 | 42 | #define DEVICE_NAME "it6151" 43 | #define it6151_DEVICE_ID 0x5c 44 | 45 | 46 | struct i2c_client *it6151_0; 47 | struct i2c_client *it6151_1; 48 | 49 | 50 | 51 | static const struct i2c_device_id it6151_id[] = { 52 | { "it6151_0", 0 }, 53 | { "it6151_1", 0 } 54 | }; 55 | 56 | static struct i2c_board_info it6151_i2c[] = { 57 | { 58 | .type = "it6151_0", 59 | .addr = 0x5C, 60 | }, 61 | { 62 | .type = "it6151_1", 63 | .addr = 0x6C, 64 | } 65 | }; 66 | 67 | // i2c_smbus_read_byte_data(sii902xA,RegOffset); 68 | UINT8 it6151_reg_i2c_read (struct i2c_client *client,UINT8 RegOffset) 69 | { 70 | UINT8 Readnum; 71 | Readnum = i2c_smbus_read_byte_data(client,RegOffset); 72 | printk("[6151]client:%s , read RegOffset=0x%x,Readnum=0x%x \n", client->name, RegOffset, Readnum); 73 | return Readnum; 74 | } 75 | 76 | UINT8 it6151_reg_i2c_read_byte(U8 dev_addr,U8 *cmdBuffer, U8 *dataBuffer) 77 | { 78 | UINT8 RetVal = 0xFF; 79 | if(dev_addr == it6151_0->addr) 80 | RetVal = it6151_reg_i2c_read(it6151_0, *cmdBuffer); 81 | else if(dev_addr == it6151_1->addr) 82 | RetVal = it6151_reg_i2c_read(it6151_1, *cmdBuffer); 83 | else 84 | printk("[it6151_reg_i2c_read_byte]error: no this dev_addr \n"); 85 | 86 | return RetVal; 87 | } 88 | 89 | void it6151_reg_i2c_write (struct i2c_client *client,UINT8 RegOffset, UINT8 Data) 90 | { 91 | i2c_smbus_write_byte_data(client, RegOffset, Data); 92 | 93 | printk("[6151]client:%s , write RegOffset=0x%x,Data=0x%x \n", client->name, RegOffset, Data); 94 | } 95 | 96 | void it6151_reg_i2c_write_byte(U8 dev_addr,U8 cmd, U8 data) 97 | { 98 | 99 | U8 write_data[8]; 100 | 101 | write_data[0] = cmd; 102 | write_data[1] = data; 103 | 104 | 105 | if(dev_addr == 0x5C) 106 | { 107 | it6151_0->addr = 0x5C; 108 | it6151_0->ext_flag = 0; 109 | i2c_master_send(it6151_0, write_data, 2); 110 | } 111 | else if(dev_addr == 0x6C) 112 | { 113 | it6151_1->addr = 0x6C; 114 | it6151_1->ext_flag = 0; 115 | i2c_master_send(it6151_1, write_data, 2); 116 | } 117 | else 118 | printk("[it6151_reg_i2c_read_byte]error: no this dev_addr \n"); 119 | 120 | } 121 | 122 | 123 | static int match_id(const struct i2c_device_id *id, const struct i2c_client *client) 124 | { 125 | if (strcmp(client->name, id->name) == 0) 126 | return true; 127 | 128 | return false; 129 | } 130 | 131 | static int it6151_i2c_probe(struct i2c_client *client, 132 | const struct i2c_device_id *id) 133 | { 134 | 135 | int ret = 0; 136 | int err=0; 137 | 138 | if(match_id(&it6151_id[0], client)) 139 | { 140 | if (!(it6151_0 = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) { 141 | err = -ENOMEM; 142 | goto exit; 143 | } 144 | memset(it6151_0, 0, sizeof(struct i2c_client)); 145 | it6151_0 = client; 146 | dev_info(&client->adapter->dev, "attached it6151_0: %s " 147 | "into i2c adapter successfully \n", id->name); 148 | } 149 | else if(match_id(&it6151_id[1], client)) 150 | { 151 | if (!(it6151_1 = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) { 152 | err = -ENOMEM; 153 | goto exit; 154 | } 155 | memset(it6151_1, 0, sizeof(struct i2c_client)); 156 | it6151_1 = client; 157 | dev_info(&client->adapter->dev, "attached it6151_1: %s " 158 | "into i2c adapter successfully \n", id->name); 159 | } 160 | else 161 | { 162 | dev_err(&client->adapter->dev, "invalid i2c adapter: can not found dev_id matched\n"); 163 | return -EIO; 164 | } 165 | 166 | printk("[it6151_i2c_probe] Suss \n"); 167 | return ret; 168 | 169 | exit: 170 | return err; 171 | 172 | } 173 | 174 | 175 | static struct i2c_driver it6151_i2c_driver = { 176 | .driver = { 177 | .name = DEVICE_NAME, 178 | }, 179 | .probe = it6151_i2c_probe, 180 | .id_table = it6151_id, 181 | }; 182 | 183 | static int __init it6151_i2c_init(void) 184 | { 185 | // int ret=0; //fixed for build warning 186 | 187 | printk("[it6151_i2c_init] init start\n"); 188 | 189 | i2c_register_board_info(it6151_BUSNUM, it6151_i2c, 2); 190 | 191 | if(i2c_add_driver(&it6151_i2c_driver)!=0) 192 | { 193 | printk("[it6151_i2c_init] failed to register it6151 i2c driver.\n"); 194 | } 195 | else 196 | { 197 | printk("[it6151_i2c_init] Success to register it6151 i2c driver.\n"); 198 | } 199 | 200 | return 0; 201 | } 202 | 203 | static void __exit it6151_i2c_exit(void) 204 | { 205 | i2c_del_driver(&it6151_i2c_driver); 206 | } 207 | 208 | module_init(it6151_i2c_init); 209 | module_exit(it6151_i2c_exit); 210 | 211 | MODULE_LICENSE("GPL"); 212 | MODULE_DESCRIPTION("I2C it6151 Driver"); 213 | MODULE_AUTHOR("jitao.shi"); 214 | #endif 215 | 216 | -------------------------------------------------------------------------------- /ha5266/ha5266.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #endif 4 | #ifdef BUILD_LK 5 | #include 6 | #include 7 | #include 8 | #elif (defined BUILD_UBOOT) 9 | #else 10 | #include 11 | #include 12 | #include 13 | #endif 14 | #include "lcm_drv.h" 15 | 16 | 17 | // --------------------------------------------------------------------------- 18 | // Local Constants 19 | // --------------------------------------------------------------------------- 20 | 21 | #define FRAME_WIDTH (800) 22 | #define FRAME_HEIGHT (480) 23 | 24 | 25 | // --------------------------------------------------------------------------- 26 | // Local Variables 27 | // --------------------------------------------------------------------------- 28 | 29 | static LCM_UTIL_FUNCS lcm_util = {0}; 30 | 31 | #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v))) 32 | 33 | #define UDELAY(n) (lcm_util.udelay(n)) 34 | #define MDELAY(n) (lcm_util.mdelay(n)) 35 | 36 | 37 | // --------------------------------------------------------------------------- 38 | // Local Functions 39 | // --------------------------------------------------------------------------- 40 | 41 | static __inline void send_ctrl_cmd(unsigned int cmd) 42 | { 43 | 44 | } 45 | 46 | static __inline void send_data_cmd(unsigned int data) 47 | { 48 | 49 | } 50 | 51 | static __inline void set_lcm_register(unsigned int regIndex, 52 | unsigned int regData) 53 | { 54 | 55 | } 56 | 57 | static void init_lcm_registers(void) 58 | { 59 | 60 | } 61 | 62 | 63 | // --------------------------------------------------------------------------- 64 | // LCM Driver Implementations 65 | // --------------------------------------------------------------------------- 66 | 67 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 68 | { 69 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 70 | } 71 | 72 | 73 | static void lcm_get_params(LCM_PARAMS *params) 74 | { 75 | memset(params, 0, sizeof(LCM_PARAMS)); 76 | 77 | params->type = LCM_TYPE_DPI; 78 | params->ctrl = LCM_CTRL_SERIAL_DBI; 79 | params->width = FRAME_WIDTH; 80 | params->height = FRAME_HEIGHT; 81 | params->io_select_mode = 0; 82 | 83 | /* RGB interface configurations */ 84 | 85 | params->dpi.mipi_pll_clk_ref = 0; //the most important parameters: set pll clk to 66Mhz and dpi clk to 33Mhz 86 | params->dpi.mipi_pll_clk_div1 = 35; 87 | params->dpi.mipi_pll_clk_div2 = 7; 88 | params->dpi.dpi_clk_div = 2; 89 | params->dpi.dpi_clk_duty = 1; 90 | 91 | params->dpi.clk_pol = LCM_POLARITY_RISING; 92 | params->dpi.de_pol = LCM_POLARITY_RISING; 93 | params->dpi.vsync_pol = LCM_POLARITY_FALLING; 94 | params->dpi.hsync_pol = LCM_POLARITY_FALLING; 95 | 96 | params->dpi.hsync_pulse_width = 30; 97 | params->dpi.hsync_back_porch = 16; 98 | params->dpi.hsync_front_porch = 210; 99 | params->dpi.vsync_pulse_width = 13; 100 | params->dpi.vsync_back_porch = 10; 101 | params->dpi.vsync_front_porch = 22; 102 | 103 | params->dpi.format = LCM_DPI_FORMAT_RGB888; // format is 24 bit 104 | params->dpi.rgb_order = LCM_COLOR_ORDER_RGB; 105 | params->dpi.is_serial_output = 0; 106 | 107 | params->dpi.intermediat_buffer_num = 2; 108 | 109 | params->dpi.io_driving_current = LCM_DRIVING_CURRENT_8MA | LCM_DRIVING_CURRENT_4MA | LCM_DRIVING_CURRENT_2MA; 110 | } 111 | 112 | 113 | static void lcm_init(void) 114 | { 115 | lcm_util.set_gpio_mode(GPIO18, GPIO_MODE_00); 116 | lcm_util.set_gpio_dir(GPIO18, GPIO_DIR_OUT); 117 | lcm_util.set_gpio_out(GPIO18, GPIO_OUT_ONE); // RST 118 | MDELAY(30); 119 | lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); 120 | lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); 121 | lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN 122 | MDELAY(30); 123 | lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); 124 | lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); 125 | lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE 126 | MDELAY(30); 127 | } 128 | 129 | 130 | static void lcm_suspend(void) 131 | { 132 | lcm_util.set_gpio_mode(GPIO18, GPIO_MODE_00); 133 | lcm_util.set_gpio_dir(GPIO18, GPIO_DIR_OUT); 134 | lcm_util.set_gpio_out(GPIO18, GPIO_OUT_ZERO); // RST 135 | MDELAY(30); 136 | lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); 137 | lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); 138 | lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ZERO); // LCM_VLED_EN 139 | MDELAY(30); 140 | lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); 141 | lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); 142 | lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ZERO); // LCM_BL_ENABLE 143 | MDELAY(30); 144 | } 145 | 146 | 147 | static void lcm_resume(void) 148 | { 149 | lcm_util.set_gpio_mode(GPIO18, GPIO_MODE_00); 150 | lcm_util.set_gpio_dir(GPIO18, GPIO_DIR_OUT); 151 | lcm_util.set_gpio_out(GPIO18, GPIO_OUT_ONE); // RST 152 | MDELAY(30); 153 | lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); 154 | lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); 155 | lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN 156 | MDELAY(30); 157 | lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); 158 | lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); 159 | lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE 160 | MDELAY(60); 161 | } 162 | 163 | 164 | // --------------------------------------------------------------------------- 165 | // Get LCM Driver Hooks 166 | // --------------------------------------------------------------------------- 167 | LCM_DRIVER ha5266_lcm_drv = 168 | { 169 | .name = "ha5266", 170 | .set_util_funcs = lcm_set_util_funcs, 171 | .get_params = lcm_get_params, 172 | .init = lcm_init, 173 | .suspend = lcm_suspend, 174 | .resume = lcm_resume, 175 | }; 176 | -------------------------------------------------------------------------------- /it6121_g156xw01v1_lvds_vdo/it6121_i2c.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | /********************************************************** 26 | * 27 | * [I2C Slave Setting] 28 | * 29 | *********************************************************/ 30 | #define it6121_MIPIRX_SLAVE_ADDR_WRITE (0x6C << 0) 31 | #define DEVICE_NAME "it6121" 32 | 33 | static struct i2c_client *it6121_mipirx = NULL; 34 | static const struct i2c_device_id it6121_i2c_id[] = 35 | { 36 | {"it6121_mipirx", 0}, 37 | }; 38 | 39 | static int it6121_i2c_driver_probe(struct i2c_client *client, const struct i2c_device_id *id); 40 | 41 | static struct i2c_driver it6121_i2c_driver = { 42 | .driver = { 43 | .name = DEVICE_NAME, 44 | }, 45 | .probe = it6121_i2c_driver_probe, 46 | .id_table = it6121_i2c_id, 47 | }; 48 | 49 | /********************************************************** 50 | * 51 | * [Global Variable] 52 | * 53 | *********************************************************/ 54 | static DEFINE_MUTEX(it6121_i2c_access); 55 | /********************************************************** 56 | * 57 | * [I2C Function For Read/Write fan5405] 58 | * 59 | *********************************************************/ 60 | int it6121_i2c_read_byte(kal_uint8 dev_addr, kal_uint8 addr, kal_uint8 *returnData) 61 | { 62 | char cmd_buf[1]={0x00}; 63 | char readData = 0; 64 | int ret=0; 65 | 66 | #ifdef it6121_DEBUG 67 | /* dump write_data for check */ 68 | printk("[KE/it6121_read_byte] dev_addr = 0x%x, read_data[0x%x] = 0x%x \n", dev_addr, addr, *returnData); 69 | #endif 70 | 71 | mutex_lock(&it6121_i2c_access); 72 | 73 | if(dev_addr == it6121_MIPIRX_SLAVE_ADDR_WRITE) 74 | { 75 | it6121_mipirx->ext_flag=((it6121_mipirx->ext_flag) & I2C_MASK_FLAG ) | I2C_WR_FLAG | I2C_DIRECTION_FLAG; 76 | 77 | cmd_buf[0] = addr; 78 | ret = i2c_master_send(it6121_mipirx, &cmd_buf[0], (1<<8 | 1)); 79 | 80 | if (ret < 0) 81 | { 82 | it6121_mipirx->ext_flag=0; 83 | 84 | mutex_unlock(&it6121_i2c_access); 85 | 86 | return 0; 87 | } 88 | 89 | readData = cmd_buf[0]; 90 | *returnData = readData; 91 | 92 | it6121_mipirx->ext_flag=0; 93 | } 94 | else 95 | { 96 | printk("[it6121_i2c_read_byte]error: no this dev_addr! \n"); 97 | } 98 | 99 | mutex_unlock(&it6121_i2c_access); 100 | 101 | return 1; 102 | } 103 | 104 | int it6121_i2c_write_byte(kal_uint8 dev_addr, kal_uint8 addr, kal_uint8 writeData) 105 | { 106 | char write_data[2] = {0}; 107 | int ret=0; 108 | 109 | #ifdef it6121_DEBUG 110 | /* dump write_data for check */ 111 | printk("[KE/it6121_i2c_write] dev_addr = 0x%x, write_data[0x%x] = 0x%x \n", dev_addr, addr, writeData); 112 | #endif 113 | 114 | mutex_lock(&it6121_i2c_access); 115 | 116 | write_data[0] = addr; 117 | write_data[1] = writeData; 118 | 119 | if(dev_addr == it6121_MIPIRX_SLAVE_ADDR_WRITE) 120 | { 121 | it6121_mipirx->addr = it6121_MIPIRX_SLAVE_ADDR_WRITE; 122 | it6121_mipirx->ext_flag=((it6121_mipirx->ext_flag) & I2C_MASK_FLAG) | I2C_DIRECTION_FLAG; 123 | 124 | ret = i2c_master_send(it6121_mipirx, write_data, 2); 125 | 126 | if(ret < 0) 127 | { 128 | it6121_mipirx->ext_flag=0; 129 | mutex_unlock(&it6121_i2c_access); 130 | 131 | return 0; 132 | } 133 | 134 | it6121_mipirx->ext_flag=0; 135 | } 136 | else 137 | { 138 | printk("[it6121_i2c_write_byte]error: no this dev_addr! \n"); 139 | } 140 | 141 | mutex_unlock(&it6121_i2c_access); 142 | 143 | return 1; 144 | } 145 | 146 | static int match_id(const struct i2c_client *client, const struct i2c_device_id *id) 147 | { 148 | if (strcmp(client->name, id->name) == 0) 149 | return true; 150 | else 151 | return false; 152 | } 153 | 154 | static int it6121_i2c_driver_probe(struct i2c_client *client, const struct i2c_device_id *id) 155 | { 156 | int err=0; 157 | 158 | printk("[it6121_i2c_driver_probe] start!\n"); 159 | 160 | if(match_id(client, &it6121_i2c_id[0])) 161 | { 162 | if (!(it6121_mipirx = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) 163 | { 164 | err = -ENOMEM; 165 | goto exit; 166 | } 167 | 168 | memset(it6121_mipirx, 0, sizeof(struct i2c_client)); 169 | 170 | it6121_mipirx = client; 171 | } 172 | else 173 | { 174 | printk("[it6121_i2c_driver_probe] error!\n"); 175 | 176 | err = -EIO; 177 | goto exit; 178 | } 179 | 180 | printk("[it6121_i2c_driver_probe] %s i2c sucess!\n", client->name); 181 | 182 | return 0; 183 | 184 | exit: 185 | return err; 186 | 187 | } 188 | 189 | #define IT6121_BUSNUM 0 190 | 191 | static struct i2c_board_info __initdata it6121_I2C[] = 192 | { 193 | {I2C_BOARD_INFO("it6121_mipirx", it6121_MIPIRX_SLAVE_ADDR_WRITE)}, 194 | }; 195 | 196 | static int __init it6121_init(void) 197 | { 198 | printk("[it6121_init] init start\n"); 199 | 200 | i2c_register_board_info(IT6121_BUSNUM, it6121_I2C, 1); 201 | 202 | if(i2c_add_driver(&it6121_i2c_driver)!=0) 203 | { 204 | printk("[it6121_init] Failed to register it6121 i2c driver.\n"); 205 | } 206 | else 207 | { 208 | printk("[it6121_init] Success to register it6121 i2c driver.\n"); 209 | } 210 | 211 | return 0; 212 | } 213 | 214 | static void __exit it6121_exit(void) 215 | { 216 | i2c_del_driver(&it6121_i2c_driver); 217 | } 218 | 219 | module_init(it6121_init); 220 | module_exit(it6121_exit); 221 | 222 | MODULE_LICENSE("GPL"); 223 | MODULE_DESCRIPTION("I2C IT6121 Driver"); 224 | MODULE_AUTHOR("James Lo"); 225 | #endif 226 | -------------------------------------------------------------------------------- /cpt_clap070wp03xg_sn65dsi83/sn65dsi83_i2c.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | //#include "sn65dsi83_i2c.h" 29 | //#include "cust_charging.h" 30 | //#include 31 | 32 | 33 | /********************************************************** 34 | * 35 | * [I2C Slave Setting] 36 | * 37 | *********************************************************/ 38 | #define sn65dsi83_SLAVE_ADDR_WRITE 0x58 //0xD4 39 | #define sn65dsi83_SLAVE_ADDR_Read 0x59 //0xD5 40 | #define sn65dsi83_SLAVE_ADDR 0x58 41 | 42 | 43 | static struct i2c_client *new_client = NULL; 44 | static const struct i2c_device_id sn65dsi83_i2c_id[] = {{"sn65dsi83",0},{}}; 45 | //kal_bool chargin_hw_init_done = KAL_FALSE; 46 | static int sn65dsi83_driver_probe(struct i2c_client *client, const struct i2c_device_id *id); 47 | 48 | static struct i2c_driver sn65dsi83_driver = { 49 | .driver = { 50 | .name = "sn65dsi83", 51 | }, 52 | .probe = sn65dsi83_driver_probe, 53 | .id_table = sn65dsi83_i2c_id, 54 | }; 55 | 56 | /********************************************************** 57 | * 58 | * [Global Variable] 59 | * 60 | *********************************************************/ 61 | //kal_uint8 sn65dsi83_reg[sn65dsi83_REG_NUM] = {0}; 62 | 63 | static DEFINE_MUTEX(sn65dsi83_i2c_access); 64 | /********************************************************** 65 | * 66 | * [I2C Function For Read/Write fan5405] 67 | * 68 | *********************************************************/ 69 | 70 | 71 | int sn65dsi83_read_byte(kal_uint8 cmd, kal_uint8 *returnData) 72 | { 73 | char cmd_buf[1]={0x00}; 74 | char readData = 0; 75 | int ret=0; 76 | 77 | mutex_lock(&sn65dsi83_i2c_access); 78 | 79 | //new_client->addr = ((new_client->addr) & I2C_MASK_FLAG) | I2C_WR_FLAG; 80 | new_client->ext_flag=((new_client->ext_flag ) & I2C_MASK_FLAG ) | I2C_WR_FLAG | I2C_DIRECTION_FLAG; 81 | 82 | cmd_buf[0] = cmd; 83 | ret = i2c_master_send(new_client, &cmd_buf[0], (1<<8 | 1)); 84 | if (ret < 0) 85 | { 86 | //new_client->addr = new_client->addr & I2C_MASK_FLAG; 87 | new_client->ext_flag=0; 88 | 89 | mutex_unlock(&sn65dsi83_i2c_access); 90 | return 0; 91 | } 92 | 93 | readData = cmd_buf[0]; 94 | *returnData = readData; 95 | 96 | // new_client->addr = new_client->addr & I2C_MASK_FLAG; 97 | new_client->ext_flag=0; 98 | 99 | mutex_unlock(&sn65dsi83_i2c_access); 100 | return 1; 101 | } 102 | 103 | int sn65dsi83_write_byte(kal_uint8 cmd, kal_uint8 writeData) 104 | { 105 | char write_data[2] = {0}; 106 | int ret=0; 107 | 108 | mutex_lock(&sn65dsi83_i2c_access); 109 | 110 | write_data[0] = cmd; 111 | write_data[1] = writeData; 112 | 113 | new_client->ext_flag=((new_client->ext_flag ) & I2C_MASK_FLAG ) | I2C_DIRECTION_FLAG; 114 | 115 | ret = i2c_master_send(new_client, write_data, 2); 116 | if (ret < 0) 117 | { 118 | 119 | new_client->ext_flag=0; 120 | mutex_unlock(&sn65dsi83_i2c_access); 121 | return 0; 122 | } 123 | 124 | new_client->ext_flag=0; 125 | mutex_unlock(&sn65dsi83_i2c_access); 126 | return 1; 127 | } 128 | 129 | 130 | static int sn65dsi83_driver_probe(struct i2c_client *client, const struct i2c_device_id *id) 131 | { 132 | int err=0; 133 | 134 | //battery_xlog_printk(BAT_LOG_CRTI,"[sn65dsi83_driver_probe] \n"); 135 | printk("[sn65dsi83_driver_probe] \n"); 136 | if (!(new_client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) { 137 | err = -ENOMEM; 138 | goto exit; 139 | } 140 | memset(new_client, 0, sizeof(struct i2c_client)); 141 | 142 | new_client = client; 143 | 144 | //--------------------- 145 | // sn65dsi83_hw_init(); 146 | //fan5405_dump_register(); 147 | //chargin_hw_init_done = KAL_TRUE; 148 | 149 | return 0; 150 | 151 | exit: 152 | return err; 153 | 154 | } 155 | 156 | #define SN65DSI83_BUSNUM 0 157 | 158 | static struct i2c_board_info __initdata i2c_sn65dsi83 = { I2C_BOARD_INFO("sn65dsi83", /*sn65dsi83_SLAVE_ADDR_WRITE*/(sn65dsi83_SLAVE_ADDR_WRITE>>1))}; 159 | 160 | static int __init sn65dsi83_init(void) 161 | { 162 | // int ret=0; //fixed for build warning 163 | 164 | //battery_xlog_printk(BAT_LOG_CRTI,"[sn65dsi83_init] init start\n"); 165 | printk("[sn65dsi83_init] init start\n"); 166 | 167 | i2c_register_board_info(SN65DSI83_BUSNUM, &i2c_sn65dsi83, 1); 168 | 169 | if(i2c_add_driver(&sn65dsi83_driver)!=0) 170 | { 171 | //battery_xlog_printk(BAT_LOG_CRTI,"[sn65dsi83_init] failed to register sn65dsi83 i2c driver.\n"); 172 | printk("[sn65dsi83_init] failed to register sn65dsi83 i2c driver.\n"); 173 | } 174 | else 175 | { 176 | //battery_xlog_printk(BAT_LOG_CRTI,"[sn65dsi83_init] Success to register sn65dsi83 i2c driver.\n"); 177 | printk("[sn65dsi83_init] Success to register sn65dsi83 i2c driver.\n"); 178 | } 179 | 180 | return 0; 181 | } 182 | 183 | static void __exit sn65dsi83_exit(void) 184 | { 185 | i2c_del_driver(&sn65dsi83_driver); 186 | } 187 | 188 | module_init(sn65dsi83_init); 189 | module_exit(sn65dsi83_exit); 190 | 191 | MODULE_LICENSE("GPL"); 192 | MODULE_DESCRIPTION("I2C sn65dsi83 Driver"); 193 | MODULE_AUTHOR("James Lo"); 194 | #endif 195 | -------------------------------------------------------------------------------- /TM070DDH03/TM070DDH03.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #endif 4 | #ifdef BUILD_LK 5 | #include 6 | #elif (defined BUILD_UBOOT) 7 | #include 8 | #else 9 | #include 10 | #endif 11 | #include "lcm_drv.h" 12 | 13 | 14 | // --------------------------------------------------------------------------- 15 | // Local Constants 16 | // --------------------------------------------------------------------------- 17 | 18 | #define FRAME_WIDTH (1024) 19 | #define FRAME_HEIGHT (600) 20 | 21 | 22 | // --------------------------------------------------------------------------- 23 | // Local Variables 24 | // --------------------------------------------------------------------------- 25 | 26 | static LCM_UTIL_FUNCS lcm_util = {0}; 27 | 28 | #define SET_RESET_PIN(v) (mt_set_reset_pin((v))) 29 | 30 | #define UDELAY(n) (lcm_util.udelay(n)) 31 | #define MDELAY(n) (lcm_util.mdelay(n)) 32 | 33 | 34 | // --------------------------------------------------------------------------- 35 | // Local Functions 36 | // --------------------------------------------------------------------------- 37 | 38 | static __inline void send_ctrl_cmd(unsigned int cmd) 39 | { 40 | unsigned char temp1 = (unsigned char)((cmd >> 8) & 0xFF); 41 | unsigned char temp2 = (unsigned char)(cmd & 0xFF); 42 | 43 | lcm_util.send_data(0x2000 | temp1); 44 | lcm_util.send_data(0x0000 | temp2); 45 | } 46 | 47 | static __inline void send_data_cmd(unsigned int data) 48 | { 49 | lcm_util.send_data(0x0004 | data); 50 | } 51 | 52 | static __inline void set_lcm_register(unsigned int regIndex, 53 | unsigned int regData) 54 | { 55 | send_ctrl_cmd(regIndex); 56 | send_data_cmd(regData); 57 | } 58 | 59 | 60 | // --------------------------------------------------------------------------- 61 | // LCM Driver Implementations 62 | // --------------------------------------------------------------------------- 63 | 64 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 65 | { 66 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 67 | } 68 | 69 | 70 | static void lcm_get_params(LCM_PARAMS *params) 71 | { 72 | memset(params, 0, sizeof(LCM_PARAMS)); 73 | 74 | params->type = LCM_TYPE_DPI; 75 | params->ctrl = LCM_CTRL_SERIAL_DBI; 76 | params->width = FRAME_WIDTH; 77 | params->height = FRAME_HEIGHT; 78 | params->io_select_mode = 0; 79 | 80 | /* RGB interface configurations */ 81 | 82 | params->dpi.mipi_pll_clk_ref = 0; //the most important parameters: set pll clk to 66Mhz and dpi clk to 33Mhz 83 | params->dpi.mipi_pll_clk_div1 = 46; 84 | params->dpi.mipi_pll_clk_div2 = 6; 85 | params->dpi.dpi_clk_div = 2; 86 | params->dpi.dpi_clk_duty = 1; 87 | 88 | params->dpi.clk_pol = LCM_POLARITY_FALLING; 89 | params->dpi.de_pol = LCM_POLARITY_RISING; 90 | params->dpi.vsync_pol = LCM_POLARITY_FALLING; 91 | params->dpi.hsync_pol = LCM_POLARITY_FALLING; 92 | 93 | params->dpi.hsync_pulse_width = 128; 94 | params->dpi.hsync_back_porch = 152; 95 | params->dpi.hsync_front_porch = 40; 96 | params->dpi.vsync_pulse_width = 5; 97 | params->dpi.vsync_back_porch = 15; 98 | params->dpi.vsync_front_porch = 15; 99 | 100 | params->dpi.format = LCM_DPI_FORMAT_RGB888; // format is 24 bit 101 | params->dpi.rgb_order = LCM_COLOR_ORDER_RGB; 102 | params->dpi.is_serial_output = 0; 103 | 104 | params->dpi.intermediat_buffer_num = 2; 105 | 106 | params->dpi.io_driving_current = LCM_DRIVING_CURRENT_6575_8MA; 107 | } 108 | 109 | 110 | static void lcm_init(void) 111 | { 112 | #ifdef BUILD_LK 113 | // do nothing in LK 114 | #elif (defined BUILD_UBOOT) 115 | // do nothing in uboot 116 | #else 117 | mt_set_gpio_mode(GPIO70, GPIO_MODE_00); 118 | mt_set_gpio_dir(GPIO70, GPIO_DIR_OUT); 119 | mt_set_gpio_out(GPIO70, GPIO_OUT_ONE); 120 | MDELAY(50); 121 | mt_set_gpio_mode(GPIO12, GPIO_MODE_00); 122 | mt_set_gpio_dir(GPIO12, GPIO_DIR_OUT); 123 | mt_set_gpio_out(GPIO12, GPIO_OUT_ONE); // LCM_STBY 124 | MDELAY(50); 125 | mt_set_gpio_mode(GPIO14, GPIO_MODE_00); 126 | mt_set_gpio_dir(GPIO14, GPIO_DIR_OUT); 127 | mt_set_gpio_out(GPIO14, GPIO_OUT_ONE); // LCM_RST 128 | //SET_RESET_PIN(1); // LCM_RST 129 | MDELAY(50); 130 | mt_set_gpio_mode(GPIO52, GPIO_MODE_00); 131 | mt_set_gpio_dir(GPIO52, GPIO_DIR_OUT); 132 | mt_set_gpio_out(GPIO52, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N 133 | MDELAY(120); 134 | #endif 135 | } 136 | 137 | 138 | static void lcm_suspend(void) 139 | { 140 | mt_set_gpio_mode(GPIO52, GPIO_MODE_00); 141 | mt_set_gpio_dir(GPIO52, GPIO_DIR_OUT); 142 | mt_set_gpio_out(GPIO52, GPIO_OUT_ZERO); // LVDS_SHUTDOWN_N 143 | MDELAY(50); 144 | mt_set_gpio_mode(GPIO70, GPIO_MODE_00); 145 | mt_set_gpio_dir(GPIO70, GPIO_DIR_OUT); 146 | mt_set_gpio_out(GPIO70, GPIO_OUT_ZERO); 147 | //MDELAY(10); 148 | //mt_set_gpio_mode(GPIO12, GPIO_MODE_00); 149 | //mt_set_gpio_dir(GPIO12, GPIO_DIR_OUT); 150 | //mt_set_gpio_out(GPIO12, GPIO_OUT_ZERO); // LCM_STBY 151 | //MDELAY(50); 152 | //mt_set_gpio_mode(GPIO14, GPIO_MODE_00); 153 | //mt_set_gpio_dir(GPIO14, GPIO_DIR_OUT); 154 | //mt_set_gpio_out(GPIO14, GPIO_OUT_ZERO); // LCM_RST 155 | //SET_RESET_PIN(0); // LCM_RST 156 | MDELAY(60); // avoid LCD resume transint 157 | } 158 | 159 | 160 | static void lcm_resume(void) 161 | { 162 | mt_set_gpio_mode(GPIO70, GPIO_MODE_00); 163 | mt_set_gpio_dir(GPIO70, GPIO_DIR_OUT); 164 | mt_set_gpio_out(GPIO70, GPIO_OUT_ONE); 165 | MDELAY(50); 166 | mt_set_gpio_mode(GPIO12, GPIO_MODE_00); 167 | mt_set_gpio_dir(GPIO12, GPIO_DIR_OUT); 168 | mt_set_gpio_out(GPIO12, GPIO_OUT_ONE); // LCM_STBY 169 | MDELAY(50); 170 | mt_set_gpio_mode(GPIO14, GPIO_MODE_00); 171 | mt_set_gpio_dir(GPIO14, GPIO_DIR_OUT); 172 | mt_set_gpio_out(GPIO14, GPIO_OUT_ONE); // LCM_RST 173 | //SET_RESET_PIN(1); // LCM_RST 174 | MDELAY(50); 175 | mt_set_gpio_mode(GPIO52, GPIO_MODE_00); 176 | mt_set_gpio_dir(GPIO52, GPIO_DIR_OUT); 177 | mt_set_gpio_out(GPIO52, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N 178 | MDELAY(120); 179 | } 180 | 181 | LCM_DRIVER tm070ddh03_lcm_drv = 182 | { 183 | .name = "tm070ddh03", 184 | .set_util_funcs = lcm_set_util_funcs, 185 | .get_params = lcm_get_params, 186 | .init = lcm_init, 187 | .suspend = lcm_suspend, 188 | .resume = lcm_resume, 189 | }; 190 | 191 | -------------------------------------------------------------------------------- /LP079X01/LP079X01.c: -------------------------------------------------------------------------------- 1 | #ifdef BUILD_LK 2 | #include 3 | #else 4 | #include 5 | #endif 6 | 7 | #ifdef BUILD_LK 8 | #include 9 | #include 10 | #else 11 | #include 12 | #include 13 | #include 14 | #endif 15 | #include "lcm_drv.h" 16 | 17 | 18 | // --------------------------------------------------------------------------- 19 | // Local Constants 20 | // --------------------------------------------------------------------------- 21 | #define FRAME_WIDTH (768) 22 | #define FRAME_HEIGHT (1024) 23 | 24 | 25 | #define LCM_DSI_CMD_MODE 0 26 | 27 | // --------------------------------------------------------------------------- 28 | // Local Variables 29 | // --------------------------------------------------------------------------- 30 | static LCM_UTIL_FUNCS lcm_util = { 31 | .set_gpio_out = NULL, 32 | }; 33 | 34 | #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v))) 35 | 36 | #define UDELAY(n) (lcm_util.udelay(n)) 37 | #define MDELAY(n) (lcm_util.mdelay(n)) 38 | 39 | // --------------------------------------------------------------------------- 40 | // Local Functions 41 | // --------------------------------------------------------------------------- 42 | #define dsi_set_cmdq_V2(cmd, count, ppara, force_update) lcm_util.dsi_set_cmdq_V2(cmd, count, ppara, force_update) 43 | #define dsi_set_cmdq(pdata, queue_size, force_update) lcm_util.dsi_set_cmdq(pdata, queue_size, force_update) 44 | #define wrtie_cmd(cmd) lcm_util.dsi_write_cmd(cmd) 45 | #define write_regs(addr, pdata, byte_nums) lcm_util.dsi_write_regs(addr, pdata, byte_nums) 46 | #define read_reg lcm_util.dsi_read_reg() 47 | #define read_reg_v2(cmd, buffer, buffer_size) lcm_util.dsi_dcs_read_lcm_reg_v2(cmd, buffer, buffer_size) 48 | 49 | 50 | static void lcd_power_en(unsigned char enabled) 51 | { 52 | if (enabled) 53 | { 54 | #ifdef BUILD_LK 55 | /* VGP2_PMU 3V */ 56 | pmic_config_interface(DIGLDO_CON29, 0x6, PMIC_RG_VGP2_VOSEL_MASK, PMIC_RG_VGP2_VOSEL_SHIFT); 57 | pmic_config_interface(DIGLDO_CON8, 0x1, PMIC_RG_VGP2_EN_MASK, PMIC_RG_VGP2_EN_SHIFT); 58 | #else 59 | upmu_set_rg_vgp2_vosel(0x6); 60 | upmu_set_rg_vgp2_en(0x1); 61 | #endif 62 | mt_set_gpio_out(GPIO_LCM_PWR, GPIO_OUT_ONE); 63 | } 64 | else 65 | { 66 | #ifdef BUILD_LK 67 | /* VGP2_PMU 3V */ 68 | pmic_config_interface(DIGLDO_CON8, 0x0, PMIC_RG_VGP2_EN_MASK, PMIC_RG_VGP2_EN_SHIFT); 69 | pmic_config_interface(DIGLDO_CON29, 0x0, PMIC_RG_VGP2_VOSEL_MASK, PMIC_RG_VGP2_VOSEL_SHIFT); 70 | #else 71 | upmu_set_rg_vgp2_en(0x0); 72 | upmu_set_rg_vgp2_vosel(0x0); 73 | #endif 74 | mt_set_gpio_out(GPIO_LCM_PWR, GPIO_OUT_ZERO); 75 | } 76 | } 77 | 78 | 79 | static void lcd_reset(unsigned char enabled) 80 | { 81 | if (enabled) 82 | { 83 | mt_set_gpio_out(GPIO_LCM_RST, GPIO_OUT_ONE); 84 | } 85 | else 86 | { 87 | mt_set_gpio_out(GPIO_LCM_RST, GPIO_OUT_ZERO); 88 | } 89 | } 90 | 91 | 92 | // --------------------------------------------------------------------------- 93 | // LCM Driver Implementations 94 | // --------------------------------------------------------------------------- 95 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 96 | { 97 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 98 | } 99 | 100 | 101 | static void lcm_get_params(LCM_PARAMS *params) 102 | { 103 | memset(params, 0, sizeof(LCM_PARAMS)); 104 | 105 | params->type = LCM_TYPE_DSI; 106 | params->width = FRAME_WIDTH; 107 | params->height = FRAME_HEIGHT; 108 | params->dsi.mode = BURST_VDO_MODE; 109 | 110 | // DSI 111 | /* Command mode setting */ 112 | params->dsi.LANE_NUM = LCM_FOUR_LANE; 113 | //The following defined the fomat for data coming from LCD engine. 114 | params->dsi.data_format.format = LCM_DSI_FORMAT_RGB666; 115 | 116 | // Video mode setting 117 | params->dsi.PS = LCM_PACKED_PS_18BIT_RGB666; 118 | 119 | params->dsi.vertical_sync_active = 50; 120 | params->dsi.vertical_backporch = 30; 121 | params->dsi.vertical_frontporch = 36; 122 | params->dsi.vertical_active_line = FRAME_HEIGHT; 123 | 124 | params->dsi.horizontal_sync_active = 64; 125 | params->dsi.horizontal_backporch = 56; 126 | params->dsi.horizontal_frontporch = 60; 127 | params->dsi.horizontal_active_pixel = FRAME_WIDTH; 128 | 129 | // Bit rate calculation 130 | params->dsi.pll_div1 = 0; 131 | params->dsi.pll_div2 = 1; 132 | params->dsi.fbk_div = 21; 133 | 134 | params->dsi.cont_clock = 1; 135 | params->dsi.horizontal_bllp = 0x115; //word count=0x340 136 | } 137 | 138 | extern void DSI_clk_HS_mode(unsigned char enter); 139 | static void init_lcm_registers(void) 140 | { 141 | unsigned int data_array[16]; 142 | 143 | #ifdef BUILD_LK 144 | printf("%s, LK \n", __func__); 145 | #else 146 | printk("%s, kernel", __func__); 147 | #endif 148 | 149 | data_array[0] = 0x00010500; //software reset 150 | dsi_set_cmdq(data_array, 1, 1); 151 | MDELAY(10); 152 | DSI_clk_HS_mode(1); 153 | MDELAY(80); 154 | 155 | data_array[0] = 0x00290500; //display on 156 | dsi_set_cmdq(data_array, 1, 1); 157 | } 158 | 159 | 160 | static void lcm_init(void) 161 | { 162 | #if 0//def BUILD_LK 163 | return;//LK donothing 164 | #else 165 | lcd_reset(0); 166 | lcd_power_en(0); 167 | lcd_power_en(1); 168 | MDELAY(50);//Must > 5ms 169 | lcd_reset(1); 170 | MDELAY(200);//Must > 50ms 171 | init_lcm_registers(); 172 | #endif 173 | } 174 | 175 | 176 | static void lcm_suspend(void) 177 | { 178 | unsigned int data_array[16]; 179 | 180 | data_array[0] = 0x00280500; //display off 181 | dsi_set_cmdq(data_array, 1, 1); 182 | MDELAY(5); 183 | lcd_reset(0); 184 | lcd_power_en(0); 185 | DSI_clk_HS_mode(0); 186 | MDELAY(10); 187 | } 188 | 189 | 190 | static void lcm_resume(void) 191 | { 192 | lcd_reset(0); 193 | lcd_power_en(0); 194 | lcd_power_en(1); 195 | MDELAY(50);//Must > 5ms 196 | lcd_reset(1); 197 | MDELAY(200);//Must > 50ms 198 | init_lcm_registers(); 199 | } 200 | 201 | 202 | LCM_DRIVER lp079x01_lcm_drv = 203 | { 204 | .name = "lp079x01", 205 | .set_util_funcs = lcm_set_util_funcs, 206 | .get_params = lcm_get_params, 207 | .init = lcm_init, 208 | .suspend = lcm_suspend, 209 | .resume = lcm_resume, 210 | //.compare_id = lcm_compare_id, 211 | }; 212 | 213 | 214 | 215 | -------------------------------------------------------------------------------- /ili9481/ili9481.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "lcm_drv.h" 4 | 5 | 6 | // --------------------------------------------------------------------------- 7 | // Local Constants 8 | // --------------------------------------------------------------------------- 9 | 10 | #define FRAME_WIDTH (320) 11 | #define FRAME_HEIGHT (480) 12 | 13 | // --------------------------------------------------------------------------- 14 | // Local Variables 15 | // --------------------------------------------------------------------------- 16 | 17 | static LCM_UTIL_FUNCS lcm_util = {0}; 18 | 19 | #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v))) 20 | 21 | #define UDELAY(n) (lcm_util.udelay(n)) 22 | #define MDELAY(n) (lcm_util.mdelay(n)) 23 | 24 | 25 | // --------------------------------------------------------------------------- 26 | // Local Functions 27 | // --------------------------------------------------------------------------- 28 | 29 | static __inline unsigned int HIGH_BYTE(unsigned int val) 30 | { 31 | return (val >> 8) & 0xFF; 32 | } 33 | 34 | static __inline unsigned int LOW_BYTE(unsigned int val) 35 | { 36 | return (val & 0xFF); 37 | } 38 | 39 | static __inline void send_ctrl_cmd(unsigned int cmd) 40 | { 41 | lcm_util.send_cmd(cmd); 42 | } 43 | 44 | static __inline void send_data_cmd(unsigned int data) 45 | { 46 | lcm_util.send_data(data); 47 | } 48 | 49 | static __inline unsigned int read_data_cmd() 50 | { 51 | return lcm_util.read_data(); 52 | } 53 | 54 | static __inline void set_lcm_register(unsigned int regIndex, 55 | unsigned int regData) 56 | { 57 | send_ctrl_cmd(regIndex); 58 | send_data_cmd(regData); 59 | } 60 | 61 | 62 | static void init_lcm_registers(void) 63 | { 64 | // AUO 3.17" + ILI9481 65 | 66 | send_ctrl_cmd(0X0011); 67 | MDELAY(20); 68 | 69 | send_ctrl_cmd(0X00D0); 70 | send_data_cmd(0X0007); 71 | send_data_cmd(0X0041); 72 | send_data_cmd(0X001B); 73 | 74 | send_ctrl_cmd(0X00D1); 75 | send_data_cmd(0X0000); 76 | send_data_cmd(0X0016); // 0x001b 77 | send_data_cmd(0X0012); 78 | 79 | send_ctrl_cmd(0X00D2); 80 | send_data_cmd(0X0001); 81 | send_data_cmd(0X0011); 82 | 83 | send_ctrl_cmd(0X00C0); 84 | send_data_cmd(0X0010); 85 | send_data_cmd(0X003B); 86 | send_data_cmd(0X0000); 87 | send_data_cmd(0X0012); 88 | send_data_cmd(0X0001); 89 | 90 | send_ctrl_cmd(0X00C1); 91 | send_data_cmd(0X0010); 92 | send_data_cmd(0X0013); 93 | send_data_cmd(0X0088); 94 | send_ctrl_cmd(0X00C5); 95 | send_data_cmd(0X0002); 96 | send_ctrl_cmd(0X00C8); 97 | send_data_cmd(0X0002); 98 | send_data_cmd(0X0046); 99 | send_data_cmd(0X0014); 100 | send_data_cmd(0X0031); 101 | send_data_cmd(0X000A); 102 | send_data_cmd(0X0004); 103 | send_data_cmd(0X0037); 104 | send_data_cmd(0X0024); 105 | send_data_cmd(0X0057); 106 | send_data_cmd(0X0013); 107 | send_data_cmd(0X0006); 108 | send_data_cmd(0X000C); 109 | send_ctrl_cmd(0X00F3); 110 | send_data_cmd(0X0040); 111 | send_data_cmd(0X000A); 112 | send_ctrl_cmd(0X00F6); 113 | send_data_cmd(0X0080); 114 | send_ctrl_cmd(0X00F7); 115 | send_data_cmd(0X0080); 116 | send_ctrl_cmd(0X0036); 117 | send_data_cmd(0X000A); 118 | send_ctrl_cmd(0X003A); 119 | send_data_cmd(0X0005); 120 | send_ctrl_cmd(0X002A); 121 | send_data_cmd(0X0000); 122 | send_data_cmd(0X0000); 123 | send_data_cmd(0X0001); 124 | send_data_cmd(0X003F); 125 | send_ctrl_cmd(0X002B); 126 | send_data_cmd(0X0000); 127 | send_data_cmd(0X0000); 128 | send_data_cmd(0X0001); 129 | send_data_cmd(0X00DF); 130 | MDELAY(120); 131 | 132 | send_ctrl_cmd(0X0029); 133 | } 134 | 135 | 136 | // --------------------------------------------------------------------------- 137 | // LCM Driver Implementations 138 | // --------------------------------------------------------------------------- 139 | 140 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 141 | { 142 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 143 | } 144 | 145 | 146 | static void lcm_get_params(LCM_PARAMS *params) 147 | { 148 | memset(params, 0, sizeof(LCM_PARAMS)); 149 | 150 | params->type = LCM_TYPE_DBI; 151 | params->ctrl = LCM_CTRL_PARALLEL_DBI; 152 | params->width = FRAME_WIDTH; 153 | params->height = FRAME_HEIGHT; 154 | params->io_select_mode = 3; 155 | 156 | params->dbi.port = 1; 157 | params->dbi.clock_freq = LCM_DBI_CLOCK_FREQ_52M; 158 | params->dbi.data_width = LCM_DBI_DATA_WIDTH_16BITS; 159 | params->dbi.data_format.color_order = LCM_COLOR_ORDER_RGB; 160 | params->dbi.data_format.trans_seq = LCM_DBI_TRANS_SEQ_MSB_FIRST; 161 | params->dbi.data_format.padding = LCM_DBI_PADDING_ON_LSB; 162 | params->dbi.data_format.format = LCM_DBI_FORMAT_RGB565; 163 | params->dbi.data_format.width = LCM_DBI_DATA_WIDTH_16BITS; 164 | params->dbi.cpu_write_bits = LCM_DBI_CPU_WRITE_16_BITS; 165 | params->dbi.io_driving_current = 0; 166 | 167 | params->dbi.parallel.write_setup = 1; 168 | params->dbi.parallel.write_hold = 1; 169 | params->dbi.parallel.write_wait = 3; 170 | params->dbi.parallel.read_setup = 1; 171 | params->dbi.parallel.read_latency = 31; 172 | params->dbi.parallel.wait_period = 2; 173 | } 174 | 175 | 176 | static void lcm_init(void) 177 | { 178 | SET_RESET_PIN(0); 179 | MDELAY(200); 180 | SET_RESET_PIN(1); 181 | MDELAY(400); 182 | 183 | init_lcm_registers(); 184 | } 185 | 186 | 187 | static void lcm_suspend(void) 188 | { 189 | send_ctrl_cmd(0x28); 190 | } 191 | 192 | 193 | static void lcm_resume(void) 194 | { 195 | send_ctrl_cmd(0x29); 196 | } 197 | 198 | 199 | static void lcm_update(unsigned int x, unsigned int y, 200 | unsigned int width, unsigned int height) 201 | { 202 | unsigned int x0 = x; 203 | unsigned int y0 = y; 204 | unsigned int x1 = x0 + width - 1; 205 | unsigned int y1 = y0 + height - 1; 206 | 207 | send_ctrl_cmd(0x2A); 208 | send_data_cmd(HIGH_BYTE(x0)); 209 | send_data_cmd(LOW_BYTE(x0)); 210 | send_data_cmd(HIGH_BYTE(x1)); 211 | send_data_cmd(LOW_BYTE(x1)); 212 | 213 | send_ctrl_cmd(0x2B); 214 | send_data_cmd(HIGH_BYTE(y0)); 215 | send_data_cmd(LOW_BYTE(y0)); 216 | send_data_cmd(HIGH_BYTE(y1)); 217 | send_data_cmd(LOW_BYTE(y1)); 218 | 219 | // Write To GRAM 220 | send_ctrl_cmd(0x2C); 221 | } 222 | 223 | 224 | // --------------------------------------------------------------------------- 225 | // Get LCM Driver Hooks 226 | // --------------------------------------------------------------------------- 227 | LCM_DRIVER ili9481_lcm_drv = 228 | { 229 | .name = "ili9481", 230 | .set_util_funcs = lcm_set_util_funcs, 231 | .get_params = lcm_get_params, 232 | .init = lcm_init, 233 | .suspend = lcm_suspend, 234 | .resume = lcm_resume, 235 | .update = lcm_update, 236 | }; 237 | -------------------------------------------------------------------------------- /bp070ws1/bp070ws1.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #endif 4 | #ifdef BUILD_LK 5 | #include 6 | #else 7 | #include 8 | #endif 9 | 10 | #include "lcm_drv.h" 11 | 12 | 13 | // --------------------------------------------------------------------------- 14 | // Local Constants 15 | // --------------------------------------------------------------------------- 16 | 17 | #define FRAME_WIDTH (1024) 18 | #define FRAME_HEIGHT (600) 19 | 20 | #define GPIO_DISP_PWR_EN GPIO139 21 | #define GPIO_PWR_3V3_EN GPIO142 22 | #define GPIO_LCD_LDO_EN GPIO116 23 | #define GPIO_LVDS_SHUTDOWN GPIO133 24 | 25 | // --------------------------------------------------------------------------- 26 | // Local Variables 27 | // --------------------------------------------------------------------------- 28 | 29 | static LCM_UTIL_FUNCS lcm_util = {0}; 30 | 31 | #define SET_RESET_PIN(v) (mt_set_reset_pin((v))) 32 | 33 | #define UDELAY(n) (lcm_util.udelay(n)) 34 | #define MDELAY(n) (lcm_util.mdelay(n)) 35 | 36 | 37 | // --------------------------------------------------------------------------- 38 | // Local Functions 39 | // --------------------------------------------------------------------------- 40 | 41 | static __inline void send_ctrl_cmd(unsigned int cmd) 42 | { 43 | 44 | } 45 | 46 | static __inline void send_data_cmd(unsigned int data) 47 | { 48 | 49 | } 50 | 51 | static __inline void set_lcm_register(unsigned int regIndex, 52 | unsigned int regData) 53 | { 54 | 55 | } 56 | 57 | 58 | // --------------------------------------------------------------------------- 59 | // LCM Driver Implementations 60 | // --------------------------------------------------------------------------- 61 | 62 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 63 | { 64 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 65 | } 66 | 67 | 68 | static void lcm_get_params(LCM_PARAMS *params) 69 | { 70 | memset(params, 0, sizeof(LCM_PARAMS)); 71 | 72 | params->type = LCM_TYPE_DPI; 73 | params->ctrl = LCM_CTRL_SERIAL_DBI; 74 | params->width = FRAME_WIDTH; 75 | params->height = FRAME_HEIGHT; 76 | params->io_select_mode = 0; 77 | 78 | /* RGB interface configurations */ 79 | params->dpi.mipi_pll_clk_ref = 0; 80 | params->dpi.mipi_pll_clk_div1 = 0x80000081; //lvds pll 204.1M 81 | params->dpi.mipi_pll_clk_div2 = 0x800fb333; 82 | params->dpi.dpi_clk_div = 4; //{4,2}, pll/4=51.025M 83 | params->dpi.dpi_clk_duty = 2; 84 | 85 | params->dpi.clk_pol = LCM_POLARITY_FALLING; 86 | params->dpi.de_pol = LCM_POLARITY_RISING; 87 | params->dpi.vsync_pol = LCM_POLARITY_FALLING; 88 | params->dpi.hsync_pol = LCM_POLARITY_FALLING; 89 | 90 | params->dpi.hsync_pulse_width = 128; //HT=1344 91 | params->dpi.hsync_back_porch = 152; 92 | params->dpi.hsync_front_porch = 40; 93 | params->dpi.vsync_pulse_width = 5; //VT=635 94 | params->dpi.vsync_back_porch = 15; 95 | params->dpi.vsync_front_porch = 15; 96 | 97 | params->dpi.i2x_en = 0; 98 | 99 | params->dpi.format = LCM_DPI_FORMAT_RGB888; // format is 24 bit 100 | params->dpi.rgb_order = LCM_COLOR_ORDER_RGB; 101 | params->dpi.is_serial_output = 0; 102 | 103 | params->dpi.intermediat_buffer_num = 0; 104 | 105 | params->dpi.io_driving_current = LCM_DRIVING_CURRENT_6575_8MA; 106 | } 107 | 108 | 109 | static void lcm_init(void) 110 | { 111 | #ifdef BUILD_LK 112 | mt_set_gpio_mode(GPIO_DISP_PWR_EN, GPIO_MODE_00); 113 | mt_set_gpio_dir(GPIO_DISP_PWR_EN, GPIO_DIR_OUT); 114 | mt_set_gpio_out(GPIO_DISP_PWR_EN, GPIO_OUT_ONE); 115 | MDELAY(20); 116 | mt_set_gpio_mode(GPIO_PWR_3V3_EN, GPIO_MODE_00); 117 | mt_set_gpio_dir(GPIO_PWR_3V3_EN, GPIO_DIR_OUT); 118 | mt_set_gpio_out(GPIO_PWR_3V3_EN, GPIO_OUT_ONE); 119 | MDELAY(20); 120 | mt_set_gpio_mode(GPIO_LCD_LDO_EN, GPIO_MODE_00); 121 | mt_set_gpio_dir(GPIO_LCD_LDO_EN, GPIO_DIR_OUT); 122 | mt_set_gpio_out(GPIO_LCD_LDO_EN, GPIO_OUT_ONE); 123 | MDELAY(20); 124 | mt_set_gpio_mode(GPIO_LVDS_SHUTDOWN, GPIO_MODE_00); 125 | mt_set_gpio_dir(GPIO_LVDS_SHUTDOWN, GPIO_DIR_OUT); 126 | mt_set_gpio_out(GPIO_LVDS_SHUTDOWN, GPIO_OUT_ONE); 127 | MDELAY(20); 128 | #elif (defined BUILD_UBOOT) 129 | // do nothing in uboot 130 | #else 131 | mt_set_gpio_mode(GPIO_DISP_PWR_EN, GPIO_MODE_00); 132 | mt_set_gpio_dir(GPIO_DISP_PWR_EN, GPIO_DIR_OUT); 133 | mt_set_gpio_out(GPIO_DISP_PWR_EN, GPIO_OUT_ONE); 134 | MDELAY(20); 135 | mt_set_gpio_mode(GPIO_PWR_3V3_EN, GPIO_MODE_00); 136 | mt_set_gpio_dir(GPIO_PWR_3V3_EN, GPIO_DIR_OUT); 137 | mt_set_gpio_out(GPIO_PWR_3V3_EN, GPIO_OUT_ONE); 138 | MDELAY(20); 139 | mt_set_gpio_mode(GPIO_LCD_LDO_EN, GPIO_MODE_00); 140 | mt_set_gpio_dir(GPIO_LCD_LDO_EN, GPIO_DIR_OUT); 141 | mt_set_gpio_out(GPIO_LCD_LDO_EN, GPIO_OUT_ONE); 142 | MDELAY(20); 143 | mt_set_gpio_mode(GPIO_LVDS_SHUTDOWN, GPIO_MODE_00); 144 | mt_set_gpio_dir(GPIO_LVDS_SHUTDOWN, GPIO_DIR_OUT); 145 | mt_set_gpio_out(GPIO_LVDS_SHUTDOWN, GPIO_OUT_ONE); 146 | MDELAY(20); 147 | #endif 148 | } 149 | 150 | 151 | static void lcm_suspend(void) 152 | { 153 | mt_set_gpio_mode(GPIO_LVDS_SHUTDOWN, GPIO_MODE_00); 154 | mt_set_gpio_dir(GPIO_LVDS_SHUTDOWN, GPIO_DIR_OUT); 155 | mt_set_gpio_out(GPIO_LVDS_SHUTDOWN, GPIO_OUT_ZERO); 156 | MDELAY(20); 157 | mt_set_gpio_mode(GPIO_LCD_LDO_EN, GPIO_MODE_00); 158 | mt_set_gpio_dir(GPIO_LCD_LDO_EN, GPIO_DIR_OUT); 159 | mt_set_gpio_out(GPIO_LCD_LDO_EN, GPIO_OUT_ZERO); 160 | MDELAY(20); 161 | mt_set_gpio_mode(GPIO_PWR_3V3_EN, GPIO_MODE_00); 162 | mt_set_gpio_dir(GPIO_PWR_3V3_EN, GPIO_DIR_OUT); 163 | mt_set_gpio_out(GPIO_PWR_3V3_EN, GPIO_OUT_ZERO); 164 | MDELAY(20); 165 | mt_set_gpio_mode(GPIO_DISP_PWR_EN, GPIO_MODE_00); 166 | mt_set_gpio_dir(GPIO_DISP_PWR_EN, GPIO_DIR_OUT); 167 | mt_set_gpio_out(GPIO_DISP_PWR_EN, GPIO_OUT_ZERO); 168 | MDELAY(20); 169 | } 170 | 171 | 172 | static void lcm_resume(void) 173 | { 174 | mt_set_gpio_mode(GPIO_DISP_PWR_EN, GPIO_MODE_00); 175 | mt_set_gpio_dir(GPIO_DISP_PWR_EN, GPIO_DIR_OUT); 176 | mt_set_gpio_out(GPIO_DISP_PWR_EN, GPIO_OUT_ONE); 177 | MDELAY(20); 178 | mt_set_gpio_mode(GPIO_PWR_3V3_EN, GPIO_MODE_00); 179 | mt_set_gpio_dir(GPIO_PWR_3V3_EN, GPIO_DIR_OUT); 180 | mt_set_gpio_out(GPIO_PWR_3V3_EN, GPIO_OUT_ONE); 181 | MDELAY(20); 182 | mt_set_gpio_mode(GPIO_LCD_LDO_EN, GPIO_MODE_00); 183 | mt_set_gpio_dir(GPIO_LCD_LDO_EN, GPIO_DIR_OUT); 184 | mt_set_gpio_out(GPIO_LCD_LDO_EN, GPIO_OUT_ONE); 185 | MDELAY(20); 186 | mt_set_gpio_mode(GPIO_LVDS_SHUTDOWN, GPIO_MODE_00); 187 | mt_set_gpio_dir(GPIO_LVDS_SHUTDOWN, GPIO_DIR_OUT); 188 | mt_set_gpio_out(GPIO_LVDS_SHUTDOWN, GPIO_OUT_ONE); 189 | MDELAY(20); 190 | } 191 | 192 | LCM_DRIVER bp070ws1_lcm_drv = 193 | { 194 | .name = "bp070ws1", 195 | .set_util_funcs = lcm_set_util_funcs, 196 | .get_params = lcm_get_params, 197 | .init = lcm_init, 198 | .suspend = lcm_suspend, 199 | .resume = lcm_resume, 200 | }; 201 | 202 | -------------------------------------------------------------------------------- /HSD070PFW3_8135/HSD070PFW3_8135.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #else 4 | #include 5 | #endif 6 | #ifdef BUILD_LK 7 | #include 8 | #include 9 | #include 10 | #elif (defined BUILD_UBOOT) 11 | #include 12 | #else 13 | #include 14 | #include 15 | #include 16 | #endif 17 | #include "lcm_drv.h" 18 | #include "mt8193_lvds.h" 19 | 20 | // --------------------------------------------------------------------------- 21 | // Local Constants 22 | // --------------------------------------------------------------------------- 23 | 24 | #define FRAME_WIDTH (1024) 25 | #define FRAME_HEIGHT (600) 26 | 27 | #define GPIO_LCD_RST_EN GPIO65 28 | #define GPIO_LCD_STB_EN GPIO66 29 | 30 | #define HSYNC_PULSE_WIDTH 128 31 | #define HSYNC_BACK_PORCH 152 32 | #define HSYNC_FRONT_PORCH 40 33 | #define VSYNC_PULSE_WIDTH 6 34 | #define VSYNC_BACK_PORCH 16 35 | #define VSYNC_FRONT_PORCH 14 36 | 37 | 38 | // --------------------------------------------------------------------------- 39 | // Local Variables 40 | // --------------------------------------------------------------------------- 41 | 42 | static LCM_UTIL_FUNCS lcm_util = //{0}; 43 | { 44 | .set_reset_pin = NULL, 45 | .udelay = NULL, 46 | .mdelay = NULL, 47 | }; 48 | 49 | #define SET_RESET_PIN(v) (mt_set_reset_pin((v))) 50 | 51 | #define UDELAY(n) 52 | #define MDELAY(n) 53 | 54 | 55 | // --------------------------------------------------------------------------- 56 | // Local Functions 57 | // --------------------------------------------------------------------------- 58 | 59 | static __inline void send_ctrl_cmd(unsigned int cmd) 60 | { 61 | 62 | } 63 | 64 | static __inline void send_data_cmd(unsigned int data) 65 | { 66 | 67 | } 68 | 69 | static __inline void set_lcm_register(unsigned int regIndex, 70 | unsigned int regData) 71 | { 72 | 73 | } 74 | 75 | 76 | // --------------------------------------------------------------------------- 77 | // LCM Driver Implementations 78 | // --------------------------------------------------------------------------- 79 | 80 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 81 | { 82 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 83 | } 84 | 85 | static void lcm_get_params(LCM_PARAMS *params) 86 | { 87 | memset(params, 0, sizeof(LCM_PARAMS)); 88 | 89 | params->type = LCM_TYPE_DPI; 90 | params->ctrl = LCM_CTRL_SERIAL_DBI; 91 | params->width = FRAME_WIDTH; 92 | params->height = FRAME_HEIGHT; 93 | params->io_select_mode = 0; 94 | 95 | /* RGB interface configurations */ 96 | params->dpi.mipi_pll_clk_ref = 0; 97 | params->dpi.mipi_pll_clk_div1 = 0x80000101; //lvds pll 52M 98 | params->dpi.mipi_pll_clk_div2 = 0x800a0000; 99 | params->dpi.dpi_clk_div = 4; 100 | params->dpi.dpi_clk_duty = 2; 101 | 102 | params->dpi.clk_pol = LCM_POLARITY_FALLING; 103 | params->dpi.de_pol = LCM_POLARITY_RISING; 104 | params->dpi.vsync_pol = LCM_POLARITY_FALLING; 105 | params->dpi.hsync_pol = LCM_POLARITY_FALLING; 106 | 107 | params->dpi.hsync_pulse_width = HSYNC_PULSE_WIDTH; 108 | params->dpi.hsync_back_porch = HSYNC_BACK_PORCH; 109 | params->dpi.hsync_front_porch = HSYNC_FRONT_PORCH; 110 | params->dpi.vsync_pulse_width = VSYNC_PULSE_WIDTH; 111 | params->dpi.vsync_back_porch = VSYNC_BACK_PORCH; 112 | params->dpi.vsync_front_porch = VSYNC_FRONT_PORCH; 113 | 114 | params->dpi.i2x_en = 1; 115 | params->dpi.lvds_tx_en = 1; 116 | 117 | params->dpi.format = LCM_DPI_FORMAT_RGB888; // format is 24 bit 118 | params->dpi.rgb_order = LCM_COLOR_ORDER_RGB; 119 | params->dpi.is_serial_output = 0; 120 | 121 | params->dpi.intermediat_buffer_num = 0; 122 | 123 | params->dpi.io_driving_current = LCM_DRIVING_CURRENT_2MA; 124 | } 125 | 126 | 127 | static void lcm_init(void) 128 | { 129 | #ifdef BUILD_LK 130 | printf("[LK/LCM] lcm_init() enter\n"); 131 | //VGP6 3.3V 132 | pmic_config_interface(0x424, 0x1, 0x1, 15); 133 | pmic_config_interface(0x45a, 0x07, 0x07, 5); 134 | 135 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 136 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 137 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ONE); 138 | MDELAY(20); 139 | 140 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 141 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 142 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ONE); 143 | MDELAY(20); 144 | 145 | #elif (defined BUILD_UBOOT) 146 | // do nothing in uboot 147 | #else 148 | printk("[LCM] lcm_init() enter\n"); 149 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 150 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 151 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ONE); 152 | MDELAY(20); 153 | 154 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 155 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 156 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ONE); 157 | MDELAY(20); 158 | 159 | #endif 160 | 161 | } 162 | 163 | 164 | static void lcm_suspend(void) 165 | { 166 | #ifdef BUILD_LK 167 | printf("[LK/LCM] lcm_suspend() enter\n"); 168 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 169 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 170 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ZERO); 171 | MDELAY(20); 172 | 173 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 174 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 175 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ZERO); 176 | MDELAY(20); 177 | 178 | #elif (defined BUILD_UBOOT) 179 | // do nothing in uboot 180 | #else 181 | printk("[LCM] lcm_suspend() enter\n"); 182 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 183 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 184 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ZERO); 185 | MDELAY(20); 186 | 187 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 188 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 189 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ZERO); 190 | MDELAY(20); 191 | 192 | #endif 193 | 194 | } 195 | 196 | 197 | static void lcm_resume(void) 198 | { 199 | #ifdef BUILD_LK 200 | printf("[LK/LCM] lcm_resume() enter\n"); 201 | //VGP6 3.3V 202 | pmic_config_interface(0x424, 0x1, 0x1, 15); 203 | pmic_config_interface(0x45a, 0x07, 0x07, 5); 204 | 205 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 206 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 207 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ONE); 208 | MDELAY(20); 209 | 210 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 211 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 212 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ONE); 213 | MDELAY(20); 214 | 215 | #elif (defined BUILD_UBOOT) 216 | // do nothing in uboot 217 | #else 218 | printk("[LCM] lcm_resume() enter\n"); 219 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 220 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 221 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ONE); 222 | MDELAY(20); 223 | 224 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 225 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 226 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ONE); 227 | MDELAY(20); 228 | 229 | #endif 230 | 231 | } 232 | 233 | LCM_DRIVER hsd070pfw3_8135_lcm_drv = 234 | { 235 | .name = "HSD070PFW3_8135", 236 | .set_util_funcs = lcm_set_util_funcs, 237 | .get_params = lcm_get_params, 238 | .init = lcm_init, 239 | .suspend = lcm_suspend, 240 | .resume = lcm_resume, 241 | }; 242 | 243 | -------------------------------------------------------------------------------- /HJ101NA02A_8135/HJ101NA02A_8135.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #endif 4 | #ifdef BUILD_LK 5 | #include 6 | #include 7 | #include 8 | #elif (defined BUILD_UBOOT) 9 | #include 10 | #else 11 | #include 12 | #include 13 | #include 14 | #endif 15 | #include "lcm_drv.h" 16 | #include "mt8193_lvds.h" 17 | 18 | // --------------------------------------------------------------------------- 19 | // Local Constants 20 | // --------------------------------------------------------------------------- 21 | 22 | #define FRAME_WIDTH (1280) 23 | #define FRAME_HEIGHT (800) 24 | 25 | #define GPIO_LCD_RST_EN GPIO65 26 | #define GPIO_LCD_STB_EN GPIO66 27 | 28 | #define HSYNC_PULSE_WIDTH 64 29 | #define HSYNC_BACK_PORCH 44 30 | #define HSYNC_FRONT_PORCH 52 31 | #define VSYNC_PULSE_WIDTH 8 32 | #define VSYNC_BACK_PORCH 16 33 | #define VSYNC_FRONT_PORCH 14 34 | 35 | 36 | // --------------------------------------------------------------------------- 37 | // Local Variables 38 | // --------------------------------------------------------------------------- 39 | 40 | static LCM_UTIL_FUNCS lcm_util = {0}; 41 | 42 | #define SET_RESET_PIN(v) (mt_set_reset_pin((v))) 43 | 44 | #define UDELAY(n) 45 | #define MDELAY(n) 46 | 47 | 48 | // --------------------------------------------------------------------------- 49 | // Local Functions 50 | // --------------------------------------------------------------------------- 51 | 52 | static __inline void send_ctrl_cmd(unsigned int cmd) 53 | { 54 | 55 | } 56 | 57 | static __inline void send_data_cmd(unsigned int data) 58 | { 59 | 60 | } 61 | 62 | static __inline void set_lcm_register(unsigned int regIndex, 63 | unsigned int regData) 64 | { 65 | 66 | } 67 | 68 | 69 | // --------------------------------------------------------------------------- 70 | // LCM Driver Implementations 71 | // --------------------------------------------------------------------------- 72 | 73 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 74 | { 75 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 76 | } 77 | 78 | static void lcm_get_params(LCM_PARAMS *params) 79 | { 80 | memset(params, 0, sizeof(LCM_PARAMS)); 81 | 82 | params->type = LCM_TYPE_DPI; 83 | params->ctrl = LCM_CTRL_SERIAL_DBI; 84 | params->width = FRAME_WIDTH; 85 | params->height = FRAME_HEIGHT; 86 | params->io_select_mode = 0; 87 | 88 | /* RGB interface configurations */ 89 | params->dpi.mipi_pll_clk_ref = 0; 90 | params->dpi.mipi_pll_clk_div1 = 0x80000101; //lvds pll 65M 91 | params->dpi.mipi_pll_clk_div2 = 0x800a0000; 92 | params->dpi.dpi_clk_div = 2; 93 | params->dpi.dpi_clk_duty = 1; 94 | 95 | params->dpi.clk_pol = LCM_POLARITY_FALLING; 96 | params->dpi.de_pol = LCM_POLARITY_RISING; 97 | params->dpi.vsync_pol = LCM_POLARITY_FALLING; 98 | params->dpi.hsync_pol = LCM_POLARITY_FALLING; 99 | 100 | params->dpi.hsync_pulse_width = HSYNC_PULSE_WIDTH; 101 | params->dpi.hsync_back_porch = HSYNC_BACK_PORCH; 102 | params->dpi.hsync_front_porch = HSYNC_FRONT_PORCH; 103 | params->dpi.vsync_pulse_width = VSYNC_PULSE_WIDTH; 104 | params->dpi.vsync_back_porch = VSYNC_BACK_PORCH; 105 | params->dpi.vsync_front_porch = VSYNC_FRONT_PORCH; 106 | 107 | params->dpi.i2x_en = 1; 108 | params->dpi.lvds_tx_en = 1; 109 | 110 | params->dpi.format = LCM_DPI_FORMAT_RGB888; // format is 24 bit 111 | params->dpi.rgb_order = LCM_COLOR_ORDER_RGB; 112 | params->dpi.is_serial_output = 0; 113 | 114 | params->dpi.intermediat_buffer_num = 0; 115 | 116 | params->dpi.io_driving_current = LCM_DRIVING_CURRENT_2MA; 117 | } 118 | 119 | 120 | static void lcm_init(void) 121 | { 122 | #ifdef BUILD_LK 123 | printf("[LK/LCM] lcm_init() enter\n"); 124 | //VGP6 3.3V 125 | pmic_config_interface(0x424, 0x1, 0x1, 15); 126 | pmic_config_interface(0x45a, 0x07, 0x07, 5); 127 | 128 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 129 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 130 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ONE); 131 | MDELAY(20); 132 | 133 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 134 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 135 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ONE); 136 | MDELAY(20); 137 | 138 | #elif (defined BUILD_UBOOT) 139 | // do nothing in uboot 140 | #else 141 | printk("[LCM] lcm_init() enter\n"); 142 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 143 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 144 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ONE); 145 | MDELAY(20); 146 | 147 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 148 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 149 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ONE); 150 | MDELAY(20); 151 | 152 | #endif 153 | 154 | } 155 | 156 | 157 | static void lcm_suspend(void) 158 | { 159 | #ifdef BUILD_LK 160 | printf("[LK/LCM] lcm_suspend() enter\n"); 161 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 162 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 163 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ZERO); 164 | MDELAY(20); 165 | 166 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 167 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 168 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ZERO); 169 | MDELAY(20); 170 | 171 | #elif (defined BUILD_UBOOT) 172 | // do nothing in uboot 173 | #else 174 | printk("[LCM] lcm_suspend() enter\n"); 175 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 176 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 177 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ZERO); 178 | MDELAY(20); 179 | 180 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 181 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 182 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ZERO); 183 | MDELAY(20); 184 | 185 | #endif 186 | 187 | } 188 | 189 | 190 | static void lcm_resume(void) 191 | { 192 | #ifdef BUILD_LK 193 | printf("[LK/LCM] lcm_resume() enter\n"); 194 | //VGP6 3.3V 195 | pmic_config_interface(0x424, 0x1, 0x1, 15); 196 | pmic_config_interface(0x45a, 0x07, 0x07, 5); 197 | 198 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 199 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 200 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ONE); 201 | MDELAY(20); 202 | 203 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 204 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 205 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ONE); 206 | MDELAY(20); 207 | 208 | #elif (defined BUILD_UBOOT) 209 | // do nothing in uboot 210 | #else 211 | printk("[LCM] lcm_resume() enter\n"); 212 | mt_set_gpio_mode(GPIO_LCD_RST_EN, GPIO_MODE_00); 213 | mt_set_gpio_dir(GPIO_LCD_RST_EN, GPIO_DIR_OUT); 214 | mt_set_gpio_out(GPIO_LCD_RST_EN, GPIO_OUT_ONE); 215 | MDELAY(20); 216 | 217 | mt_set_gpio_mode(GPIO_LCD_STB_EN, GPIO_MODE_00); 218 | mt_set_gpio_dir(GPIO_LCD_STB_EN, GPIO_DIR_OUT); 219 | mt_set_gpio_out(GPIO_LCD_STB_EN, GPIO_OUT_ONE); 220 | MDELAY(20); 221 | 222 | #endif 223 | 224 | } 225 | 226 | LCM_DRIVER hj101na02a_8135_lcm_drv = 227 | { 228 | .name = "HJ101NA02A_8135", 229 | .set_util_funcs = lcm_set_util_funcs, 230 | .get_params = lcm_get_params, 231 | .init = lcm_init, 232 | .suspend = lcm_suspend, 233 | .resume = lcm_resume, 234 | }; 235 | 236 | -------------------------------------------------------------------------------- /it6151_lp079qx1_edp_dsi_video/it6151_i2c.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | /********************************************************** 26 | * 27 | * [I2C Slave Setting] 28 | * 29 | *********************************************************/ 30 | #define IT6151_EDP_SLAVE_ADDR_WRITE (0x5C << 0) 31 | #define IT6151_MIPIRX_SLAVE_ADDR_WRITE (0x6C << 0) 32 | 33 | #define DEVICE_NAME "IT6151" 34 | 35 | static struct i2c_client *it6151_mipirx = NULL; 36 | static struct i2c_client *it6151_edp = NULL; 37 | 38 | static const struct i2c_device_id it6151_i2c_id[] = 39 | { 40 | {"it6151_edp", 1}, 41 | {"it6151_mipirx", 1}, 42 | }; 43 | 44 | static int it6151_i2c_driver_probe(struct i2c_client *client, const struct i2c_device_id *id); 45 | 46 | static struct i2c_driver it6151_i2c_driver = { 47 | .driver = { 48 | .name = DEVICE_NAME, 49 | }, 50 | .probe = it6151_i2c_driver_probe, 51 | .id_table = it6151_i2c_id, 52 | }; 53 | 54 | /********************************************************** 55 | * 56 | * [Global Variable] 57 | * 58 | *********************************************************/ 59 | static DEFINE_MUTEX(it6151_i2c_access); 60 | /********************************************************** 61 | * 62 | * [I2C Function For Read/Write fan5405] 63 | * 64 | *********************************************************/ 65 | int it6151_i2c_read_byte(kal_uint8 dev_addr, kal_uint8 addr, kal_uint8 *returnData) 66 | { 67 | char cmd_buf[1]={0x00}; 68 | char readData = 0; 69 | int ret=0; 70 | 71 | #ifdef IT6151_DEBUG 72 | /* dump write_data for check */ 73 | printk("[KE/it6151_read_byte] dev_addr = 0x%x, read_data[0x%x] = 0x%x \n", dev_addr, addr, *returnData); 74 | #endif 75 | 76 | mutex_lock(&it6151_i2c_access); 77 | 78 | if(dev_addr == IT6151_MIPIRX_SLAVE_ADDR_WRITE) 79 | { 80 | it6151_mipirx->ext_flag=((it6151_mipirx->ext_flag) & I2C_MASK_FLAG ) | I2C_WR_FLAG | I2C_DIRECTION_FLAG; 81 | 82 | cmd_buf[0] = addr; 83 | ret = i2c_master_send(it6151_mipirx, &cmd_buf[0], (1<<8 | 1)); 84 | 85 | if (ret < 0) 86 | { 87 | it6151_mipirx->ext_flag=0; 88 | 89 | mutex_unlock(&it6151_i2c_access); 90 | 91 | return 0; 92 | } 93 | 94 | readData = cmd_buf[0]; 95 | *returnData = readData; 96 | 97 | it6151_mipirx->ext_flag=0; 98 | } 99 | else if(dev_addr == IT6151_EDP_SLAVE_ADDR_WRITE) 100 | { 101 | it6151_edp->ext_flag=((it6151_edp->ext_flag) & I2C_MASK_FLAG ) | I2C_WR_FLAG | I2C_DIRECTION_FLAG; 102 | 103 | cmd_buf[0] = addr; 104 | ret = i2c_master_send(it6151_edp, &cmd_buf[0], (1<<8 | 1)); 105 | 106 | if (ret < 0) 107 | { 108 | it6151_edp->ext_flag=0; 109 | 110 | mutex_unlock(&it6151_i2c_access); 111 | 112 | return 0; 113 | } 114 | 115 | readData = cmd_buf[0]; 116 | *returnData = readData; 117 | 118 | it6151_edp->ext_flag=0; 119 | } 120 | else 121 | { 122 | printk("[it6151_i2c_read_byte]error: no this dev_addr! \n"); 123 | } 124 | 125 | mutex_unlock(&it6151_i2c_access); 126 | 127 | return 1; 128 | } 129 | 130 | int it6151_i2c_write_byte(kal_uint8 dev_addr, kal_uint8 addr, kal_uint8 writeData) 131 | { 132 | char write_data[2] = {0}; 133 | int ret=0; 134 | 135 | #ifdef IT6151_DEBUG 136 | /* dump write_data for check */ 137 | printk("[KE/it6151_i2c_write] dev_addr = 0x%x, write_data[0x%x] = 0x%x \n", dev_addr, addr, writeData); 138 | #endif 139 | 140 | mutex_lock(&it6151_i2c_access); 141 | 142 | write_data[0] = addr; 143 | write_data[1] = writeData; 144 | 145 | if(dev_addr == IT6151_MIPIRX_SLAVE_ADDR_WRITE) 146 | { 147 | it6151_mipirx->addr = IT6151_MIPIRX_SLAVE_ADDR_WRITE; 148 | it6151_mipirx->ext_flag=((it6151_mipirx->ext_flag) & I2C_MASK_FLAG) | I2C_DIRECTION_FLAG; 149 | 150 | ret = i2c_master_send(it6151_mipirx, write_data, 2); 151 | 152 | if(ret < 0) 153 | { 154 | it6151_mipirx->ext_flag=0; 155 | mutex_unlock(&it6151_i2c_access); 156 | 157 | return 0; 158 | } 159 | 160 | it6151_mipirx->ext_flag=0; 161 | } 162 | else if(dev_addr == IT6151_EDP_SLAVE_ADDR_WRITE) 163 | { 164 | it6151_edp->addr = IT6151_EDP_SLAVE_ADDR_WRITE; 165 | it6151_edp->ext_flag=((it6151_edp->ext_flag) & I2C_MASK_FLAG) | I2C_DIRECTION_FLAG; 166 | 167 | ret = i2c_master_send(it6151_edp, write_data, 2); 168 | 169 | if (ret < 0) 170 | { 171 | it6151_edp->ext_flag=0; 172 | mutex_unlock(&it6151_i2c_access); 173 | 174 | return 0; 175 | } 176 | 177 | it6151_edp->ext_flag=0; 178 | } 179 | else 180 | { 181 | printk("[it6151_i2c_write_byte]error: no this dev_addr! \n"); 182 | } 183 | 184 | mutex_unlock(&it6151_i2c_access); 185 | 186 | return 1; 187 | } 188 | 189 | static int match_id(const struct i2c_client *client, const struct i2c_device_id *id) 190 | { 191 | if (strcmp(client->name, id->name) == 0) 192 | return true; 193 | else 194 | return false; 195 | } 196 | 197 | static int it6151_i2c_driver_probe(struct i2c_client *client, const struct i2c_device_id *id) 198 | { 199 | int err=0; 200 | 201 | printk("[it6151_i2c_driver_probe] start!\n"); 202 | 203 | if(match_id(client, &it6151_i2c_id[0])) 204 | { 205 | if (!(it6151_mipirx = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) 206 | { 207 | err = -ENOMEM; 208 | goto exit; 209 | } 210 | 211 | memset(it6151_mipirx, 0, sizeof(struct i2c_client)); 212 | 213 | it6151_mipirx = client; 214 | } 215 | else if(match_id(client, &it6151_i2c_id[1])) 216 | { 217 | if (!(it6151_edp = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) 218 | { 219 | err = -ENOMEM; 220 | goto exit; 221 | } 222 | 223 | memset(it6151_edp, 0, sizeof(struct i2c_client)); 224 | 225 | it6151_edp = client; 226 | } 227 | else 228 | { 229 | printk("[it6151_i2c_driver_probe] error!\n"); 230 | 231 | err = -EIO; 232 | goto exit; 233 | } 234 | 235 | printk("[it6151_i2c_driver_probe] %s i2c sucess!\n", client->name); 236 | 237 | return 0; 238 | 239 | exit: 240 | return err; 241 | 242 | } 243 | 244 | #define IT6151_BUSNUM 1 245 | 246 | static struct i2c_board_info __initdata it6151_I2C[] = 247 | { 248 | {I2C_BOARD_INFO("it6151_edp", IT6151_EDP_SLAVE_ADDR_WRITE)}, 249 | {I2C_BOARD_INFO("it6151_mipirx", IT6151_MIPIRX_SLAVE_ADDR_WRITE)}, 250 | }; 251 | 252 | static int __init it6151_init(void) 253 | { 254 | printk("[it6151_init] init start\n"); 255 | 256 | i2c_register_board_info(IT6151_BUSNUM, it6151_I2C, 2); 257 | 258 | if(i2c_add_driver(&it6151_i2c_driver)!=0) 259 | { 260 | printk("[it6151_init] failed to register it6151 i2c driver.\n"); 261 | } 262 | else 263 | { 264 | printk("[it6151_init] Success to register it6151 i2c driver.\n"); 265 | } 266 | 267 | return 0; 268 | } 269 | 270 | static void __exit it6151_exit(void) 271 | { 272 | i2c_del_driver(&it6151_i2c_driver); 273 | } 274 | 275 | module_init(it6151_init); 276 | module_exit(it6151_exit); 277 | 278 | MODULE_LICENSE("GPL"); 279 | MODULE_DESCRIPTION("I2C it6151 Driver"); 280 | MODULE_AUTHOR("James Lo"); 281 | #endif 282 | -------------------------------------------------------------------------------- /it6151_lp079qx1_edp_dsi_video_8163evb/it6151_i2c.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | /********************************************************** 26 | * 27 | * [I2C Slave Setting] 28 | * 29 | *********************************************************/ 30 | #define IT6151_EDP_SLAVE_ADDR_WRITE (0x5C << 0) 31 | #define IT6151_MIPIRX_SLAVE_ADDR_WRITE (0x6C << 0) 32 | 33 | #define DEVICE_NAME "IT6151" 34 | 35 | static struct i2c_client *it6151_mipirx = NULL; 36 | static struct i2c_client *it6151_edp = NULL; 37 | 38 | static const struct i2c_device_id it6151_i2c_id[] = 39 | { 40 | {"it6151_edp", 1}, 41 | {"it6151_mipirx", 1}, 42 | }; 43 | 44 | static int it6151_i2c_driver_probe(struct i2c_client *client, const struct i2c_device_id *id); 45 | 46 | static struct i2c_driver it6151_i2c_driver = { 47 | .driver = { 48 | .name = DEVICE_NAME, 49 | }, 50 | .probe = it6151_i2c_driver_probe, 51 | .id_table = it6151_i2c_id, 52 | }; 53 | 54 | /********************************************************** 55 | * 56 | * [Global Variable] 57 | * 58 | *********************************************************/ 59 | static DEFINE_MUTEX(it6151_i2c_access); 60 | /********************************************************** 61 | * 62 | * [I2C Function For Read/Write fan5405] 63 | * 64 | *********************************************************/ 65 | int it6151_i2c_read_byte(kal_uint8 dev_addr, kal_uint8 addr, kal_uint8 *returnData) 66 | { 67 | char cmd_buf[1]={0x00}; 68 | char readData = 0; 69 | int ret=0; 70 | 71 | #ifdef IT6151_DEBUG 72 | /* dump write_data for check */ 73 | printk("[KE/it6151_read_byte] dev_addr = 0x%x, read_data[0x%x] = 0x%x \n", dev_addr, addr, *returnData); 74 | #endif 75 | 76 | mutex_lock(&it6151_i2c_access); 77 | 78 | if(dev_addr == IT6151_MIPIRX_SLAVE_ADDR_WRITE) 79 | { 80 | it6151_mipirx->ext_flag=((it6151_mipirx->ext_flag) & I2C_MASK_FLAG ) | I2C_WR_FLAG | I2C_DIRECTION_FLAG; 81 | 82 | cmd_buf[0] = addr; 83 | ret = i2c_master_send(it6151_mipirx, &cmd_buf[0], (1<<8 | 1)); 84 | 85 | if (ret < 0) 86 | { 87 | it6151_mipirx->ext_flag=0; 88 | 89 | mutex_unlock(&it6151_i2c_access); 90 | 91 | return 0; 92 | } 93 | 94 | readData = cmd_buf[0]; 95 | *returnData = readData; 96 | 97 | it6151_mipirx->ext_flag=0; 98 | } 99 | else if(dev_addr == IT6151_EDP_SLAVE_ADDR_WRITE) 100 | { 101 | it6151_edp->ext_flag=((it6151_edp->ext_flag) & I2C_MASK_FLAG ) | I2C_WR_FLAG | I2C_DIRECTION_FLAG; 102 | 103 | cmd_buf[0] = addr; 104 | ret = i2c_master_send(it6151_edp, &cmd_buf[0], (1<<8 | 1)); 105 | 106 | if (ret < 0) 107 | { 108 | it6151_edp->ext_flag=0; 109 | 110 | mutex_unlock(&it6151_i2c_access); 111 | 112 | return 0; 113 | } 114 | 115 | readData = cmd_buf[0]; 116 | *returnData = readData; 117 | 118 | it6151_edp->ext_flag=0; 119 | } 120 | else 121 | { 122 | printk("[it6151_i2c_read_byte]error: no this dev_addr! \n"); 123 | } 124 | 125 | mutex_unlock(&it6151_i2c_access); 126 | 127 | return 1; 128 | } 129 | 130 | int it6151_i2c_write_byte(kal_uint8 dev_addr, kal_uint8 addr, kal_uint8 writeData) 131 | { 132 | char write_data[2] = {0}; 133 | int ret=0; 134 | 135 | #ifdef IT6151_DEBUG 136 | /* dump write_data for check */ 137 | printk("[KE/it6151_i2c_write] dev_addr = 0x%x, write_data[0x%x] = 0x%x \n", dev_addr, addr, writeData); 138 | #endif 139 | 140 | mutex_lock(&it6151_i2c_access); 141 | 142 | write_data[0] = addr; 143 | write_data[1] = writeData; 144 | 145 | if(dev_addr == IT6151_MIPIRX_SLAVE_ADDR_WRITE) 146 | { 147 | it6151_mipirx->addr = IT6151_MIPIRX_SLAVE_ADDR_WRITE; 148 | it6151_mipirx->ext_flag=((it6151_mipirx->ext_flag) & I2C_MASK_FLAG) | I2C_DIRECTION_FLAG; 149 | 150 | ret = i2c_master_send(it6151_mipirx, write_data, 2); 151 | 152 | if(ret < 0) 153 | { 154 | it6151_mipirx->ext_flag=0; 155 | mutex_unlock(&it6151_i2c_access); 156 | 157 | return 0; 158 | } 159 | 160 | it6151_mipirx->ext_flag=0; 161 | } 162 | else if(dev_addr == IT6151_EDP_SLAVE_ADDR_WRITE) 163 | { 164 | it6151_edp->addr = IT6151_EDP_SLAVE_ADDR_WRITE; 165 | it6151_edp->ext_flag=((it6151_edp->ext_flag) & I2C_MASK_FLAG) | I2C_DIRECTION_FLAG; 166 | 167 | ret = i2c_master_send(it6151_edp, write_data, 2); 168 | 169 | if (ret < 0) 170 | { 171 | it6151_edp->ext_flag=0; 172 | mutex_unlock(&it6151_i2c_access); 173 | 174 | return 0; 175 | } 176 | 177 | it6151_edp->ext_flag=0; 178 | } 179 | else 180 | { 181 | printk("[it6151_i2c_write_byte]error: no this dev_addr! \n"); 182 | } 183 | 184 | mutex_unlock(&it6151_i2c_access); 185 | 186 | return 1; 187 | } 188 | 189 | static int match_id(const struct i2c_client *client, const struct i2c_device_id *id) 190 | { 191 | if (strcmp(client->name, id->name) == 0) 192 | return true; 193 | else 194 | return false; 195 | } 196 | 197 | static int it6151_i2c_driver_probe(struct i2c_client *client, const struct i2c_device_id *id) 198 | { 199 | int err=0; 200 | 201 | printk("[it6151_i2c_driver_probe] start!\n"); 202 | 203 | if(match_id(client, &it6151_i2c_id[0])) 204 | { 205 | if (!(it6151_mipirx = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) 206 | { 207 | err = -ENOMEM; 208 | goto exit; 209 | } 210 | 211 | memset(it6151_mipirx, 0, sizeof(struct i2c_client)); 212 | 213 | it6151_mipirx = client; 214 | } 215 | else if(match_id(client, &it6151_i2c_id[1])) 216 | { 217 | if (!(it6151_edp = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) 218 | { 219 | err = -ENOMEM; 220 | goto exit; 221 | } 222 | 223 | memset(it6151_edp, 0, sizeof(struct i2c_client)); 224 | 225 | it6151_edp = client; 226 | } 227 | else 228 | { 229 | printk("[it6151_i2c_driver_probe] error!\n"); 230 | 231 | err = -EIO; 232 | goto exit; 233 | } 234 | 235 | printk("[it6151_i2c_driver_probe] %s i2c sucess!\n", client->name); 236 | 237 | return 0; 238 | 239 | exit: 240 | return err; 241 | 242 | } 243 | 244 | #define IT6151_BUSNUM 0 245 | 246 | static struct i2c_board_info __initdata it6151_I2C[] = 247 | { 248 | {I2C_BOARD_INFO("it6151_edp", IT6151_EDP_SLAVE_ADDR_WRITE)}, 249 | {I2C_BOARD_INFO("it6151_mipirx", IT6151_MIPIRX_SLAVE_ADDR_WRITE)}, 250 | }; 251 | 252 | static int __init it6151_init(void) 253 | { 254 | printk("[it6151_init] init start\n"); 255 | 256 | i2c_register_board_info(IT6151_BUSNUM, it6151_I2C, 2); 257 | 258 | if(i2c_add_driver(&it6151_i2c_driver)!=0) 259 | { 260 | printk("[it6151_init] failed to register it6151 i2c driver.\n"); 261 | } 262 | else 263 | { 264 | printk("[it6151_init] Success to register it6151 i2c driver.\n"); 265 | } 266 | 267 | return 0; 268 | } 269 | 270 | static void __exit it6151_exit(void) 271 | { 272 | i2c_del_driver(&it6151_i2c_driver); 273 | } 274 | 275 | module_init(it6151_init); 276 | module_exit(it6151_exit); 277 | 278 | MODULE_LICENSE("GPL"); 279 | MODULE_DESCRIPTION("I2C it6151 Driver"); 280 | MODULE_AUTHOR("James Lo"); 281 | #endif 282 | -------------------------------------------------------------------------------- /hx8357B/hx8357b.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "lcm_drv.h" 4 | 5 | 6 | // --------------------------------------------------------------------------- 7 | // Local Constants 8 | // --------------------------------------------------------------------------- 9 | 10 | #define FRAME_WIDTH (320) 11 | #define FRAME_HEIGHT (480) 12 | 13 | 14 | // --------------------------------------------------------------------------- 15 | // Local Variables 16 | // --------------------------------------------------------------------------- 17 | 18 | static LCM_UTIL_FUNCS lcm_util = {0}; 19 | 20 | #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v))) 21 | 22 | #define UDELAY(n) (lcm_util.udelay(n)) 23 | #define MDELAY(n) (lcm_util.mdelay(n)) 24 | 25 | 26 | // --------------------------------------------------------------------------- 27 | // Local Functions 28 | // --------------------------------------------------------------------------- 29 | 30 | static __inline void send_ctrl_cmd(unsigned int cmd) 31 | { 32 | lcm_util.send_cmd(cmd); 33 | } 34 | 35 | static __inline void send_data_cmd(unsigned int data) 36 | { 37 | lcm_util.send_data(data); 38 | } 39 | 40 | static __inline void set_lcm_register(unsigned int regIndex, 41 | unsigned int regData) 42 | { 43 | send_ctrl_cmd(regIndex); 44 | send_data_cmd(regData); 45 | } 46 | 47 | static void init_lcm_registers(void) 48 | { 49 | send_ctrl_cmd(0x11); //Sleep Out 50 | MDELAY(300); 51 | 52 | send_ctrl_cmd(0xB4); //Set RM, DM 53 | send_data_cmd(0x00); 54 | 55 | send_ctrl_cmd(0xC8); //Set Gamma 56 | send_data_cmd(0x00); 57 | send_data_cmd(0x34); 58 | send_data_cmd(0x46); 59 | send_data_cmd(0x31); 60 | send_data_cmd(0x00); 61 | send_data_cmd(0x1A); 62 | send_data_cmd(0x12); 63 | send_data_cmd(0x34); 64 | send_data_cmd(0x77); 65 | send_data_cmd(0x13); 66 | send_data_cmd(0x0F); 67 | send_data_cmd(0x00); 68 | 69 | send_ctrl_cmd(0xD0); //Set Power 70 | send_data_cmd(0x51); //DDVDH 0X44 71 | send_data_cmd(0x42); 72 | send_data_cmd(0x0F); //VREG1 0X08 73 | 74 | send_ctrl_cmd(0xD1); //Set VCOM 75 | send_data_cmd(0x4F); //VCOMH 76 | send_data_cmd(0x1D); //VCOML 77 | 78 | send_ctrl_cmd(0xD2); //Set NOROW 79 | send_data_cmd(0x01); //SAP 80 | send_data_cmd(0x12); //DC10/00 81 | 82 | send_ctrl_cmd(0xE9); //Set Panel 83 | send_data_cmd(0x01); 84 | 85 | send_ctrl_cmd(0xEA); //Set STBA 86 | send_data_cmd(0x03); 87 | send_data_cmd(0x00); 88 | send_data_cmd(0x00); 89 | 90 | send_ctrl_cmd(0xEE); //Set EQ 91 | send_data_cmd(0x13); 92 | send_data_cmd(0x00); 93 | send_data_cmd(0x00); 94 | send_data_cmd(0x13); 95 | 96 | send_ctrl_cmd(0xED); //Set DIR TIM 97 | send_data_cmd(0x13); 98 | send_data_cmd(0x13); 99 | send_data_cmd(0xA2); 100 | send_data_cmd(0xA2); 101 | send_data_cmd(0xA3); 102 | send_data_cmd(0xA3); 103 | send_data_cmd(0x13); 104 | send_data_cmd(0x13); 105 | send_data_cmd(0x13); 106 | send_data_cmd(0x13); 107 | send_data_cmd(0xAE); 108 | send_data_cmd(0xAE); 109 | send_data_cmd(0x13); 110 | send_data_cmd(0xA2); 111 | send_data_cmd(0x13); 112 | 113 | send_ctrl_cmd(0x36); 114 | send_data_cmd(0x02); 115 | 116 | send_ctrl_cmd(0x3A); 117 | send_data_cmd(0x66); 118 | 119 | send_ctrl_cmd(0x51);//write display brightness 120 | send_data_cmd(0x70);//set brightness 0x00-0xff 121 | MDELAY(50); 122 | 123 | send_ctrl_cmd(0x53);//write ctrl display 124 | send_data_cmd(0x24); 125 | MDELAY(50); 126 | 127 | send_ctrl_cmd(0x55); 128 | send_data_cmd(0x01);//still picture 129 | MDELAY(50); 130 | 131 | send_ctrl_cmd(0x5e);//write CABC minumum brightness 132 | send_data_cmd(0x70);// 133 | MDELAY(50); 134 | 135 | send_ctrl_cmd(0xCA); //Set UI GAIN 136 | send_data_cmd(0x24); 137 | send_data_cmd(0x24); 138 | send_data_cmd(0x24); 139 | send_data_cmd(0x23); 140 | send_data_cmd(0x23); 141 | send_data_cmd(0x23); 142 | send_data_cmd(0x22); 143 | send_data_cmd(0x22); 144 | send_data_cmd(0x22); 145 | send_data_cmd(0x22); 146 | 147 | send_ctrl_cmd(0x11); 148 | MDELAY(120); 149 | } 150 | 151 | // --------------------------------------------------------------------------- 152 | // LCM Driver Implementations 153 | // --------------------------------------------------------------------------- 154 | 155 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 156 | { 157 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 158 | } 159 | 160 | 161 | static void lcm_get_params(LCM_PARAMS *params) 162 | { 163 | memset(params, 0, sizeof(LCM_PARAMS)); 164 | 165 | params->type = LCM_TYPE_DBI; 166 | params->ctrl = LCM_CTRL_PARALLEL_DBI; 167 | params->width = FRAME_WIDTH; 168 | params->height = FRAME_HEIGHT; 169 | params->io_select_mode = 3; 170 | 171 | params->dbi.port = 0; 172 | params->dbi.clock_freq = LCM_DBI_CLOCK_FREQ_104M; 173 | params->dbi.data_width = LCM_DBI_DATA_WIDTH_18BITS; 174 | params->dbi.data_format.color_order = LCM_COLOR_ORDER_RGB; 175 | params->dbi.data_format.trans_seq = LCM_DBI_TRANS_SEQ_MSB_FIRST; 176 | params->dbi.data_format.padding = LCM_DBI_PADDING_ON_MSB; 177 | params->dbi.data_format.format = LCM_DBI_FORMAT_RGB666; 178 | params->dbi.data_format.width = LCM_DBI_DATA_WIDTH_18BITS; 179 | params->dbi.cpu_write_bits = LCM_DBI_CPU_WRITE_32_BITS; 180 | params->dbi.io_driving_current = LCM_DRIVING_CURRENT_8MA; 181 | 182 | params->dbi.parallel.write_setup = 2; 183 | params->dbi.parallel.write_hold = 2; 184 | params->dbi.parallel.write_wait = 6; 185 | params->dbi.parallel.read_setup = 3; 186 | params->dbi.parallel.read_latency = 40; 187 | params->dbi.parallel.wait_period = 0; 188 | 189 | // enable tearing-free 190 | params->dbi.te_mode = LCM_DBI_TE_MODE_VSYNC_ONLY; 191 | params->dbi.te_edge_polarity = LCM_POLARITY_FALLING; 192 | } 193 | 194 | 195 | static void lcm_init(void) 196 | { 197 | SET_RESET_PIN(0); 198 | MDELAY(25); 199 | SET_RESET_PIN(1); 200 | MDELAY(50); 201 | init_lcm_registers(); 202 | 203 | //Set TE register 204 | send_ctrl_cmd(0x35); 205 | send_data_cmd(0x00); 206 | 207 | send_ctrl_cmd(0X0044); // Set TE signal delay scanline 208 | send_data_cmd(0X0000); // Set as 0-th scanline 209 | send_data_cmd(0X0000); 210 | //sw_clear_panel(0); 211 | } 212 | 213 | 214 | static void lcm_suspend(void) 215 | { 216 | send_ctrl_cmd(0x10); 217 | MDELAY(120); 218 | } 219 | 220 | 221 | static void lcm_resume(void) 222 | { 223 | send_ctrl_cmd(0x11); 224 | MDELAY(120); 225 | } 226 | 227 | static void lcm_update(unsigned int x, unsigned int y, 228 | unsigned int width, unsigned int height) 229 | { 230 | unsigned short x0, y0, x1, y1; 231 | unsigned short h_X_start,l_X_start,h_X_end,l_X_end,h_Y_start,l_Y_start,h_Y_end,l_Y_end; 232 | 233 | x0 = (unsigned short)x; 234 | y0 = (unsigned short)y; 235 | x1 = (unsigned short)x+width-1; 236 | y1 = (unsigned short)y+height-1; 237 | 238 | h_X_start=((x0&0xFF00)>>8); 239 | l_X_start=(x0&0x00FF); 240 | h_X_end=((x1&0xFF00)>>8); 241 | l_X_end=(x1&0x00FF); 242 | 243 | h_Y_start=((y0&0xFF00)>>8); 244 | l_Y_start=(y0&0x00FF); 245 | h_Y_end=((y1&0xFF00)>>8); 246 | l_Y_end=(y1&0x00FF); 247 | 248 | send_ctrl_cmd(0x2A); 249 | send_data_cmd(h_X_start); 250 | send_data_cmd(l_X_start); 251 | send_data_cmd(h_X_end); 252 | send_data_cmd(l_X_end); 253 | 254 | send_ctrl_cmd(0x2B); 255 | send_data_cmd(h_Y_start); 256 | send_data_cmd(l_Y_start); 257 | send_data_cmd(h_Y_end); 258 | send_data_cmd(l_Y_end); 259 | 260 | send_ctrl_cmd(0x29); 261 | 262 | send_ctrl_cmd(0x2C); 263 | } 264 | 265 | void lcm_setbacklight(unsigned int level) 266 | { 267 | if(level > 255) level = 255; 268 | send_ctrl_cmd(0x51); 269 | send_data_cmd(level); 270 | } 271 | 272 | LCM_DRIVER hx8357b_lcm_drv = 273 | { 274 | .name = "hx8357b", 275 | .set_util_funcs = lcm_set_util_funcs, 276 | .get_params = lcm_get_params, 277 | .init = lcm_init, 278 | .suspend = lcm_suspend, 279 | .resume = lcm_resume, 280 | .update = lcm_update, 281 | .set_backlight = lcm_setbacklight, 282 | }; 283 | -------------------------------------------------------------------------------- /lvds_wsvga_ti_n/lvds_wsvga_ti_n.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #endif 4 | #ifdef BUILD_LK 5 | #include 6 | #include 7 | #include 8 | #elif (defined BUILD_UBOOT) 9 | #else 10 | #include 11 | #include 12 | #include 13 | #endif 14 | #include "lcm_drv.h" 15 | 16 | 17 | // --------------------------------------------------------------------------- 18 | // Local Constants 19 | // --------------------------------------------------------------------------- 20 | 21 | #define FRAME_WIDTH (1024) 22 | #define FRAME_HEIGHT (600) 23 | 24 | 25 | // --------------------------------------------------------------------------- 26 | // Local Variables 27 | // --------------------------------------------------------------------------- 28 | 29 | static LCM_UTIL_FUNCS lcm_util = {0}; 30 | 31 | #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v))) 32 | 33 | #define UDELAY(n) (lcm_util.udelay(n)) 34 | #define MDELAY(n) (lcm_util.mdelay(n)) 35 | 36 | 37 | // --------------------------------------------------------------------------- 38 | // Local Functions 39 | // --------------------------------------------------------------------------- 40 | 41 | static __inline void send_ctrl_cmd(unsigned int cmd) 42 | { 43 | unsigned char temp1 = (unsigned char)((cmd >> 8) & 0xFF); 44 | unsigned char temp2 = (unsigned char)(cmd & 0xFF); 45 | 46 | lcm_util.send_data(0x2000 | temp1); 47 | lcm_util.send_data(0x0000 | temp2); 48 | } 49 | 50 | static __inline void send_data_cmd(unsigned int data) 51 | { 52 | lcm_util.send_data(0x0004 | data); 53 | } 54 | 55 | static __inline void set_lcm_register(unsigned int regIndex, 56 | unsigned int regData) 57 | { 58 | send_ctrl_cmd(regIndex); 59 | send_data_cmd(regData); 60 | } 61 | 62 | // --------------------------------------------------------------------------- 63 | // LCM Driver Implementations 64 | // --------------------------------------------------------------------------- 65 | 66 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 67 | { 68 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 69 | } 70 | 71 | 72 | static void lcm_get_params(LCM_PARAMS *params) 73 | { 74 | memset(params, 0, sizeof(LCM_PARAMS)); 75 | 76 | params->type = LCM_TYPE_DPI; 77 | params->ctrl = LCM_CTRL_SERIAL_DBI; 78 | params->width = FRAME_WIDTH; 79 | params->height = FRAME_HEIGHT; 80 | params->io_select_mode = 0; 81 | 82 | /* RGB interface configurations */ 83 | 84 | params->dpi.mipi_pll_clk_ref = 0; //the most important parameters: set pll clk to 66Mhz and dpi clk to 33Mhz 85 | params->dpi.mipi_pll_clk_div1 = 31; 86 | params->dpi.mipi_pll_clk_div2 = 4; 87 | params->dpi.dpi_clk_div = 2; 88 | params->dpi.dpi_clk_duty = 1; 89 | 90 | params->dpi.clk_pol = LCM_POLARITY_FALLING; 91 | params->dpi.de_pol = LCM_POLARITY_RISING; 92 | params->dpi.vsync_pol = LCM_POLARITY_FALLING; 93 | params->dpi.hsync_pol = LCM_POLARITY_FALLING; 94 | 95 | params->dpi.hsync_pulse_width = 128; 96 | params->dpi.hsync_back_porch = 152; 97 | params->dpi.hsync_front_porch = 40; 98 | params->dpi.vsync_pulse_width = 3; 99 | params->dpi.vsync_back_porch = 12; 100 | params->dpi.vsync_front_porch = 10; 101 | 102 | params->dpi.format = LCM_DPI_FORMAT_RGB888; // format is 24 bit 103 | params->dpi.rgb_order = LCM_COLOR_ORDER_RGB; 104 | params->dpi.is_serial_output = 0; 105 | 106 | params->dpi.intermediat_buffer_num = 2; 107 | 108 | params->dpi.io_driving_current = LCM_DRIVING_CURRENT_2MA; 109 | } 110 | 111 | 112 | static void lcm_init(void) 113 | { 114 | //SET_RESET_PIN(0); 115 | //MDELAY(10); 116 | //SET_RESET_PIN(1); //CH7035B reset control 117 | 118 | //lcm_util.set_gpio_mode(GPIO60, GPIO_MODE_00); 119 | //lcm_util.set_gpio_dir(GPIO60, GPIO_DIR_OUT); 120 | //lcm_util.set_gpio_out(GPIO60, GPIO_OUT_ONE); // HDMI_POWER_EN 121 | 122 | lcm_util.set_gpio_mode(GPIO48, GPIO_MODE_00); 123 | lcm_util.set_gpio_dir(GPIO48, GPIO_DIR_OUT); 124 | lcm_util.set_gpio_out(GPIO48, GPIO_OUT_ONE); // LCM_STBY 125 | MDELAY(5); 126 | lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); 127 | lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); 128 | lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN 129 | MDELAY(50); 130 | lcm_util.set_gpio_mode(GPIO49, GPIO_MODE_00); 131 | lcm_util.set_gpio_dir(GPIO49, GPIO_DIR_OUT); 132 | lcm_util.set_gpio_out(GPIO49, GPIO_OUT_ONE); // LCM_RST 133 | MDELAY(5); 134 | lcm_util.set_gpio_mode(GPIO51, GPIO_MODE_00); 135 | lcm_util.set_gpio_dir(GPIO51, GPIO_DIR_OUT); 136 | lcm_util.set_gpio_out(GPIO51, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N 137 | MDELAY(120); 138 | //lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); 139 | //lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); 140 | //lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE 141 | } 142 | 143 | 144 | static void lcm_suspend(void) 145 | { 146 | //SET_RESET_PIN(0); //CH7035B reset control 147 | 148 | //lcm_util.set_gpio_mode(GPIO60, GPIO_MODE_00); 149 | //lcm_util.set_gpio_dir(GPIO60, GPIO_DIR_OUT); 150 | //lcm_util.set_gpio_out(GPIO60, GPIO_OUT_ZERO); // HDMI_POWER_EN 151 | 152 | //lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); 153 | //lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); 154 | //lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ZERO); // LCM_BL_ENABLE 155 | //MDELAY(10); 156 | lcm_util.set_gpio_mode(GPIO51, GPIO_MODE_00); 157 | lcm_util.set_gpio_dir(GPIO51, GPIO_DIR_OUT); 158 | lcm_util.set_gpio_out(GPIO51, GPIO_OUT_ZERO); // LVDS_SHUTDOWN_N 159 | MDELAY(10); 160 | lcm_util.set_gpio_mode(GPIO48, GPIO_MODE_00); 161 | lcm_util.set_gpio_dir(GPIO48, GPIO_DIR_OUT); 162 | lcm_util.set_gpio_out(GPIO48, GPIO_OUT_ZERO); // LCM_STBY 163 | MDELAY(10); 164 | lcm_util.set_gpio_mode(GPIO49, GPIO_MODE_00); 165 | lcm_util.set_gpio_dir(GPIO49, GPIO_DIR_OUT); 166 | lcm_util.set_gpio_out(GPIO49, GPIO_OUT_ZERO); // LCM_RST 167 | MDELAY(10); 168 | lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); 169 | lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); 170 | lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ZERO); // LCM_VLED_EN 171 | MDELAY(60); // avoid LCD resume transint 172 | } 173 | 174 | 175 | static void lcm_resume(void) 176 | { 177 | //SET_RESET_PIN(1); //CH7035B reset control 178 | 179 | //lcm_util.set_gpio_mode(GPIO60, GPIO_MODE_00); 180 | //lcm_util.set_gpio_dir(GPIO60, GPIO_DIR_OUT); 181 | //lcm_util.set_gpio_out(GPIO60, GPIO_OUT_ONE); // HDMI_POWER_EN 182 | 183 | lcm_util.set_gpio_mode(GPIO48, GPIO_MODE_00); 184 | lcm_util.set_gpio_dir(GPIO48, GPIO_DIR_OUT); 185 | lcm_util.set_gpio_out(GPIO48, GPIO_OUT_ONE); // LCM_STBY 186 | MDELAY(5); 187 | lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); 188 | lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); 189 | lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN 190 | MDELAY(50); 191 | lcm_util.set_gpio_mode(GPIO49, GPIO_MODE_00); 192 | lcm_util.set_gpio_dir(GPIO49, GPIO_DIR_OUT); 193 | lcm_util.set_gpio_out(GPIO49, GPIO_OUT_ONE); // LCM_RST 194 | MDELAY(5); 195 | lcm_util.set_gpio_mode(GPIO51, GPIO_MODE_00); 196 | lcm_util.set_gpio_dir(GPIO51, GPIO_DIR_OUT); 197 | lcm_util.set_gpio_out(GPIO51, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N 198 | MDELAY(120); 199 | //lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); 200 | //lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); 201 | //lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE 202 | } 203 | 204 | LCM_DRIVER lvds_wsvga_ti_n_lcm_drv = 205 | { 206 | .name = "lvds_wsvga_ti_n", 207 | .set_util_funcs = lcm_set_util_funcs, 208 | .get_params = lcm_get_params, 209 | .init = lcm_init, 210 | .suspend = lcm_suspend, 211 | .resume = lcm_resume, 212 | }; 213 | 214 | -------------------------------------------------------------------------------- /lvds_wsvga_ti/lvds_wsvga_ti.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #endif 4 | #ifdef BUILD_LK 5 | #include 6 | #include 7 | #include 8 | #elif (defined BUILD_UBOOT) 9 | #else 10 | #include 11 | #include 12 | #include 13 | #endif 14 | #include "lcm_drv.h" 15 | 16 | 17 | // --------------------------------------------------------------------------- 18 | // Local Constants 19 | // --------------------------------------------------------------------------- 20 | 21 | #define FRAME_WIDTH (1024) 22 | #define FRAME_HEIGHT (600) 23 | 24 | 25 | // --------------------------------------------------------------------------- 26 | // Local Variables 27 | // --------------------------------------------------------------------------- 28 | 29 | static LCM_UTIL_FUNCS lcm_util = {0}; 30 | 31 | #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v))) 32 | 33 | #define UDELAY(n) (lcm_util.udelay(n)) 34 | #define MDELAY(n) (lcm_util.mdelay(n)) 35 | 36 | 37 | // --------------------------------------------------------------------------- 38 | // Local Functions 39 | // --------------------------------------------------------------------------- 40 | 41 | static __inline void send_ctrl_cmd(unsigned int cmd) 42 | { 43 | unsigned char temp1 = (unsigned char)((cmd >> 8) & 0xFF); 44 | unsigned char temp2 = (unsigned char)(cmd & 0xFF); 45 | 46 | lcm_util.send_data(0x2000 | temp1); 47 | lcm_util.send_data(0x0000 | temp2); 48 | } 49 | 50 | static __inline void send_data_cmd(unsigned int data) 51 | { 52 | lcm_util.send_data(0x0004 | data); 53 | } 54 | 55 | static __inline void set_lcm_register(unsigned int regIndex, 56 | unsigned int regData) 57 | { 58 | send_ctrl_cmd(regIndex); 59 | send_data_cmd(regData); 60 | } 61 | 62 | // --------------------------------------------------------------------------- 63 | // LCM Driver Implementations 64 | // --------------------------------------------------------------------------- 65 | 66 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 67 | { 68 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 69 | } 70 | 71 | 72 | static void lcm_get_params(LCM_PARAMS *params) 73 | { 74 | memset(params, 0, sizeof(LCM_PARAMS)); 75 | 76 | params->type = LCM_TYPE_DPI; 77 | params->ctrl = LCM_CTRL_SERIAL_DBI; 78 | params->width = FRAME_WIDTH; 79 | params->height = FRAME_HEIGHT; 80 | params->io_select_mode = 0; 81 | 82 | /* RGB interface configurations */ 83 | 84 | params->dpi.mipi_pll_clk_ref = 0; //the most important parameters: set pll clk to 66Mhz and dpi clk to 33Mhz 85 | params->dpi.mipi_pll_clk_div1 = 31; 86 | params->dpi.mipi_pll_clk_div2 = 4; 87 | params->dpi.dpi_clk_div = 2; 88 | params->dpi.dpi_clk_duty = 1; 89 | 90 | params->dpi.clk_pol = LCM_POLARITY_FALLING; 91 | params->dpi.de_pol = LCM_POLARITY_RISING; 92 | params->dpi.vsync_pol = LCM_POLARITY_FALLING; 93 | params->dpi.hsync_pol = LCM_POLARITY_FALLING; 94 | 95 | params->dpi.hsync_pulse_width = 128; 96 | params->dpi.hsync_back_porch = 152; 97 | params->dpi.hsync_front_porch = 40; 98 | params->dpi.vsync_pulse_width = 3; 99 | params->dpi.vsync_back_porch = 12; 100 | params->dpi.vsync_front_porch = 10; 101 | 102 | params->dpi.format = LCM_DPI_FORMAT_RGB888; // format is 24 bit 103 | params->dpi.rgb_order = LCM_COLOR_ORDER_RGB; 104 | params->dpi.is_serial_output = 0; 105 | 106 | params->dpi.intermediat_buffer_num = 2; 107 | 108 | params->dpi.io_driving_current = LCM_DRIVING_CURRENT_2MA; 109 | } 110 | 111 | 112 | static void lcm_init(void) 113 | { 114 | //SET_RESET_PIN(0); 115 | //MDELAY(10); 116 | //SET_RESET_PIN(1); //CH7035B reset control 117 | 118 | //lcm_util.set_gpio_mode(GPIO60, GPIO_MODE_00); 119 | //lcm_util.set_gpio_dir(GPIO60, GPIO_DIR_OUT); 120 | //lcm_util.set_gpio_out(GPIO60, GPIO_OUT_ONE); // HDMI_POWER_EN 121 | 122 | lcm_util.set_gpio_mode(GPIO15, GPIO_MODE_00); 123 | lcm_util.set_gpio_dir(GPIO15, GPIO_DIR_OUT); 124 | lcm_util.set_gpio_out(GPIO15, GPIO_OUT_ONE); // LCM_STBY 125 | MDELAY(5); 126 | lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); 127 | lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); 128 | lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN 129 | MDELAY(50); 130 | lcm_util.set_gpio_mode(GPIO49, GPIO_MODE_00); 131 | lcm_util.set_gpio_dir(GPIO49, GPIO_DIR_OUT); 132 | lcm_util.set_gpio_out(GPIO49, GPIO_OUT_ONE); // LCM_RST 133 | MDELAY(5); 134 | lcm_util.set_gpio_mode(GPIO50, GPIO_MODE_00); 135 | lcm_util.set_gpio_dir(GPIO50, GPIO_DIR_OUT); 136 | lcm_util.set_gpio_out(GPIO50, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N 137 | MDELAY(50); 138 | lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); 139 | lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); 140 | lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE 141 | } 142 | 143 | 144 | static void lcm_suspend(void) 145 | { 146 | //SET_RESET_PIN(0); //CH7035B reset control 147 | 148 | //lcm_util.set_gpio_mode(GPIO60, GPIO_MODE_00); 149 | //lcm_util.set_gpio_dir(GPIO60, GPIO_DIR_OUT); 150 | //lcm_util.set_gpio_out(GPIO60, GPIO_OUT_ZERO); // HDMI_POWER_EN 151 | 152 | lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); 153 | lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); 154 | lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ZERO); // LCM_BL_ENABLE 155 | MDELAY(10); 156 | lcm_util.set_gpio_mode(GPIO50, GPIO_MODE_00); 157 | lcm_util.set_gpio_dir(GPIO50, GPIO_DIR_OUT); 158 | lcm_util.set_gpio_out(GPIO50, GPIO_OUT_ZERO); // LVDS_SHUTDOWN_N 159 | MDELAY(10); 160 | lcm_util.set_gpio_mode(GPIO15, GPIO_MODE_00); 161 | lcm_util.set_gpio_dir(GPIO15, GPIO_DIR_OUT); 162 | lcm_util.set_gpio_out(GPIO15, GPIO_OUT_ZERO); // LCM_STBY 163 | MDELAY(10); 164 | lcm_util.set_gpio_mode(GPIO49, GPIO_MODE_00); 165 | lcm_util.set_gpio_dir(GPIO49, GPIO_DIR_OUT); 166 | lcm_util.set_gpio_out(GPIO49, GPIO_OUT_ZERO); // LCM_RST 167 | MDELAY(10); 168 | lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); 169 | lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); 170 | lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ZERO); // LCM_VLED_EN 171 | MDELAY(60); // avoid LCD resume transint 172 | } 173 | 174 | 175 | static void lcm_resume(void) 176 | { 177 | //SET_RESET_PIN(1); //CH7035B reset control 178 | 179 | //lcm_util.set_gpio_mode(GPIO60, GPIO_MODE_00); 180 | //lcm_util.set_gpio_dir(GPIO60, GPIO_DIR_OUT); 181 | //lcm_util.set_gpio_out(GPIO60, GPIO_OUT_ONE); // HDMI_POWER_EN 182 | 183 | lcm_util.set_gpio_mode(GPIO15, GPIO_MODE_00); 184 | lcm_util.set_gpio_dir(GPIO15, GPIO_DIR_OUT); 185 | lcm_util.set_gpio_out(GPIO15, GPIO_OUT_ONE); // LCM_STBY 186 | MDELAY(5); 187 | lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); 188 | lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); 189 | lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN 190 | MDELAY(50); 191 | lcm_util.set_gpio_mode(GPIO49, GPIO_MODE_00); 192 | lcm_util.set_gpio_dir(GPIO49, GPIO_DIR_OUT); 193 | lcm_util.set_gpio_out(GPIO49, GPIO_OUT_ONE); // LCM_RST 194 | MDELAY(5); 195 | lcm_util.set_gpio_mode(GPIO50, GPIO_MODE_00); 196 | lcm_util.set_gpio_dir(GPIO50, GPIO_DIR_OUT); 197 | lcm_util.set_gpio_out(GPIO50, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N 198 | MDELAY(50); 199 | lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); 200 | lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); 201 | lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE 202 | MDELAY(120); // avoid LCD resume transint 203 | } 204 | 205 | LCM_DRIVER lvds_wsvga_ti_lcm_drv = 206 | { 207 | .name = "lvds_wsvga_ti", 208 | .set_util_funcs = lcm_set_util_funcs, 209 | .get_params = lcm_get_params, 210 | .init = lcm_init, 211 | .suspend = lcm_suspend, 212 | .resume = lcm_resume, 213 | }; 214 | 215 | -------------------------------------------------------------------------------- /r63311_fhd_dsi_vdo_sharp/r63311_fhd_dsi_vdo_sharp.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #endif 4 | #include "lcm_drv.h" 5 | 6 | #ifdef BUILD_LK 7 | #include 8 | #elif defined(BUILD_UBOOT) 9 | #include 10 | #else 11 | #include 12 | #endif 13 | // --------------------------------------------------------------------------- 14 | // Local Constants 15 | // --------------------------------------------------------------------------- 16 | 17 | #define FRAME_WIDTH (1080) 18 | #define FRAME_HEIGHT (1920) 19 | 20 | #define LCM_ID_NT35590 (0x90) 21 | 22 | // --------------------------------------------------------------------------- 23 | // Local Variables 24 | // --------------------------------------------------------------------------- 25 | 26 | static LCM_UTIL_FUNCS lcm_util = {0}; 27 | 28 | #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v))) 29 | 30 | #define UDELAY(n) (lcm_util.udelay(n)) 31 | #define MDELAY(n) (lcm_util.mdelay(n)) 32 | 33 | 34 | // --------------------------------------------------------------------------- 35 | // Local Functions 36 | // --------------------------------------------------------------------------- 37 | 38 | #define dsi_set_cmdq_V2(cmd, count, ppara, force_update) lcm_util.dsi_set_cmdq_V2(cmd, count, ppara, force_update) 39 | #define dsi_set_cmdq(pdata, queue_size, force_update) lcm_util.dsi_set_cmdq(pdata, queue_size, force_update) 40 | #define wrtie_cmd(cmd) lcm_util.dsi_write_cmd(cmd) 41 | #define write_regs(addr, pdata, byte_nums) lcm_util.dsi_write_regs(addr, pdata, byte_nums) 42 | #define read_reg(cmd) lcm_util.dsi_dcs_read_lcm_reg(cmd) 43 | #define read_reg_v2(cmd, buffer, buffer_size) lcm_util.dsi_dcs_read_lcm_reg_v2(cmd, buffer, buffer_size) 44 | 45 | 46 | #define LCM_DSI_CMD_MODE 0 47 | 48 | 49 | static void init_lcm_registers(void) 50 | { 51 | unsigned int data_array[16]; 52 | 53 | data_array[0] = 0x04B02300; 54 | dsi_set_cmdq(data_array, 1, 1); 55 | 56 | data_array[0] = 0x00351500; 57 | dsi_set_cmdq(data_array, 1, 1); 58 | 59 | data_array[0] = 0x00290500; 60 | dsi_set_cmdq(data_array, 1, 1); 61 | 62 | data_array[0] = 0x00110500; 63 | dsi_set_cmdq(data_array, 1, 1); 64 | 65 | } 66 | 67 | // --------------------------------------------------------------------------- 68 | // LCM Driver Implementations 69 | // --------------------------------------------------------------------------- 70 | 71 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 72 | { 73 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 74 | } 75 | 76 | 77 | static void lcm_get_params(LCM_PARAMS *params) 78 | { 79 | 80 | memset(params, 0, sizeof(LCM_PARAMS)); 81 | 82 | params->type = LCM_TYPE_DSI; 83 | 84 | params->width = FRAME_WIDTH; 85 | params->height = FRAME_HEIGHT; 86 | 87 | // enable tearing-free 88 | params->dbi.te_mode = LCM_DBI_TE_MODE_VSYNC_ONLY; 89 | params->dbi.te_edge_polarity = LCM_POLARITY_RISING; 90 | 91 | #if (LCM_DSI_CMD_MODE) 92 | params->dsi.mode = CMD_MODE; 93 | #else 94 | params->dsi.mode = BURST_VDO_MODE; 95 | #endif 96 | 97 | // DSI 98 | /* Command mode setting */ 99 | //1 Three lane or Four lane 100 | params->dsi.LANE_NUM = LCM_FOUR_LANE; 101 | //The following defined the fomat for data coming from LCD engine. 102 | params->dsi.data_format.color_order = LCM_COLOR_ORDER_RGB; 103 | params->dsi.data_format.trans_seq = LCM_DSI_TRANS_SEQ_MSB_FIRST; 104 | params->dsi.data_format.padding = LCM_DSI_PADDING_ON_LSB; 105 | params->dsi.data_format.format = LCM_DSI_FORMAT_RGB888; 106 | 107 | // Highly depends on LCD driver capability. 108 | // Not support in MT6573 109 | params->dsi.packet_size=256; 110 | 111 | // Video mode setting 112 | params->dsi.intermediat_buffer_num = 0;//because DSI/DPI HW design change, this parameters should be 0 when video mode in MT658X; or memory leakage 113 | 114 | params->dsi.PS=LCM_PACKED_PS_24BIT_RGB888; 115 | params->dsi.word_count=720*3; 116 | 117 | 118 | params->dsi.vertical_sync_active = 1; 119 | params->dsi.vertical_backporch = 4; 120 | params->dsi.vertical_frontporch = 2; 121 | params->dsi.vertical_active_line = FRAME_HEIGHT; 122 | 123 | params->dsi.horizontal_sync_active = 50; 124 | params->dsi.horizontal_backporch = 100; 125 | params->dsi.horizontal_frontporch = 80; 126 | params->dsi.horizontal_active_pixel = FRAME_WIDTH; 127 | 128 | // Bit rate calculation 129 | //1 Every lane speed 130 | params->dsi.pll_div1=0; // div1=0,1,2,3;div1_real=1,2,4,4 ----0: 546Mbps 1:273Mbps 131 | params->dsi.pll_div2=0; // div2=0,1,2,3;div1_real=1,2,4,4 132 | params->dsi.fbk_div =0x12; // fref=26MHz, fvco=fref*(fbk_div+1)*2/(div1_real*div2_real) 133 | 134 | } 135 | 136 | static void lcm_init(void) 137 | { 138 | 139 | SET_RESET_PIN(1); 140 | SET_RESET_PIN(0); 141 | MDELAY(1); 142 | 143 | SET_RESET_PIN(1); 144 | MDELAY(20); 145 | 146 | init_lcm_registers(); 147 | } 148 | 149 | 150 | 151 | static void lcm_suspend(void) 152 | { 153 | unsigned int data_array[16]; 154 | 155 | data_array[0]=0x00280500; // Display Off 156 | dsi_set_cmdq(data_array, 1, 1); 157 | 158 | data_array[0] = 0x00100500; // Sleep In 159 | dsi_set_cmdq(data_array, 1, 1); 160 | 161 | MDELAY(120); 162 | SET_RESET_PIN(0); 163 | } 164 | 165 | 166 | static void lcm_resume(void) 167 | { 168 | unsigned int data_array[16]; 169 | lcm_init(); 170 | 171 | data_array[0] = 0x00290500; // Display On 172 | dsi_set_cmdq(data_array, 1, 1); 173 | 174 | data_array[0] = 0x00110500; // Sleep Out 175 | dsi_set_cmdq(data_array, 1, 1); 176 | 177 | } 178 | 179 | #if (LCM_DSI_CMD_MODE) 180 | static void lcm_update(unsigned int x, unsigned int y, 181 | unsigned int width, unsigned int height) 182 | { 183 | unsigned int x0 = x; 184 | unsigned int y0 = y; 185 | unsigned int x1 = x0 + width - 1; 186 | unsigned int y1 = y0 + height - 1; 187 | 188 | unsigned char x0_MSB = ((x0>>8)&0xFF); 189 | unsigned char x0_LSB = (x0&0xFF); 190 | unsigned char x1_MSB = ((x1>>8)&0xFF); 191 | unsigned char x1_LSB = (x1&0xFF); 192 | unsigned char y0_MSB = ((y0>>8)&0xFF); 193 | unsigned char y0_LSB = (y0&0xFF); 194 | unsigned char y1_MSB = ((y1>>8)&0xFF); 195 | unsigned char y1_LSB = (y1&0xFF); 196 | 197 | unsigned int data_array[16]; 198 | 199 | data_array[0]= 0x00053902; 200 | data_array[1]= (x1_MSB<<24)|(x0_LSB<<16)|(x0_MSB<<8)|0x2a; 201 | data_array[2]= (x1_LSB); 202 | dsi_set_cmdq(data_array, 3, 1); 203 | 204 | data_array[0]= 0x00053902; 205 | data_array[1]= (y1_MSB<<24)|(y0_LSB<<16)|(y0_MSB<<8)|0x2b; 206 | data_array[2]= (y1_LSB); 207 | dsi_set_cmdq(data_array, 3, 1); 208 | 209 | data_array[0]= 0x00290508; //HW bug, so need send one HS packet 210 | dsi_set_cmdq(data_array, 1, 1); 211 | 212 | data_array[0]= 0x002c3909; 213 | dsi_set_cmdq(data_array, 1, 0); 214 | 215 | } 216 | #endif 217 | #if 0 218 | static unsigned int lcm_compare_id(void) 219 | { 220 | unsigned int id=0; 221 | unsigned char buffer[2]; 222 | unsigned int array[16]; 223 | 224 | SET_RESET_PIN(1); 225 | SET_RESET_PIN(0); 226 | MDELAY(1); 227 | 228 | SET_RESET_PIN(1); 229 | MDELAY(20); 230 | 231 | array[0] = 0x00023700;// read id return two byte,version and id 232 | dsi_set_cmdq(array, 1, 1); 233 | 234 | read_reg_v2(0xF4, buffer, 2); 235 | id = buffer[0]; //we only need ID 236 | #ifdef BUILD_LK 237 | printf("%s, LK nt35590 debug: nt35590 id = 0x%08x\n", __func__, id); 238 | #else 239 | printk("%s, kernel nt35590 horse debug: nt35590 id = 0x%08x\n", __func__, id); 240 | #endif 241 | 242 | if(id == LCM_ID_NT35590) 243 | return 1; 244 | else 245 | return 0; 246 | 247 | 248 | } 249 | #endif 250 | 251 | LCM_DRIVER r63311_fhd_dsi_vdo_sharp_lcm_drv = 252 | { 253 | .name = "r63311_fhd_dsi_vdo_sharp", 254 | .set_util_funcs = lcm_set_util_funcs, 255 | .get_params = lcm_get_params, 256 | .init = lcm_init, 257 | .suspend = lcm_suspend, 258 | .resume = lcm_resume, 259 | //.compare_id = lcm_compare_id, 260 | #if (LCM_DSI_CMD_MODE) 261 | .update = lcm_update, 262 | #endif 263 | }; 264 | -------------------------------------------------------------------------------- /KR070IA4T_DSI_VDO/KR070IA4T_DSI_VDO.c: -------------------------------------------------------------------------------- 1 | #ifndef BUILD_LK 2 | #include 3 | #else 4 | #include 5 | #endif 6 | 7 | #ifdef BUILD_LK 8 | #include 9 | #include 10 | #include 11 | #elif (defined BUILD_UBOOT) 12 | #include 13 | #else 14 | #include 15 | #include 16 | #endif 17 | 18 | #include "lcm_drv.h" 19 | 20 | // --------------------------------------------------------------------------- 21 | // Local Constants 22 | // --------------------------------------------------------------------------- 23 | #define FRAME_WIDTH (800) 24 | #define FRAME_HEIGHT (1280) 25 | 26 | // --------------------------------------------------------------------------- 27 | // Local Variables 28 | // --------------------------------------------------------------------------- 29 | static LCM_UTIL_FUNCS lcm_util = {0}; 30 | 31 | #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v))) 32 | 33 | #define UDELAY(n) (lcm_util.udelay(n)) 34 | #define MDELAY(n) (lcm_util.mdelay(n)) 35 | 36 | #ifdef GPIO_LCM_PWR 37 | #define GPIO_LCD_PWR_EN GPIO_LCM_PWR 38 | #else 39 | #define GPIO_LCD_PWR_EN 0xFFFFFFFF 40 | #endif 41 | 42 | 43 | #ifdef GPIO_LCM_RST 44 | #define GPIO_LCD_RST GPIO_LCM_RST 45 | #else 46 | #define GPIO_LCD_RST 0xFFFFFFFF 47 | #endif 48 | 49 | // --------------------------------------------------------------------------- 50 | // Local Functions 51 | // --------------------------------------------------------------------------- 52 | #define dsi_set_cmdq_V2(cmd, count, ppara, force_update) lcm_util.dsi_set_cmdq_V2(cmd, count, ppara, force_update) 53 | #define dsi_set_cmdq(pdata, queue_size, force_update) lcm_util.dsi_set_cmdq(pdata, queue_size, force_update) 54 | #define wrtie_cmd(cmd) lcm_util.dsi_write_cmd(cmd) 55 | #define write_regs(addr, pdata, byte_nums) lcm_util.dsi_write_regs(addr, pdata, byte_nums) 56 | #define read_reg(cmd) lcm_util.dsi_dcs_read_lcm_reg(cmd) 57 | #define read_reg_v2(cmd, buffer, buffer_size) lcm_util.dsi_dcs_read_lcm_reg_v2(cmd, buffer, buffer_size) 58 | 59 | #define LCM_DSI_CMD_MODE 0 60 | 61 | // --------------------------------------------------------------------------- 62 | // LCM Driver Implementations 63 | // --------------------------------------------------------------------------- 64 | static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) 65 | { 66 | memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); 67 | } 68 | 69 | static void lcm_get_params(LCM_PARAMS *params) 70 | { 71 | memset(params, 0, sizeof(LCM_PARAMS)); 72 | 73 | params->type = LCM_TYPE_DSI; 74 | 75 | params->width = FRAME_WIDTH; 76 | params->height = FRAME_HEIGHT; 77 | 78 | #if (LCM_DSI_CMD_MODE) 79 | params->dsi.mode = CMD_MODE; 80 | #else 81 | params->dsi.mode = SYNC_EVENT_VDO_MODE; //SYNC_EVENT_VDO_MODE; 82 | #endif 83 | 84 | // DSI 85 | /* Command mode setting */ 86 | // Three lane or Four lane 87 | params->dsi.LANE_NUM = LCM_FOUR_LANE; 88 | 89 | //The following defined the fomat for data coming from LCD engine. 90 | params->dsi.data_format.color_order = LCM_COLOR_ORDER_RGB; 91 | params->dsi.data_format.trans_seq = LCM_DSI_TRANS_SEQ_MSB_FIRST; 92 | params->dsi.data_format.padding = LCM_DSI_PADDING_ON_LSB; 93 | params->dsi.data_format.format = LCM_DSI_FORMAT_RGB888; 94 | 95 | // Highly depends on LCD driver capability. 96 | // Not support in MT6573 97 | params->dsi.packet_size=256; 98 | 99 | // Video mode setting 100 | params->dsi.intermediat_buffer_num = 0; 101 | 102 | params->dsi.PS=LCM_PACKED_PS_24BIT_RGB888; 103 | params->dsi.word_count=FRAME_WIDTH*3; 104 | 105 | params->dsi.vertical_sync_active = 6; 106 | params->dsi.vertical_backporch = 3; 107 | params->dsi.vertical_frontporch = 5; 108 | params->dsi.vertical_active_line = FRAME_HEIGHT; 109 | 110 | params->dsi.horizontal_sync_active = 6; 111 | params->dsi.horizontal_backporch = 48; 112 | params->dsi.horizontal_frontporch = 16; 113 | params->dsi.horizontal_active_pixel = FRAME_WIDTH; 114 | 115 | params->dsi.ssc_disable = 1; 116 | params->dsi.PLL_CLOCK = 225; 117 | params->dsi.cont_clock= 1; 118 | 119 | } 120 | 121 | static void lcm_set_gpio_output(unsigned int GPIO, unsigned int output) 122 | { 123 | mt_set_gpio_mode(GPIO, GPIO_MODE_00); 124 | mt_set_gpio_dir(GPIO, GPIO_DIR_OUT); 125 | mt_set_gpio_out(GPIO, (output>0)? GPIO_OUT_ONE: GPIO_OUT_ZERO); 126 | } 127 | 128 | 129 | static void lcm_init_power(void) 130 | { 131 | #ifdef BUILD_LK 132 | printf("[LK/LCM] lcm_init_power() enter\n"); 133 | 134 | #else 135 | printk("[Kernel/LCM] lcm_init_power() enter\n"); 136 | 137 | #endif 138 | 139 | } 140 | 141 | static void lcm_suspend_power(void) 142 | { 143 | #ifdef BUILD_LK 144 | printf("[LK/LCM] lcm_suspend_power() enter\n"); 145 | 146 | #else 147 | printk("[Kernel/LCM] lcm_suspend_power() enter\n"); 148 | #endif 149 | 150 | } 151 | 152 | static void lcm_resume_power(void) 153 | { 154 | #ifdef BUILD_LK 155 | printf("[LK/LCM] lcm_resume_power() enter\n"); 156 | 157 | #else 158 | printk("[Kernel/LCM] lcm_resume_power() enter\n"); 159 | 160 | #endif 161 | 162 | } 163 | 164 | static void lcm_init(void) 165 | { 166 | #ifdef BUILD_LK 167 | printf("[LK/LCM] lcm_init() enter\n"); 168 | lcm_set_gpio_output(GPIO_LCD_PWR_EN, GPIO_OUT_ONE); 169 | MDELAY(20); 170 | //VDD power on ->VGP3_PMU 1.8V 171 | upmu_set_rg_vgp3_vosel(3); 172 | upmu_set_rg_vgp3_en(0x1); 173 | 174 | lcm_set_gpio_output(GPIO_LCD_RST, GPIO_OUT_ONE); 175 | MDELAY(20); 176 | 177 | #else 178 | printk("[Kernel/LCM] lcm_init() enter\n"); 179 | 180 | #endif 181 | } 182 | 183 | static void lcm_suspend(void) 184 | { 185 | #ifdef BUILD_LK 186 | printf("[LK/LCM] lcm_suspend() enter\n"); 187 | lcm_set_gpio_output(GPIO_LCD_PWR_EN,GPIO_OUT_ZERO); 188 | MDELAY(20); 189 | //VDD power off ->VGP3_PMU 1.8V 190 | upmu_set_rg_vgp3_vosel(0); 191 | upmu_set_rg_vgp3_en(0); 192 | MDELAY(20); 193 | lcm_set_gpio_output(GPIO_LCD_RST,GPIO_OUT_ZERO); 194 | MDELAY(20); 195 | 196 | #else 197 | printk("[Kernel/LCM] lcm_suspend() enter\n"); 198 | lcm_set_gpio_output(GPIO_LCD_PWR_EN,GPIO_OUT_ZERO); 199 | MDELAY(20); 200 | //VDD power off ->VGP3_PMU 1.8V 201 | hwPowerOn(MT6323_POWER_LDO_VGP3 , VOL_1800 ,"LCM"); 202 | MDELAY(20); 203 | 204 | lcm_set_gpio_output(GPIO_LCD_RST,GPIO_OUT_ZERO); 205 | MDELAY(20); 206 | 207 | #endif 208 | } 209 | 210 | static void lcm_resume(void) 211 | { 212 | #ifdef BUILD_LK 213 | printf("[LK/LCM] lcm_resume() enter\n"); 214 | lcm_set_gpio_output(GPIO_LCD_PWR_EN, GPIO_OUT_ONE); 215 | MDELAY(20); 216 | //VGP3_PMU 1.8V 217 | upmu_set_rg_vgp3_vosel(3); 218 | upmu_set_rg_vgp3_en(0x1); 219 | MDELAY(20); 220 | 221 | lcm_set_gpio_output(GPIO_LCD_RST, GPIO_OUT_ONE); 222 | MDELAY(20); 223 | 224 | #else 225 | printk("[Kernel/LCM] lcm_resume() enter\n"); 226 | lcm_set_gpio_output(GPIO_LCD_PWR_EN, GPIO_OUT_ONE); 227 | MDELAY(20); 228 | hwPowerOn(MT6323_POWER_LDO_VGP3 , VOL_1800 ,"LCM"); 229 | MDELAY(20); 230 | lcm_set_gpio_output(GPIO_LCD_RST, GPIO_OUT_ONE); 231 | MDELAY(20); 232 | 233 | #endif 234 | } 235 | 236 | #if (LCM_DSI_CMD_MODE) 237 | static void lcm_update(unsigned int x, unsigned int y, unsigned int width, unsigned int height) 238 | { 239 | unsigned int x0 = x; 240 | unsigned int y0 = y; 241 | unsigned int x1 = x0 + width - 1; 242 | unsigned int y1 = y0 + height - 1; 243 | 244 | unsigned char x0_MSB = ((x0>>8)&0xFF); 245 | unsigned char x0_LSB = (x0&0xFF); 246 | unsigned char x1_MSB = ((x1>>8)&0xFF); 247 | unsigned char x1_LSB = (x1&0xFF); 248 | unsigned char y0_MSB = ((y0>>8)&0xFF); 249 | unsigned char y0_LSB = (y0&0xFF); 250 | unsigned char y1_MSB = ((y1>>8)&0xFF); 251 | unsigned char y1_LSB = (y1&0xFF); 252 | 253 | unsigned int data_array[16]; 254 | 255 | data_array[0]= 0x00053902; 256 | data_array[1]= (x1_MSB<<24)|(x0_LSB<<16)|(x0_MSB<<8)|0x2a; 257 | data_array[2]= (x1_LSB); 258 | dsi_set_cmdq(data_array, 3, 1); 259 | 260 | data_array[0]= 0x00053902; 261 | data_array[1]= (y1_MSB<<24)|(y0_LSB<<16)|(y0_MSB<<8)|0x2b; 262 | data_array[2]= (y1_LSB); 263 | dsi_set_cmdq(data_array, 3, 1); 264 | 265 | data_array[0]= 0x00290508; //HW bug, so need send one HS packet 266 | dsi_set_cmdq(data_array, 1, 1); 267 | 268 | data_array[0]= 0x002c3909; 269 | dsi_set_cmdq(data_array, 1, 0); 270 | } 271 | #endif 272 | 273 | 274 | LCM_DRIVER kr070ia4t_dsi_vdo_lcm_drv = 275 | { 276 | .name = "KR070IA4T_DSI_VDO", 277 | .set_util_funcs = lcm_set_util_funcs, 278 | .get_params = lcm_get_params, 279 | .init = lcm_init, 280 | .suspend = lcm_suspend, 281 | .resume = lcm_resume, 282 | .init_power = lcm_init_power, 283 | .resume_power = lcm_resume_power, 284 | .suspend_power = lcm_suspend_power, 285 | #if (LCM_DSI_CMD_MODE) 286 | .update = lcm_update, 287 | #endif 288 | }; 289 | --------------------------------------------------------------------------------