首页 > 其他分享 >RK3588使用RK628D 之 HDMI转成双路LVDS信号接LVDS屏幕

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

时间:2023-06-16 19:01:59浏览次数:97  
标签:kernel RK628D Kconfig LVDS 双路 drivers rk628 5.10 RK628

  1. 简介
  • 本文是基于RK3588平台,SDK版本:RK3588_ANDROID12.0 RK628D调试总结。
  • 视频桥接芯片:RK628D
  • 驱动代码:"kernel-5.10\drivers\misc\rk628"(驱动用的是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.10\drivers\misc\rk628\Kconfig"已经默认设置为y了,可以不用在rockchip_defconfig中再配置)

MISC配置如下

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

Kconfig配置 :添加 source "drivers/misc/rk628/Kconfig"

Kconfig路径 :"kernel-5.10\drivers\misc\Kconfig"

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

Makefile路径 :"kernel-5.10\drivers\misc\Kconfig"

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

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

Kconfig路径 :"kernel-5.10\drivers\misc\rk628\Kconfig"

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

Makefile路径 :"kernel-5.10\drivers\misc\rk628\Makefile"

3.驱动手动打补丁:

① 将rk628文件夹复制到"kernel-5.10\drivers\misc\rk628"

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

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

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

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

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

注意: drivers\gpu\drm\bridge\synopsys\dw-hdmi-qp.c 此c文件的第一组分辨率改成你要固定的分辨率 1920*1080

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

    //clock-frequency = <400>;

    pinctrl-names = "default";

    pinctrl-0 = <&i2c6m0_xfer>;

    status = "okay";

    rk628: rk628@50 {

        compatible = "rockchip,rk628";

        reg = <0x50>;

        interrupt-parent = <&gpio4>;

        interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;

        //pinctrl-names = "default";

        //pinctrl-0 = <&rk628power>;

        enable-gpios = <&gpio4 RK_PD5 GPIO_ACTIVE_HIGH>;

        reset-gpios = <&gpio2 RK_PB6 GPIO_ACTIVE_LOW>;

        //panel-enable-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;

        panel-backlight = <&backlight_lvds>;

        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 = <148500000>;

                hactive = <1920>;

                vactive = <1080>;

                hback-porch = <148>;

                hfront-porch = <88>;

                vback-porch = <6>;

                vfront-porch = <4>;

                hsync-len = <44>;

                vsync-len = <5>;

                hsync-active = <0>;

                vsync-active = <0>;

                de-active = <0>;

                pixelclk-active = <0>;

            };

            dst-timing {

                clock-frequency = <148500000>;

                hactive = <1920>;

                vactive = <1080>;

                hback-porch = <148>;

                hfront-porch = <88>;

                vback-porch = <6>;

                vfront-porch = <4>;

                hsync-len = <44>;

                vsync-len = <5>;

                hsync-active = <0>;

                vsync-active = <0>;

                de-active = <0>;

                pixelclk-active = <0>;

            };

        };

    };

};
  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. 调试成功

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


标签:kernel,RK628D,Kconfig,LVDS,双路,drivers,rk628,5.10,RK628
From: https://blog.51cto.com/u_16120916/6501662

相关文章

  • 如何调试lvds屏-基于TQT507开发板
    1.1.更换不同的屏  TQT507可以通过修改指定启动配置文件(Embedsky.ini)方便地支持不同分辨率的屏。用户可以显示参数写入配置文件中,并放到sd卡内。插入sd卡启动板卡,板卡会读取配置文件内容,并进行相应的设置。1.2.显示屏接线说明 TQT507Android支持LVDS和HDMI输出。LVDS和HDMI同......
  • 3-Port LVDS 老化
    车载3-PortLVDS老化方案,L180可以支持  ......
  • ESP32 IDF 读取双路AS5600
    白了少年头,空悲切。又有哥们生孩子了。他们有车有房有老婆还有孩子,也不知咋挣来的。搞得我聚会都不想去了。郁闷。没办法,自己只有努力。胸藏万卷凭吞吐,笔有千钧任翕张。前言之前用ESP32驱动两路AS5600没有成功,后面简单梳理了下IIC的逻辑,才反应过来。下面记录一下。ESP32......
  • MS1861/HDMI、LVDS输入/MIPI(DSI-2)LVDS输出/支持窗口放大、旋转
    1.  基本介绍MS1861 单颗芯片集成了HDMI、LVDS 和数字视频信号输入; 输出端可以驱动MIPI(DSI-2)、 LVDS 、Mini-LVDS 以及 TTL 类型 TFT-LCD 液晶显示。可支持对输入视频信号进行滤波,图 像增强, 锐化, 对比度调节, 视频缩放, 裁剪, 旋转, 内部字符(图形)叠加,帧频变化......
  • 量产150W 双路输出开关电源全套设计生产资料, 输入220VAC,输出24V5
    量产150W双路输出开关电源全套设计生产资料,输入220VAC,输出24V5A+5V2A,,PCB及原理图使用AD设计,pcb使用元件带3D模型,采用NE1118B作为PWM控制IC,单路24V输出可以过能效6级,电路稳定可靠,可以用着步进电机驱动电源,大功率LED驱动,输出通过调整R9值设置为恒流输出ID:34128616675074391......
  • MIPI/LVDS/PCIE/HDMI 设计规范
          ......
  • LT9211(LVDS/MIPI/TTL转LVDS/MIPI/TTL)芯片功能描述及应用
    LT9211:2-PortLVDS/MIPI/TTLto2-PortLVDS/MIPI/TTL 1.描述●LontiumLT9211是一种高性能转换器可在MIPIDSI/CSI-2/双端口LVDS之间互转换和TTL,除了TTL到TTL。LT921......
  • LT8619C-HDMI转LVDS/RGB/BT1120芯片功能特性及应用
    LT8619CHDMIToTTL/LVDSConverter 1.特性●HDMI/双模DP输入接口◆兼容DVIV1.0和HDMIV1.4◆支持高达1.65Gbps的DVI◆支持高达3.4Gbps的HDMI......
  • AP2813双路降压恒流驱动器 一切一 MOS切换 储能电源指示灯
    产品描述AP2813是一款双路降压恒流驱动器,高效率、外围简单、内置功率管,适用于5-80V输入的高精度降压LED恒流驱动芯片。内置功率管输出功率可达12W,电流1.2A。AP2......
  • LVDS的两种协议标准
    LVDS接口有两种协议标准 JEIDA8BITLVDSinput JEIDA6BITLVDSINPUT    VESA8BITLVDSinput  VESA6BITLVDSinput       ......