Skip to content

服务器托管,北京服务器托管,服务器租用-价格及机房咨询

Menu
  • 首页
  • 关于我们
  • 新闻资讯
  • 数据中心
  • 服务器托管
  • 服务器租用
  • 机房租用
  • 支持中心
  • 解决方案
  • 联系我们
Menu

RK3588使用RK628D 之 HDMI转成双路LVDS信号接LVDS屏幕

Posted on 2023年9月19日2023年9月19日 by hackdl
  1. 简介
  • 本文是基于RK3588平台,SDK版本:RK3588_ANDROID12.0 RK628D调试总结。
  • 视频桥接芯片:RK628D
  • 驱动代码:”kernel-5.10driversmiscrk628″(驱动用的是rk628-for-all-v21版本)
  • 本次调试的方案功能:从SOC出来的HDMITX通过RK628D转成双路LVDS信号接LVDS屏幕。

2. 视频桥接芯片RK628D调试

2.1 RK628驱动介绍

RK628 分为 Display 通路和 HDMI IN 通路,SDK 版本 Display 通路基于DRM框架,HDMI IN 通路基于

V4L2框架。

RK628-For-All 版本驱动一样也分为Display 通路和 HDMI IN 通路,Display 通路的驱动于drivers/misc/rk628/

下,HDMI IN 通路的驱动于drivers/media/i2c/rk628/下。本文采用RK628-For-All 版本Display 通路:MISC

2.2 调试总览,调试步骤分析

  • 步骤 ① 移植RK628D_For_All_V21的驱动代码
  • 步骤 ② dts配置
  • 步骤 ③ 编译,烧写。

2.3 调试过程

  • 步骤 ① :移植RK628D_For_All_V21的驱动代码

1.联系RK业务拿到最新的RK628-for-all版本代码。

本文是基于RK628-for-all-v21版本。要移植RK628D_For_All的驱动代码。

采取手动打补丁的方式移植:因为自动打补丁会因为SDK版本差异,代码不一致导致报错。

2.rockchip_defconfig,Kconfig,Makefile配置

rockchip_defconfig配置:关闭SDK系统自带的rk628d配置,开启rk628-for-all版本的配置:

CONFIG_DRM=y(系统默认是打开)

CONFIG_RK628_MISC=y

CONFIG_ROCKCHIP_THUNDER_BOOT_RK628=y

(下面两项在”kernel-5.10driversmiscrk628Kconfig”已经默认设置为y了,可以不用在rockchip_defconfig中再配置)

MISC配置如下 :

将rk628驱动添加进编译规则。

Kconfig配置 :添加 source “drivers/misc/rk628/Kconfig”

Kconfig路径 :”kernel-5.10driversmiscKconfig”

Makefile配置 :添加 obj-y += rk628/

Makefile路径 :”kernel-5.10driversmiscKconfig”

rk628-for-all版本驱动配置如下:

Kconfig配置 :添加 config RK628_MISC 和 config ROCKCHIP_THUNDER_BOOT_RK628说明

Kconfig路径 :”kernel-5.10driversmiscrk628Kconfig”

Makefile配置 :添加RK628_MISC驱动和obj-$(CONFIG_DRM) += rk628_hdmitx.o

Makefile路径 :”kernel-5.10driversmiscrk628Makefile”

3.驱动手动打补丁:

① 将rk628文件夹复制到”kernel-5.10driversmiscrk628″

② kernel-5.10driversgpu hdmi强制输出固定分辨率 绕过读edid流程

kernel-5.10driversi2c     提前i2c设备的注册 以加快rk628的初始化  

kernel-5.10driversbase  增加宏主要是为了实现regmap文件结点可以写628寄存器

kernel-5.10driverspwm  提前pwm设备的注册 以加快rk628的初始化

kernel-5.10driversvideo 提前backlight设备的注册 以加快rk628的初始化

注意: driversgpudrmbridgesynopsysdw-hdmi-qp.c 此c文件的第一组分辨率改成你要固定的分辨率 1920*1080

  • 步骤 ② dts配置
  1. rk628-for-all的dts配置
