RK3568添加HDMI转MIPI 基于LT6911C的DTSI

本文介绍了在RK3568硬件平台上,针对ANDROI11系统,如何为LT6911CHDMI2MIPI转换器添加驱动支持。开发人员需要基于lt6811uxc.c修改驱动文件,并在DTS中添加rk3568-hdmi2mipi.dtsi配置,详细列出了I2C、CSI和GPIO的设置,以及视频数据流的路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本信息:

硬件平台 : RK3568/RK3588

系统        : ANDROID 11

硬件接口 : HMDI TO MIPI  (lt6911c)

背景: 因rk3568 源码没有这种情况的支持,需要开发人员自己添加

一、硬件电路:

LT6911C 输入输出

rk3568 rx  (注意 : mipi线不需要电阻串联)

二、调试LT6911c
1、硬件信息: 
    i2c接口: I2C2 ,0x2B(7BIT) 
    mipi接口: csi
    GPIO    : rset ,irq
2、驱动文件:
   根据源码提供的lt6811uxc.c文件进行更改:  drivers/media/i2c/lt6911c.c

  注 : lt6911uxc 和 lt6911c 不同,需要根据手册配置
 
3、添加DTS文件

   rk3568-hdmi2mipi.dtsi

添加DTS如下 :

&i2c2 {
    status = "okay";
            
    lt6911c: lt6911c@2b {
        status = "okay";
        reg = <0x2b>;
        compatible = "lontium,lt6911c";
        clocks = <&ext_cam_clk>;
        clock-names = "xvclk";
    
        interrupt-parent = <&gpio2>;
        interrupts = <RK_PD0 IRQ_TYPE_LEVEL_LOW>;
        
        //power-gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;        
        //plugin-det-gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
        //hpd-ctl-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>;
        
        reset-gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>;
        rockchip,camera-module-index = <0>;
        rockchip,camera-module-facing = "back";
        rockchip,camera-module-name = "LT6911C";
        rockchip,camera-module-lens-name = "NC";
        
        port {
            lt6911c_out: endpoint {
                remote-endpoint = <&hdmi_to_mipi_in>;
                data-lanes = <1 2 3 4>;
            };
        };
                                
    };
};

&csi2_dphy_hw {
    status = "okay";
};

&csi2_dphy0 {
    status = "okay";

    ports {
        #address-cells = <1>;
        #size-cells = <0>;
        port@0 {
            reg = <0>;
            #address-cells = <1>;
            #size-cells = <0>;

            hdmi_to_mipi_in: endpoint@1 {
                reg = <1>;
                remote-endpoint = <&lt6911c_out>;
                data-lanes = <1 2 3 4>;
            };
        };

        port@1 {
            reg = <1>;
            #address-cells = <1>;
            #size-cells = <0>;

            csidphy_out: endpoint@1 {
                reg = <1>;
                remote-endpoint = <&mipi_csi2_input>;
                data-lanes = <1 2 3 4>;
            };
        };
    };
};

&mipi_csi2 {
    status = "okay";

    ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@0 {
            reg = <0>;
            #address-cells = <1>;
            #size-cells = <0>;

            mipi_csi2_input: endpoint@1 {
                reg = <1>;
                remote-endpoint = <&csidphy_out>;
                data-lanes = <1 2 3 4>;
            };
        };

        port@1 {
            reg = <1>;
            #address-cells = <1>;
            #size-cells = <0>;

            mipi_csi2_output: endpoint@0 {
                reg = <0>;
                remote-endpoint = <&cif_mipi_in>;
                data-lanes = <1 2 3 4>;
            };
        };
    };
};

&rkcif {
    status = "okay";
};

&rkcif_mipi_lvds {
    status = "okay";

    port {
        cif_mipi_in: endpoint {
            remote-endpoint = <&mipi_csi2_output>;
            data-lanes = <1 2 3 4>;
        };
    };
};

&rkcif_mmu {
    status = "okay";
};

&rkisp {
       status = "disabled";
};
&rkisp_mmu {
    status = "disabled";
};
 

视频路线:
 lt6911c hdmi in -->   mipi out --> mipi in (rk3568 csi2_dphy0 ) -->mipi_csi2--> cif
  node :
 lt6911c_out->hdmi_to_mipi_in --> csidphy_out -->mipi_csi2_input -->cif_mipi_in

在此过程中,需要理解节点,实际上就是视频的输入输出,模块的输入什么,输出什么,上一个模块输出接下一个模块的输入,理解视频流向,添加节点即可。

三、修改Android接口文件

rockchip/camera/etc/camera/camera3_profiles_rk356x.xml 

添加 lt6911c的配置

### RK3566 和 LT6911UXC 的硬件规格 RK3566 是一款由瑞芯微电子推出的高性能处理器,适用于多种多媒体应用。该芯片集成了四核 ARM Cortex-A55 处理器以及 Mali-G52 GPU,支持高达 4K@60Hz 的视频解码能力。 LT6911UXC 则是由龙讯公司开发的一款 HDMI 输入接收器,能够处理来自外部源设备的高清音视频信号并将其换成适合进一步处理的形式。对于基于 Linux 系统的产品而言,其驱动程序设计需特别考虑拔插检测及分辨率自动适配等功能[^1]。 ### 驱动程序获取途径 针对上述两款器件组合而成的产品方案,在官方资源库中可以找到对应的开源项目: - **Linux Kernel** 中包含了对 Rockchip SoCs(包括 RK3566)的支持模块; - 对于特定型号如 LT6911UXC,则可能需要查阅制造商提供的补丁包或自定义内核配置来实现完整的功能覆盖。 具体来说,可以从 GitHub 上克隆最新的稳定版内核树,并查看 `drivers/staging/media/hdmi` 或者其他相关目录下的文件以了解如何集成此类型的 HDMI IN 接口控制器。 ### 安装指南概览 为了确保顺利安装这些组件及其配套软件栈,建议遵循以下指导原则: #### 准备工作环境 确保主机已正确设置交叉编译工具链,并能访问互联网用于下载必要的依赖项。 #### 获取源代码 通过 Git 命令行工具拉取目标平台所使用的操作系统版本对应分支上的最新提交记录。 ```bash git clone https://github.com/torvalds/linux.git -b rockchip-rk3566-linux-5.10.y cd linux/ ``` #### 应用厂商专用补丁 如果存在任何专有特性或是尚未被上游接纳的功能改进,请按照文档说明将它们应用于本地副本之上。 #### 编译构建过程 依据个人需求调整 `.config` 文件内的选项设定之后执行 make 脚本完成整个系统的组装打包作业。 ```bash make ARCH=arm CROSS_COMPILE=aarch64-none-linux-gnu- ``` #### 测试验证阶段 最后一步是在实际硬件上部署生成好的镜像文件并对各项性能指标进行全面评测确认无误后再投入正式运行环境中去。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值