标签:struct startek DRM kd035hvfma035 mode Cotex A5 Atmel panel
这里写自定义目录标题
Atmel Cotex-A5系列显示驱动问题
Atmel DRM驱动中VCLK极性固定为上升沿并不可设置,若LCD屏需VCLK下降沿则显示会有问题。
修改文件"linux/gpu/drm/atmel-hlcdc/atmel_hlcdc_crc.c" 中的函数static void atmel_hlcdc_crtc_mode_set_nofb(struct drm_crtc *c),在设置寄存器 ATMEL_HLCDC_CFG(0)前加入如下代码:
if (adj->flags & DRM_MODE_FLAG_NCSYNC)
cfg |= ATMEL_HLCDC_CLKPOL;
并在 panel_simple.c 中对应的屏参数结构体struct drm_display_mode中的参数 flags设置极性。
增加一个新的 LCD panel:
修改文件"linux/drivers/gpu/drm/panel/panel-simple.c",加入如下:
static const struct drm_display_mode startek_kd035hvfma035_mode = {
.clock = 15000,
.hdisplay = 320,
.hsync_start = 320 + 10,
.hsync_end = 320 + 10 + 45,
.htotal = 320 + 10 + 45 + 35,
.vdisplay = 480,
.vsync_start = 480 + 2,
.vsync_end = 480 + 2 + 15,
.vtotal = 480 + 2 + 15 + 25,
.vrefresh = 66,
.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NCSYNC,
};
static const struct panel_desc startek_kd035hvfma035 = {
.modes = &startek_kd035hvfma035_mode,
.num_modes = 1,
.bpc = 8,
.size = {
.width = 48,
.height = 73,
},
.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
};
在数组static const struct of_device_id platform_of_match[] 中加入:
{
.compatible = "startek,kd035hvfma035",
.data = &startek_kd035hvfma035,
},
在设备树文件中加入:
panel: panel {
compatible = "startek,kd035hvfma035", "simple-panel";
power-supply = <&panel_reg>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
panel_input: endpoint@0 {
reg = <0>;
remote-endpoint = <&hlcdc_panel_output>;
};
};
};
重新编译zImage和设备树文件dtb。
标签:struct,startek,DRM,kd035hvfma035,mode,Cotex,A5,Atmel,panel 来源: https://blog.csdn.net/u010333613/article/details/114625723
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。