&i2c6 {

    //clock-frequency = ;

    pinctrl-names = "default";

    pinctrl-0 = ;

    status = "okay";

    rk628: rk628@50 {

        compatible = "rockchip,rk628";

        reg = ;

        interrupt-parent = ;

        interrupts = ;

        //pinctrl-names = "default";

        //pinctrl-0 = ;

        enable-gpios = ;

        reset-gpios = ;

        //panel-enable-gpios = ;

        panel-backlight = ;

        status = "okay";

        rk628,hdmi-in;

        rk628-lvds{

            /* "jeida_18","vesa_24","vesa_18" */

            bus-format = "vesa_24";

            //bus-format = "jeida_18";

            /* "dual_link_odd_even_pixels"

             * "dual_link_even_odd_pixels"

             * "dual_link_left_right_pixels"

             * "dual_link_right_left_pixels"

            */

            link-type = "dual_link_even_odd_pixels";

            //link-type = "dual_link_odd_even_pixels";

            status = "okay";

        };

        display-timings {

            src-timing {

                clock-frequency = ;

                hactive = ;

                vactive = ;

                hback-porch = ;

                hfront-porch = ;

                vback-porch = ;

                vfront-porch = ;

                hsync-len = ;

                vsync-len = ;

                hsync-active = ;

                vsync-active = ;

                de-active = ;

                pixelclk-active = ;

            };

            dst-timing {

                clock-frequency = ;

                hactive = ;

                vactive = ;

                hback-porch = ;

                hfront-porch = ;

                vback-porch = ;

                vfront-porch = ;

                hsync-len = ;

                vsync-len = ;

                hsync-active = ;

                vsync-active = ;

                de-active = ;

                pixelclk-active = ;

            };

        };

    };

};
  1. hdmi的dts配置:
&hdmi0 {

    status = "okay";

};

&hdmi0_in_vp0{

status = "okay";

};

&hdptxphy_hdmi0 {

    status = "okay";

 };

&dsi0{

status = "disabled";

};

&dsi1 {

    status = "disabled";

};

2.4 调试命令,方法

命令:

1. cat sys/kernel/debug/dri/0/summary

2. dmesg | grep rk628

3. cat /sys/kernel/debug/gpio 查看gpio占用状态

4. dmesg | grep src 查看src(cpu输出的hdmi信号)状态

5. dmesg | grep “rxphy power”  查看rxphy power是否上电

6. dmesg | grep vop查看显示信息或者dmesg | grep drm

7. dmesg | grep stable查看628clock是否起来。

8. cat sys/kernel/debug/rk628/summary

3. 调试成功

服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net

相关推荐: 使用Actor-Critic的DDPG强化学习算法控制双关节机械臂

在本文中,我们将介绍在 Reacher 环境中训练智能代理控制双关节机械臂,这是一种使用 Unity ML-Agents 工具包开发的基于 Unity 的模拟程序。 我们的目标是高精度的到达目标位置,所以这里我们可以使用专为连续状态和动作空间设计的最先进的De…

Related posts:

  1. 服务器托管怎么办理
  2. 杭州高端服务器托管服务,专业可靠
  3. 北京idc等保
  4. Web 应用中的 RAIL 模型 和 Chrome 开发者工具 Performances 面板对其的度量方法
  5. 中国江苏常州的优质服务器托管云空间

服务器托管,北京服务器托管,服务器租用,机房机柜带宽租用

服务器托管

咨询:董先生

电话13051898268 QQ/微信93663045!

上一篇: 聊一聊适配器模式
下一篇: 【工程应用八】终极的基于形状匹配方案解决(小模型+预生成模型+无效边缘去除+多尺度+各项异性+最小组件尺寸)

最新更新

  • 单文件组件形式
  • TiDB 7.1.0 LTS 特性解读丨关于资源管控 (Resource Control) 应该知道的 6 件事
  • 软件开发流程
  • Fabric 2.x 智能合约开发记录
  • 初窥Huawei_Campus 解决方案_用户接入(三)

随机推荐

  • 在外远程NAS群晖Drive – 群晖
  • 动态内存分配C语言的内存分配C++的内存分配
  • 贵州服务器托管虚拟主机地址:高效稳定的网络服务
  • 通过ftp & sftp 进行minio
  • 独立服务器托管费用:价格一览

客服咨询

  • 董先生
  • 微信/QQ:93663045
  • 电话:13051898268
  • 邮箱:dongli@hhisp.com
  • 地址:北京市石景山区重聚园甲18号2层

友情链接

  • 服务器托管
  • 机房租用托管
  • 服务器租用托管
©2023 服务器托管,北京服务器托管,服务器租用-价格及机房咨询 京ICP备13047091号-8