基本信息:
硬件平台 : 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 = <<6911c_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的配置