高通8x10&8x12平台 安卓4.3 怎样添加一块新的LCD!!

jremmyliu 2014-02-17 11:13:58
加精
刚转过来做安卓下的驱动开发,公司使用的是高通的平台,代码拉下来之后发现,这次的驱动结构改变还是比较大的,现在遇到的问题是不知道从什么地方下手增加一块芯片新屏的驱动(驱动IC:0TM9605A)?
驱动文件部分代码如下:
&mdss_mdp {
dsi_truly_wvga_vid: qcom,mdss_dsi_truly_wvga_video {
qcom,mdss-dsi-panel-name = "Truly WVGA video mode dsi panel";
qcom,mdss-dsi-panel-controller = <&mdss_dsi0>;
qcom,mdss-dsi-panel-type = "dsi_video_mode";
qcom,mdss-dsi-panel-destination = "display_1";
qcom,mdss-dsi-panel-mode-gpio-state = "high";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-width = <540>;
qcom,mdss-dsi-panel-height = <960>;
qcom,mdss-dsi-h-front-porch = <32>;
qcom,mdss-dsi-h-back-porch = <32>;
qcom,mdss-dsi-h-pulse-width = <8>;
qcom,mdss-dsi-h-sync-skew = <4>;
qcom,mdss-dsi-v-back-porch = <16>;
qcom,mdss-dsi-v-front-porch = <15>;
qcom,mdss-dsi-v-pulse-width = <1>;
qcom,mdss-dsi-h-left-border = <0>;
qcom,mdss-dsi-h-right-border = <0>;
qcom,mdss-dsi-v-top-border = <0>;
qcom,mdss-dsi-v-bottom-border = <0>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-on-command = [
05 01 00 00 01 00 02
00 00
39 01 00 00 01 00 04
ff 96 05 01
05 01 00 00 01 00 02
00 80
05 01 00 00 01 00 03
ff 96 05
05 01 00 00 01 00 02
00 92
05 01 00 00 01 00 03
ff 10 02
05 01 00 00 00 00 02
00 B4
05 01 00 00 00 00 02
C0 50
....]
qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00
05 01 00 00 78 00 02 10 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
qcom,mdss-dsi-h-sync-pulse = <0>;
qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-panel-timings = [87 1E 14 00 44 4B 19 21 22 03 04 00];
qcom,mdss-dsi-t-clk-post = <0x04>;
qcom,mdss-dsi-t-clk-pre = <0x1b>;
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <255>;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-reset-sequence = <1 20>, <0 2>, <1 20>;
};
};


从kernel启动的log中可以看出,默认加载的就是这个驱动文件(dsi-panel-truly-wvga-video.dtsi)



