xiaguangbo 发表于 2023-6-8 03:04:07

ok3588c v1.2 内核下如何驱动套装里的 mipi 屏

本帖最后由 xiaguangbo 于 2023-6-8 19:38 编辑

2023/6/8 更新

使用 linux sdk 全编译后烧录镜像运行正常,套装里 7 寸 mipi 屏也能正常显示和触摸,屏幕接在了板子上的 MIPI DSI0 上(也就是原理图v1.2的DS1,原理图里是从DS1开始的)但是 uboot 换成我从 https://github.com/rockchip-linux/u-boot 上下载的 u-boot next-dev 分支并使用默认的 rk3588_defconfig 编译的就不行,屏幕就是灰色,系统可以运行到 rootfs 里。把 uboot 换成 linux sdk 里提供的就正常了

我以为是 forlinx-control 没打开,我把 OK3588-C-common.dtsi 里的 / 下的 forlinx-control 里的 status 赋值为 okay 以后重编译,使用我的 uboot 和 linux sdk 新编译出来的 boot.img 还是点不亮 mipi 屏,把 uboot 换成 linux sdk 里提供的就正常了

使用 https://github.com/rockchip-linux/kernal develop-5.10 分支使用板卡的配置文件和设备树编译的 boot.img 配合板子的 uboot.img 屏幕正常显示但是无法触摸。我使用 i2cdetect -a 2 探测出了触摸芯片的地址 0x38,和 OK3588-C-common.dtsi 里的 ft5x06_dsi0 节点写的一样,触摸用不了是还需要其他什么配置吗

总结是:
板子 uboot + 板子 boot = 正常
板子 uboot + 我的 boot = 串口正常,核心板蓝灯闪烁,屏幕正常显示但是无法触摸,插入鼠标可以代替触摸
我的 uboot + 板子 boot = 串口正常,核心板蓝灯闪烁,灰屏
我的 uboot + 我的 boot = 串口正常,核心板蓝灯闪烁,灰屏


我猜测屏幕的初始化是在 uboot 里,但我想知道怎么在内核下完整的驱动该屏幕,包括显示和触摸。是要修改 .dts 吧,可以直接贴出修改方法或者发一份修改的文件吗


xiaguangbo 发表于 2023-6-9 16:58:41

Linux 下让 mipi 屏幕工作是修改 OK3588-C-common.dtsi 里的 dsi0_in_vp2 和该节点上面的 dsi0 节点,两个节点里的 status 赋值为 okay


触摸还是有问题,是需要指定系统的触摸输入来自于哪个设备吗

xiaguangbo 发表于 2023-6-12 19:58:35

本帖最后由 xiaguangbo 于 2023-6-12 19:59 编辑

触摸是设备树的问题,设备树里 i2c2 下有两个触摸芯片,负责的是 mipi 0,也就是 dsi0 接口的触摸,不使用的那个需要 disabled,因为如果 dsi0 的 mipi 屏用的触摸节点是 ft5x06_dsi0,此节点和 gt9xx_dsi0 共用同一个中断引脚,如果该引脚被 gt9xx_dsi0 先获取了,那 ft5x06_dsi0 就获取不到了,所以要将 gt9xx_dsi0 失能

如果是 linux 用的是 https://github.com/rockchip-linux/kernel,要修改 i2c2 里的 ft5x06_dsi0 节点,取消注释 interrupt-parent、interrupts,注释 irq-gpio,如果是飞凌提供的 linux 就不需要修改,因为这俩的 drives/input/touchscreen/edt_ft5x06.c 的中断脚的处理不一样
页: [1]
查看完整版本: ok3588c v1.2 内核下如何驱动套装里的 mipi 屏