RK3568调试HDMI-IN之双RK628D

本文详细介绍了基于RK3568平台,如何进行HDMI-IN接口的调试,特别是使用双RK628D视频桥接芯片将HDMI-IN信号转换为MIPI-CSI。调试涉及驱动移植、dts编写,以及利用LT8641UXE切换芯片和媒体框架进行信号转换。
摘要由CSDN通过智能技术生成

一. 简介

  • 本文是基于RK3568平台,HDMI-IN调试总结。

  • 视频桥接芯片:双RK628D

  • 驱动代码:“kernel\drivers\media\i2c\rk628”(驱动用的是rk628-for-all-v21版本)

  • 本次调试的方案功能:HDMI-IN信号通过RK628D转换成MIPI-CSI传到主控SOC

  • 参考文档:“RKDocs\common\RK628\Rockchip_RK628D_For_All_Porting_Guide_CN_V21.pdf”

  • 场景描述:
    ① RK3568 不直接支持HDMI-IN接口,SOC有MIPI-CSI功能。需将HDMI-IN转换成MIPI-CSI才能获取视频信息。

    ②此文章使用场景是HDMI-IN通过龙讯switch芯片:LT8641UXE从四个HDMI-IN信号中通过上层应用选择一个HDMI-IN信号输出到RK628D芯片,RK628D再将HDMI-IN信号转换成MIPI-CSI信号输出到RK3588 SOC。通过软件抓取输入进SOC的视频信息。

在这里插入图片描述

③ 板上有8个HDMI-IN接口;两个龙讯LT8641UXE芯片;两个RK628D芯片。 因为四个HDMI-IN对应一个龙讯LT8641UXE芯片,对应一个RK628D芯片。

二. 视频桥接芯片RK628D调试

2.1 RK628驱动介绍

  • RK628驱动有两个版本,一个是SDK系统自带的版本,一个是RK628-for-all版本。

  • 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 版本HDMI IN 通路:media

  • Media 为 RK628 HDMI IN 通路的驱动代码,将RK628D作为类camera设备使用,实现如下功能。

在这里插入图片描述

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

调试思路:先把四个HDMI-IN对应一个龙讯LT8641UXE芯片,对应一个RK628D芯片调好。再调另一组。

  • 步骤 ① 移植驱动
  • 步骤 ② dts编写
  • 步骤 ③ 编译烧录

2.3 移植驱动:

① config配置:Rockchip_defconfig:

CONFIG_VIDEO_RK628=y (这是RK628-for-all media驱动开关配置)
CONFIG_DRM=y

2.4 dts编写

链接关系 1: sensor1->csi2_dphy1->mipi_csi2->rkcif_mipi_lvds ( vicap 链路 )

链接关系 2: sensor2->csi2_dphy2->rkisp_vir0 ( isp 链路 )

// 链接关系 1: sensor1->csi2_dphy1->mipi_csi2->rkcif_mipi_lvds,第一路index为0,facing配置为back
&i2c2 {
   
        //clock-frequency = <400000>;
        status = "okay";
        pinctrl-names = "default";
 		pinctrl-0 = <&i2c2m1_xfer>;
        rk628_csi_v4l2: rk628_csi_v4l2@50 {
   
				status = "okay";
                reg = <0x50>;
                compatible = "rockchip,rk628-csi-v4l2";
                interrupt-parent = <&gpio0>;
                interrupts = <RK_PB0 IRQ_TYPE_LEVEL_HIGH>;
                enable-gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_LOW>;
                //hdcp-enable = <1>;
				scaler-en = <1>;
				assigned-clocks = <&pmucru CLK_WIFI>;
        		assigned-clock-rates = <24000000>;
				clocks = <&pmucru CLK_WIFI>;
				clock-names = "soc_24M";
                plugin-det-gpios = 
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式Linux开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值