<6>[ 0.000000] Machine: Qualcomm MSM 8610 (Flattened Device Tree), model: Qualcomm MSM 8610v2 MTP
<4>[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 170578

<5>[ 0.000000] Kernel command line: console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 androidboot.emmc=true androidboot.serialno=cefa0ae1 androidboot.baseband=msm mdss_mdp.panel=1:dsi:0:qcom,mdss_dsi_truly_wvga_video

<6>[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)


<6>[    0.553959] mdss_dsi_panel_init: Panel Name = Truly WVGA video mode dsi panel

<3>[ 0.554170] mdss_dsi_parse_dcs_cmds: dtsi cmd=0 error, len=10497

<6>[ 0.554190] mdss_dsi_panel_init:945 Continuous splash flag not found.

<6>[ 0.554201] mdss_dsi_panel_init:961 Partial update disabled.

<3>[ 0.554242] dsi_parse_gpio:156, Disp_en gpio not specified

<6>[ 0.554784] mdss_register_panel: adding framebuffer device fdd00000.qcom,mdss_dsi

<3>[ 0.555023] mdp3_panel_register_done: lk continuous splash, but kerenl not

<6>[ 0.584899] mdss_fb_register: FrameBuffer[0] 540x960 size=0 registered successfully!

<7>[ 0.585136] Registered led device: lcd-backlight

<6>[ 0.626029] msm_serial_hsl_probe: detected port #0 (ttyHSL0)

<3>[ 0.626049] AXI: get_pdata(): Error: Client name not found
...全文
7252 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
dededee 2015-06-07
  • 打赏
  • 举报
回复
mdp3_panel_register_done: lk continuous splash, but kerenl not 这个地方是有问题的 msm89xx-mtp.dtsi -> qcom,cont-splash-enabled; 这个必须加上
fanerg1988 2015-01-16
  • 打赏
  • 举报
回复
你可以先问模组厂和IC厂的fae把填的数据要过来,比如porch、timing、initial code,主要是这三个,分别填入LK的mipi文件和kernel里的dtsi文件,然后把相应的头文件include下,makefile中加入编译,应该就可以让新屏亮起来了。 背光LCD方面需要看原理图,看是什么脚控制的,一般来说需要配置gpio或pwm,把配置脚按照相应的时序输出(背光IC控制的),时序就是高、低电平(0和1)和延迟(udelay()函数),这也是LK和kernel都要加的,kernel中主要是加在高通的mdss文件夹中的mdss_fb.c mdss_dsi.c mdss_dsi_panel.c这三个文件中,你可以模仿其他的函数实现功能。
yilonglucky 2014-03-11
  • 打赏
  • 举报
回复
硬件方便依次测量供电,reset,时钟,数据线。代码里主要是检查有没有加载对应屏的驱动呢?我记得有个board.c是所有器件初始化列表,对应的宏控有没有打开,有没有编译对应屏的代码,有没有成功加载注册?
ftjavayp 2014-02-25
  • 打赏
  • 举报
回复
jremmyliu 2014-02-24
  • 打赏
  • 举报
回复
@lh_yshb: 按照论坛上朋友说的方法,更改了2处 .dtsi文件,但是我的屏还是没有驱动起来
妖尾_火龙 2014-02-24
  • 打赏
  • 举报
回复
lh_yshb 2014-02-21
  • 打赏
  • 举报
回复
就是首先加dt 有两个地方吧,另外在lk中加入屏的信息,不然的话,起不来的。8系列的都是用的dt文件
beyondcj 2014-02-20
  • 打赏
  • 举报
回复
夜灬繁华 2014-02-19
  • 打赏
  • 举报
回复
jremmyliu 2014-02-19
  • 打赏
  • 举报
回复
目前做的板子上没有给屏提供电源,屏的背光是另外单独供电的,屏上没有显示图像
吼吼哈哈11 2014-02-18
  • 打赏
  • 举报
回复
这个我之前错过。。。。
CodeC 2014-02-18
  • 打赏
  • 举报
回复
我本来是做应用开发的,被拉去搞驱动 ,不知道怎么跟老大说换下,搞不了驱动啊
nettman 2014-02-18
  • 打赏
  • 举报
回复
吼吼哈哈11 2014-02-18
  • 打赏
  • 举报
回复
你现在什么情况?背光亮了没? 显示的图像时花屏还是就没显示?
jremmyliu 2014-02-18
  • 打赏
  • 举报
回复
5楼的u010273872之前做过吗,能否提提建议呢?我的qq:1440375334
jremmyliu 2014-02-18
  • 打赏
  • 举报
回复
andriod的驱动和linux的驱动基本上差不多,只是根据平台的不同结构上稍有不同。我现在用的这个手机主板是
参考高通设计,至于说硬件都是固定的,
,如果驱动不起来,跟屏的电压可能有关,但是量过电压时正常,也就是说接线和供电都是正确
inurlcn 2014-02-18
  • 打赏
  • 举报
回复
学习下 ,andriod的驱动和linux的驱动是一个东东吗?
teemai 2014-02-17
  • 打赏
  • 举报
回复
nadleeh 2014-02-17
  • 打赏
  • 举报
回复
引用 楼主 liuerji 的回复:
刚转过来做安卓下的驱动开发,公司使用的是高通的平台,代码拉下来之后发现,这次的驱动结构改变还是比较大的,现在遇到的问题是不知道从什么地方下手增加一块芯片新屏的驱动(驱动IC:0TM9605A)? 驱动文件部分代码如下: [/code]
电路图都没有做神马驱动,怎么玩啊

949

社区成员

发帖
与我相关
我的任务
社区描述
为开发者提供高通丰富的解决方案及全面技术下载内容。本版以AI人工智能、WoS移动笔记本、XR、IoT 物联网、Auto 汽车、生成式AI等核心板块组成,为开发者提供一个便捷及高效的学习交流平台。
人工智能物联网机器学习 企业社区 北京·东城区
社区管理员
  • Qualcomm开发
  • csdnsqst0050
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