Firefly开源社区

打印 上一主题 下一主题

[Linux] 4 lane mipi点屏成功,顺便问一下8lane的该怎么改?

83

积分

0

威望

0

贡献

技术小白

积分
83

4 lane mipi点屏成功,顺便问一下8lane的该怎么改?

发表于 2018-7-2 10:20:24      浏览:18061 | 回复:5        打印      只看该作者   [复制链接] 楼主
本帖最后由 tndcool86 于 2018-7-2 10:42 编辑

买了一个rk3399的开发板,官方的接口和要调试的屏幕线序对不上,又做了块转接板,前后忙了一个月。比较幸运的是现在已经点亮了。mipi的信号基本是通用的,Reset信号没有变,我的屏幕不用其它的信号了。所以只需要改改dts就可以了

直接改rk3399-firefly-mipi.dts这个文件。

  1. &dsi {
  2.         status = "okay";
  3.         dsi_panel: panel {
  4.                 compatible ="simple-panel-dsi";
  5.                 reg = <0>;
  6.                 //ddc-i2c-bu
  7.                 //power-supply = <&vcc_lcd>;
  8.                 //pinctrl-0 = <&lcd_panel_reset &lcd_panel_enable>;
  9.                 backlight = <&backlight>;
  10.                 /*
  11.                 enable-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
  12.                 reset-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
  13.                 */
  14.                 dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST /*| MIPI_DSI_MODE_VIDEO_SYNC_PULSE*/)>;
  15.                 dsi,format = <MIPI_DSI_FMT_RGB888>;
  16.                 bus-format = <MEDIA_BUS_FMT_RGB666_1X18>;
  17.                 dsi,lanes = <4>;

  18.         dsi,channel = <0>;

  19.         enable-delay-ms = <35>;
  20.         prepare-delay-ms = <6>;
  21.                 /*
  22.         delay,power = <10>;
  23.         delay,reset = <250>;

  24.         delay,unreset = <0>;
  25.         delay,unpower = <0>;
  26.                 */
  27.         unprepare-delay-ms = <0>;
  28.         disable-delay-ms = <20>;
  29.                
  30.         size,width = <120>;
  31.         size,height = <170>;

  32.         status = "okay";
  33.                                 

  34.         panel-init-sequence = [
  35.             05 20 01 29
  36.             05 96 01 11
  37.         ];

  38.                 panel-exit-sequence = [
  39.                         05 05 01 28
  40.                         05 78 01 10
  41.                 ];
复制代码
enable-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
如果需要改引脚,就修改这段代码。

dsi,lanes = <4>;
设置mipi为4 lane。
  1. timing0: timing0 {
  2.                                                        clock-frequency = <80000000>;
  3.                                                        hactive = <768>;
  4.                                                        vactive = <1024>;
  5.                                                        hsync-len = <20>;   //20, 50
  6.                                                        hback-porch = <130>; //50, 56
  7.                                                        hfront-porch = <150>;//50, 30
  8.                                                        vsync-len = <40>;
  9.                                                        vback-porch = <130>;
  10.                                                        vfront-porch = <136>;
  11.                                                        hsync-active = <0>;
  12.                                                        vsync-active = <0>;
  13.                                                        de-active = <0>;
  14.                                                        pixelclk-active = <0>;
  15.                                                    };
复制代码
段是设置屏幕参数的,就按照屏幕的datasheet 填就好了,建议先把这个参数填好,开始的时候我没有设置那些参数,用的是原来的lcd的参数,
屏幕说什么也点不亮,后来设完就正常了。


接下来说一下初始化,我是参考,《Rockchip DRM Panel Porting Guide》这篇文档。
05 20 01 29
05 96 01 11


前3 个字节(16 进制),分别代表Data Type,Delay,Payload Length
也就是
05                  20                01               29
Data Type,Delay,Payload Length
29开始是实际发送的内容,也就是说29之前的内容都是和平台相关的,这些数据并不会发送给lcd,
05 是数据类型,20是延时,单位ms,01 是要发送的数据个数之和
如果你的lcd 要求发送 address 0xfe data 07,那么就应该写05 20 02 fe 07
对于数据类型,我的lcd datasheet中明确写出来是0x39,所以05要改成0x39.
至于sleep out和display on指令,我的datasheet并没有要求指令,试了一下05 也好用。

我也是第一次调试mipi 的lcd,设备树也是现学的,感觉还是应该多研究一下dts中每个变量的具体含义。

现在打算点 8 lane的屏幕了,还不知道该怎么改,不知道怎么使用TX1的接口,有没有大神指点一下,万分感谢!


回复

使用道具 举报

42

积分

0

威望

0

贡献

游客

积分
42
发表于 2018-7-15 11:22:55        只看该作者  沙发
手动点个赞
回复

使用道具 举报

196

积分

0

威望

0

贡献

技术小白

积分
196
发表于 2018-7-16 09:17:01        只看该作者  板凳
刚要点4lane的mipi,学习了
回复

使用道具 举报

33

积分

0

威望

0

贡献

技术小白

积分
33
发表于 2018-11-19 16:49:48        只看该作者  地板
准备使用4lane的mipi,学习了
回复

使用道具 举报

33

积分

0

威望

0

贡献

技术小白

积分
33
发表于 2020-3-9 15:10:18        只看该作者  5#
初始化指令如何修改???
回复

使用道具 举报

28

积分

0

威望

0

贡献

技术小白

积分
28
发表于 2020-3-12 17:25:38        只看该作者  6#
您好,我用的firefly-rk3399开发板,安卓7.1的源码中使用的是arch/arm64/boot/dts/rockchip/rk3399-firefly.dtb,没有使用rk3399-firefly-mipi.dts呀,我修改了之后都没有参与编译,请教如何修改?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表