Rockchip RK3588 kernel dts解析之Camera

文章目录

  • Rockchip RK3588 kernel dts解析之Camera
    • RK3588的Camera相关资源介绍
      • MIPI-CSI
      • VICAP
      • ISP
    • RK3588 Camera相关 DTS配置介绍
      • RK3588 的camera通路
        • 单路Camera的dts配置说明
        • 6路camera的DTS配置说明

RK3588的Camera相关资源介绍

MIPI-CSI

RK3588s MIPI-CSI资源介绍:

Type Max bandwidth NUM Mode
DPHY-v1.2 2.5Gbps x 4 lanes 1 4lane or 2lane+2lane
(D/C-PHY) DPHY-v2.0 DPHY-v2.0: 2.5Gbps x 2lanes 2 DPHY-v2.0: 2lane
CSI-Host For MIPI D-PHY v1.2/D-PHY v2.0/C-PHY v1.1 4

RK3588 MIPI-CSI资源介绍 :

Type Max bandwidth NUM Mode
DPHY-v1.2 2.5Gbps x 4 lanes 2 4lane or 2lane+2lane
(D/C-PHY) DPHY-v2.0 DPHY-v2.0: 2.5Gbps x 2lanes 2 DPHY-v2.0: 2lane
CSI-Host For MIPI D-PHY v1.2/D-PHY v2.0/C-PHY v1.1 6

注意:D/C-PHY 仅用作DPHY-V2.0。

VICAP

RK3588/RK3588S VICAP支持输入输出规格:

接口 数量 输入 输出
VICAP 1 BT601 YCbCr 422 8bit, RAW 8/10/12
BT656 YCbCr 422 8bit 逐行/隔行
BT1120 YCbCr 422 16bit 逐行/隔行,单/双边沿采样
2/4 通道交错BT656/BT1120 YCbCr 422 8/16bit 逐行/隔行
MIPI CSI 4路IDs虚拟通道
MIPI CSI RAW8/10/12/14, YUV422
NV16/NV12/YUV400/YUYV
紧凑/非紧凑 RAW

ISP

RK3588/RK3588s 的ISP属于RK ISP v3.0版本,拥有2个ISP。

工作模式 吞吐率 最大分辨率 输入格式
单ISP 单CIS 16M@30fps 4672x3504 VICAP: raw8/raw10/raw12
单ISP 2CIS 8M@30FPS 3840x2160/3264x2448
单ISP 4CIS 4M@30FPS 2560x1536
双ISP 2合1单CIS 32M@30fps
48M@15fps
8064x6048 VICAP: raw8/raw10/raw12

注:CIS全称CMOS Image Sensor

RK3588 Camera相关 DTS配置介绍

这里以RK3588-EVB开发板的camera配置来进行说明

RK3588 的camera通路

下图是RK3588 camera连接链路示意图,可以支持7路camera。

框图说明:

  1. rk3588支持两个dcphy,节点名称分别为csi2_dcphy0/csi2_dcphy1。每个dcphy硬件支持RX/TX同时使用,对于camera输入使用的是RX。支持DPHY/CPHY协议复用;需要注意的是同一个dcphy的TX/RX只能同时使用DPHY或同时使用CPHY。其他dcphy参数请查阅rk3588数据手册。
  2. rk3588支持2个dphy硬件,这里我们称之为dphy0_hw/dphy1_hw,两个dphy硬件都可以工作在full mode 和split mode两种模式下。
    dphy0_hw:
  • full mode:节点名称使用csi2_dphy0,最多支持4 lane。
  • split mode: 拆分成2个phy使用,分别为csi2_dphy1(使用0/1 lane)、csi2_dphy2(使用2/3 lane),每个phy最多支持2 lane。
  • 当dphy0_hw使用full mode时,链路需要按照csi2_dphy1这条链路来配置,但是节点名称csi2_dphy1需要修改为csi2_dphy0,软件上是通过phy的序号来区分phy使用的模式。
    dphy1_hw:
  • full mode:节点名称使用csi2_dphy3,最多支持4 lane。
  • split mode: 拆分成2个phy使用,分别为csi2_dphy4(使用0/1 lane)、csi2_dphy5(使用2/3 lane),每个phy最多支持2 lane。
  • 当dphy1_hw使用full mode时,链路需要按照csi2_dphy4这条链路来配置,但是节点名称csi2_dphy4需要修改为csi2_dphy3,软件上是通过phy的序号来区分phy使用的模式。
  1. 使用上述mipi phy节点,需要把对应的物理节点配置上。
    (csi2_dcphy0_hw/csi2_dcphy1_hw/csi2_dphy0_hw/csi2_dphy1_hw)
  2. 每个mipi phy都需要一个csi2模块来解析mipi协议,节点名称分别为mipi0_csi2~mipi5_csi2。
  3. rk3588所有camera数据都需要通过vicap,再链接到isp。rk3588仅支持一个vicap硬件,这个vicap支持同时输入6路mipi phy,及一路dvp数据,所以我们将vicap分化成rkcif_mipi_lvds~rkcif_mipi_lvds5、rkcif_dvp等7个节点,各个节点的绑定关系需要严格按照框图的节点序号配置。
  4. 每个vicap节点与isp的链接关系,通过对应虚拟出的XXX_sditf来指明链接关系。
  5. rk3588支持2个isp硬件,每个isp设备可虚拟出多个虚拟节点,软件上通过回读的方式,依次从ddr读取每一路的图像数据进isp处理。对于多摄方案,建议将数据流平均分配到两个isp上。
  6. 直通与回读模式:
  • 直通:指数据经过vicap采集,直接发送给isp处理,不存储到ddr。需要注意的是hdr直通时,只有短帧是真正的直通,长帧需要存在ddr,isp再从ddr读取。
  • 回读:指数据经过vicap采集到ddr,应用获取到数据后,将buffer地址推送给isp,isp再从ddr获取图像数据。
  • 再dts配置时,一个isp硬件,如果只配置一个虚拟节点,默认使用直通模式,如果配置了多个虚拟节点默认使用回读模式。

单路Camera的dts配置说明

RK3588 EVB开发板默认只有1路camera,其链接方式如上图的mipi camera0。DTS配置在kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588-evb1-imx415.dtsi,可以结合上的图来理解这个dts的配置,如下

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/** Copyright (c) 2021 Rockchip Electronics Co., Ltd.**// {红外滤光片(IRCUT)由两根线控制,对这两根线施加3.5v~6v的电源,通过对IRCUT供电电源的正负极对调,且满足通电时间100ms±10%,能够实现IRCUT的切换。驱动通过两个gpio控制电机驱动器的电流输出方向,gpio命令为open(红线)、close(黑线)。电流由open流向close,为红外截止滤光片,白天工作状态;电流由close流向open,为白玻璃片,夜晚工作状态。其配置如下:cam_ircut0: cam_ircut {status = "okay";compatible = "rockchip,ircut";ircut-open-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;ircut-close-gpios  = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";};
};
//这里使用的是csi2_dcphy0
&csi2_dcphy0 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam0: endpoint@1 {reg = <1>;//sensor端的port名remote-endpoint = <&imx415_out0>;//mipi lane数,1lane为<1>,4lane为<1 2 3 4>,这里配置的是4lane,这个必须要配置否则会无法识别mipi类型data-lanes = <1 2 3 4>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidcphy0_out: endpoint@0 {reg = <0>;//mipi0_csi2_input是对应的isp端的port名remote-endpoint = <&mipi0_csi2_input>;};};};
};&i2c5 {status = "okay";imx415: imx415@1a {compatible = "sony,imx415";//需要与驱动定义的字符串一致reg = <0x1a>;//sensor的I2C设备地址,7位clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;//sensor clockin配置clock-names = "xvclk";pinctrl-names = "default";pinctrl-0 = <&mipim0_camera1_clk>;//电源配置power-domains = <&power RK3588_PD_VI>;//power管脚配置pwdn-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;        avdd-supply = <&vcc_mipidcphy0>;//模组编号,该编号不要重复rockchip,camera-module-index = <0>;//模组朝向,有前摄“front”、后摄“back”rockchip,camera-module-facing = "back";//模组名称rockchip,camera-module-name = "CMK-OT2022-PX1";//IR CUT设备rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20";lens-focus = <&cam_ircut0>;port {imx415_out0: endpoint {//mipi dphy端的port名remote-endpoint = <&mipi_in_ucam0>;//mipi lane数,1lane为<1>,4lane为<1 2 3 4>,这里配置的是4lane,这个必须要配置否则会无法识别mipi类型data-lanes = <1 2 3 4>;};};};
};&mipi_dcphy0 {status = "okay";
};&mipi0_csi2 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi0_csi2_input: endpoint@1 {reg = <1>;//csi2 dphy端的port名remote-endpoint = <&csidcphy0_out>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;mipi0_csi2_output: endpoint@0 {reg = <0>;//vicap端的port名remote-endpoint = <&cif_mipi_in0>;};};};
};
//vicap的配置,这里用rkcif节点代表vicap
&rkcif {status = "okay";
};&rkcif_mipi_lvds {status = "okay";port {cif_mipi_in0: endpoint {//csi2 host端的port名remote-endpoint = <&mipi0_csi2_output>;};};
};&rkcif_mipi_lvds_sditf {status = "okay";port {mipi_lvds_sditf: endpoint {//isp虚拟设备端port名remote-endpoint = <&isp0_vir0>;};};
};&rkcif_mmu {status = "okay";
};&rkisp0 {status = "okay";
};&isp0_mmu {status = "okay";
};&rkisp0_vir0 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp0_vir0: endpoint@0 {reg = <0>;//vicap mipi sditf的端点名remote-endpoint = <&mipi_lvds_sditf>;};};
};

6路camera的DTS配置说明

基于RK3588-EVB开发板加6路camera转接板可以实现6路camera,其DTS配置在kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588-evb1-cam-6x.dtsi。6路camera的链路可以参考上面的图,并根据图来理解dts配置,如下:

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/** Copyright (c) 2021 Rockchip Electronics Co., Ltd.**/
//下面是phy的配置一共6个phy
&csi2_dcphy0 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam0: endpoint@1 {reg = <1>;remote-endpoint = <&imx464_out0>;data-lanes = <1 2>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidcphy0_out: endpoint@0 {reg = <0>;remote-endpoint = <&mipi0_csi2_input>;};};};
};&csi2_dcphy1 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam1: endpoint@1 {reg = <1>;remote-endpoint = <&imx464_out1>;data-lanes = <1 2>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidcphy1_out: endpoint@0 {reg = <0>;remote-endpoint = <&mipi1_csi2_input>;};};};
};&csi2_dphy0_hw {status = "okay";
};&csi2_dphy1_hw {status = "okay";
};&csi2_dphy1 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam2: endpoint@1 {reg = <1>;remote-endpoint = <&imx464_out2>;data-lanes = <1 2>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidphy1_out: endpoint@0 {reg = <0>;remote-endpoint = <&mipi2_csi2_input>;};};};
};&csi2_dphy2 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam3: endpoint@1 {reg = <1>;remote-endpoint = <&imx464_out3>;data-lanes = <1 2>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidphy2_out: endpoint@0 {reg = <0>;remote-endpoint = <&mipi3_csi2_input>;};};};
};&csi2_dphy4 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam4: endpoint@1 {reg = <1>;remote-endpoint = <&imx464_out4>;data-lanes = <1 2>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidphy4_out: endpoint@0 {reg = <0>;remote-endpoint = <&mipi4_csi2_input>;};};};
};&csi2_dphy5 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam5: endpoint@1 {reg = <1>;remote-endpoint = <&imx464_out5>;data-lanes = <1 2>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidphy5_out: endpoint@0 {reg = <0>;remote-endpoint = <&mipi5_csi2_input>;};};};
};
//下面是sensor的配置一共配置imx464_0到imx464_5 六个sensor
&i2c3 {status = "okay";/* module 77/79 0x1a 78/80 0x36 */imx464_2: imx464-2@1a {compatible = "sony,imx464";status = "okay";reg = <0x1a>;clocks = <&cru CLK_MIPI_CAMARAOUT_M3>;clock-names = "xvclk";power-domains = <&power RK3588_PD_VI>;pinctrl-names = "default";pinctrl-0 = <&mipim0_camera3_clk>;avdd-supply = <&vcc_mipicsi0>;pwdn-gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>;rockchip,camera-module-index = <2>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "CMK-OT1980-PX1";rockchip,camera-module-lens-name = "SHG102";port {imx464_out2: endpoint {remote-endpoint = <&mipi_in_ucam2>;data-lanes = <1 2>;};};};imx464_3: imx464-3@36 {compatible = "sony,imx464";status = "okay";reg = <0x36>;clocks = <&cru CLK_MIPI_CAMARAOUT_M3>;clock-names = "xvclk";power-domains = <&power RK3588_PD_VI>;avdd-supply = <&vcc_mipicsi0>;pwdn-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;rockchip,camera-module-index = <3>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "CMK-OT1980-PX1";rockchip,camera-module-lens-name = "SHG102";port {imx464_out3: endpoint {remote-endpoint = <&mipi_in_ucam3>;data-lanes = <1 2>;};};};
};&i2c4 {status = "okay";pinctrl-0 = <&i2c4m3_xfer>;/* 77/79 0x1a 78/80 0x36 */imx464_4: imx464-4@1a {compatible = "sony,imx464";status = "okay";reg = <0x1a>;clocks = <&cru CLK_MIPI_CAMARAOUT_M4>;clock-names = "xvclk";power-domains = <&power RK3588_PD_VI>;pinctrl-names = "default";pinctrl-0 = <&mipim0_camera4_clk>;avdd-supply = <&vcc_mipicsi1>;pwdn-gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>;rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "CMK-OT1980-PX1";rockchip,camera-module-lens-name = "SHG102";port {imx464_out4: endpoint {remote-endpoint = <&mipi_in_ucam4>;data-lanes = <1 2>;};};};imx464_5: imx464-5@36 {compatible = "sony,imx464";status = "okay";reg = <0x36>;clocks = <&cru CLK_MIPI_CAMARAOUT_M4>;clock-names = "xvclk";power-domains = <&power RK3588_PD_VI>;avdd-supply = <&vcc_mipicsi1>;pwdn-gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>;rockchip,camera-module-index = <1>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "CMK-OT1980-PX1";rockchip,camera-module-lens-name = "SHG102";port {imx464_out5: endpoint {remote-endpoint = <&mipi_in_ucam5>;data-lanes = <1 2>;};};};
};&i2c5 {status = "okay";/* 77/79 0x1a 78/80 0x36 */imx464_0: imx464-0@1a {compatible = "sony,imx464";status = "okay";reg = <0x1a>;clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;clock-names = "xvclk";power-domains = <&power RK3588_PD_VI>;pwdn-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;pinctrl-names = "default";pinctrl-0 = <&mipim0_camera1_clk>;avdd-supply = <&vcc_mipidcphy0>;rockchip,camera-module-index = <4>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "CMK-OT1980-PX1";rockchip,camera-module-lens-name = "SHG102";port {imx464_out0: endpoint {remote-endpoint = <&mipi_in_ucam0>;data-lanes = <1 2>;};};};imx464_1: imx464-1@36 {compatible = "sony,imx464";status = "okay";reg = <0x36>;clocks = <&cru CLK_MIPI_CAMARAOUT_M2>;clock-names = "xvclk";power-domains = <&power RK3588_PD_VI>;pinctrl-names = "default";pinctrl-0 = <&mipim0_camera2_clk>;pwdn-gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;avdd-supply = <&vcc_mipidcphy0>;rockchip,camera-module-index = <5>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "CMK-OT1980-PX1";rockchip,camera-module-lens-name = "SHG102";port {imx464_out1: endpoint {remote-endpoint = <&mipi_in_ucam1>;data-lanes = <1 2>;};};};
};&mipi_dcphy0 {status = "okay";
};&mipi_dcphy1 {status = "okay";
};
//下面是mipi 控制器的配置,共6个控制器
&mipi0_csi2 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi0_csi2_input: endpoint@1 {reg = <1>;remote-endpoint = <&csidcphy0_out>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;mipi0_csi2_output: endpoint@0 {reg = <0>;remote-endpoint = <&cif_mipi_in0>;};};};
};&mipi1_csi2 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi1_csi2_input: endpoint@1 {reg = <1>;remote-endpoint = <&csidcphy1_out>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;mipi1_csi2_output: endpoint@0 {reg = <0>;remote-endpoint = <&cif_mipi_in1>;};};};
};&mipi2_csi2 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi2_csi2_input: endpoint@1 {reg = <1>;remote-endpoint = <&csidphy1_out>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;mipi2_csi2_output: endpoint@0 {reg = <0>;remote-endpoint = <&cif_mipi_in2>;};};};
};&mipi3_csi2 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi3_csi2_input: endpoint@1 {reg = <1>;remote-endpoint = <&csidphy2_out>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;mipi3_csi2_output: endpoint@0 {reg = <0>;remote-endpoint = <&cif_mipi_in3>;};};};
};&mipi4_csi2 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi4_csi2_input: endpoint@1 {reg = <1>;remote-endpoint = <&csidphy4_out>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;mipi4_csi2_output: endpoint@0 {reg = <0>;remote-endpoint = <&cif_mipi_in4>;};};};
};&mipi5_csi2 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi5_csi2_input: endpoint@1 {reg = <1>;remote-endpoint = <&csidphy5_out>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;mipi5_csi2_output: endpoint@0 {reg = <0>;remote-endpoint = <&cif_mipi_in5>;};};};
};
//下面是vicap配置,分为6个vicap节点及对应的6个sditf虚拟链接节点
&rkcif {status = "okay";
};&rkcif_mipi_lvds {status = "okay";port {cif_mipi_in0: endpoint {remote-endpoint = <&mipi0_csi2_output>;};};
};&rkcif_mipi_lvds_sditf {status = "okay";port {mipi_lvds_sditf: endpoint {remote-endpoint = <&isp0_vir0>;};};
};&rkcif_mipi_lvds1 {status = "okay";port {cif_mipi_in1: endpoint {remote-endpoint = <&mipi1_csi2_output>;};};
};&rkcif_mipi_lvds1_sditf {status = "okay";port {mipi1_lvds_sditf: endpoint {remote-endpoint = <&isp1_vir0>;};};
};&rkcif_mipi_lvds2 {status = "okay";port {cif_mipi_in2: endpoint {remote-endpoint = <&mipi2_csi2_output>;};};
};&rkcif_mipi_lvds2_sditf {status = "okay";port {mipi2_lvds_sditf: endpoint {remote-endpoint = <&isp0_vir1>;};};
};&rkcif_mipi_lvds3 {status = "okay";port {cif_mipi_in3: endpoint {remote-endpoint = <&mipi3_csi2_output>;};};
};&rkcif_mipi_lvds3_sditf {status = "okay";port {mipi3_lvds_sditf: endpoint {remote-endpoint = <&isp1_vir1>;};};
};&rkcif_mipi_lvds4 {status = "okay";port {cif_mipi_in4: endpoint {remote-endpoint = <&mipi4_csi2_output>;};};
};&rkcif_mipi_lvds4_sditf {status = "okay";port {mipi4_lvds_sditf: endpoint {remote-endpoint = <&isp0_vir2>;};};
};&rkcif_mipi_lvds5 {status = "okay";port {cif_mipi_in5: endpoint {remote-endpoint = <&mipi5_csi2_output>;};};
};&rkcif_mipi_lvds5_sditf {status = "okay";port {mipi5_lvds_sditf: endpoint {remote-endpoint = <&isp1_vir2>;};};
};&rkcif_mmu {status = "okay";
};
//下面是isp的配置,将2个isp分为6个虚拟节点,每个isp虚拟出3个节点
&rkisp0 {status = "okay";
};&isp0_mmu {status = "okay";
};&rkisp0_vir0 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp0_vir0: endpoint@0 {reg = <0>;remote-endpoint = <&mipi_lvds_sditf>;};};
};&rkisp0_vir1 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp0_vir1: endpoint@0 {reg = <0>;remote-endpoint = <&mipi2_lvds_sditf>;};};
};&rkisp0_vir2 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp0_vir2: endpoint@0 {reg = <0>;remote-endpoint = <&mipi4_lvds_sditf>;};};
};&rkisp1 {status = "okay";
};&isp1_mmu {status = "okay";
};&rkisp1_vir0 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp1_vir0: endpoint@0 {reg = <0>;remote-endpoint = <&mipi1_lvds_sditf>;};};
};&rkisp1_vir1 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp1_vir1: endpoint@0 {reg = <0>;remote-endpoint = <&mipi3_lvds_sditf>;};};
};&rkisp1_vir2 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp1_vir2: endpoint@0 {reg = <0>;remote-endpoint = <&mipi5_lvds_sditf>;};};
};

Rockchip RK3588 kernel dts解析之Camera相关推荐

  1. Rockchip RK3588 kernel dts解析之音频模块

    Rockchip RK3588 kernel dts解析之音频模块 RK3588 EVB板子使用的是外接声卡ES8388 DTS配置参考:rk3588-evb1-lp4.dtsi 系统声音配置: es ...

  2. Rockchip RK3588 kernel dts解析之MMC

    Rockchip RK3588 kernel dts解析之MMC RK3588的MMC分为3中模式: SDMMC SDIO SDHCI 下面针对每种模式的DTS配置进行说明 SDMMC SDMMC用于 ...

  3. Rockchip RK3588 kernel dts解析之PCIe

    Rockchip RK3588 kernel dts解析之PCIe 文章目录 Rockchip RK3588 kernel dts解析之PCIe RK3588控制器 RK3588 PHY 使用限制 D ...

  4. Rockchip RK3588 kernel dts解析之电源模块

    Rockchip RK3588 kernel dts解析之电源模块 文章目录 Rockchip RK3588 kernel dts解析之电源模块 RK3588搭配的电源方案有2种 注意单PIMC核双P ...

  5. Rockchip RK3588 kernel dts解析之USB模块

    Rockchip RK3588 kernel dts解析之USB模块 文章目录 Rockchip RK3588 kernel dts解析之USB模块 RK3588 USB DTS 配置 USB 芯片级 ...

  6. Rockchip RK3588 kernel dts解析之GPIO Pinctrl

    Rockchip RK3588 kernel dts解析之GPIO Pinctrl 文章目录 Rockchip RK3588 kernel dts解析之GPIO Pinctrl GPIO的命令规则 I ...

  7. Rockchip RK3588 kernel dts解析之WIFI/BT

    Rockchip RK3588 kernel dts解析之WIFI/BT RK3588 EVB的WIFI/BT使用的是外挂双模模块,其中根据WIFI的数据通信接口不同可以分为PCIE和SDIO两种,下 ...

  8. Rockchip RK3588如何创建新一个新板级DTS

    Rockchip RK3588如何创建新一个新板级DTS 文章目录 Rockchip RK3588如何创建新一个新板级DTS 基于SDK已有的DTS选择一个适合的基础参考DTS RK3588 SDK发 ...

  9. Rockchip RK3588 SD卡启动

    Rockchip RK3588 SD卡启动 RK3588的BOOTROM 流程 RK3588 内部都有集成一个 BOOTROM,系统上电时先会运行 BOOTROM 代码,然后 BOOTROM 代码会探 ...

最新文章

  1. android studio 自动提示jni代码,如何将JNI(C/C++本机代码)添加到现有的Android Studio项目中...
  2. python config配置文件的读写--configparser
  3. Fiddler 获取、安装与浏览器代理设置,Fiddler的第一次使用
  4. stm32多块开发板can总线互联卡死问题
  5. golang使用iota
  6. SQL语言之创建数据库其他对象(视图)
  7. gradle的下载与环境变量配置
  8. Android无需权限保存文件,即使使用用户权限,也无法在外部存储上保存文件[Android]...
  9. python有道自动翻译_利用python写一个有道翻译的脚本
  10. ICCV2021 | 如何高效视频定位?QMUL北大Adobe强强联手提出弱监督CRM,性能SOTA
  11. 检测java内存泄露_MAT 检测 Java内存泄露检测
  12. 解决Vue编译和打包时频繁内存溢出情况CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory...
  13. 【区块链】区块链学习要点记录
  14. python部署阿里云_python部署到阿里云
  15. iphone上下左右手势判断代码
  16. 南通大学计算机专业校区,南通大学计算机科学与技术专业
  17. 2019第十届蓝桥杯大赛软件类省赛C++ B组真题题解
  18. iOS中录屏库ReplayKit的详尽使用总结
  19. UNIX常用命令(C站最全,一文通关)
  20. python逢7跳过_07.报数游戏:7的倍数或含7的数跳过,趣说python循环里的break和continue...

热门文章

  1. Spring 3.0 OXM - Spring 3.0 框架新特性
  2. 微软官网下载Net Framework流程
  3. 电路板的地直接与外壳地通过并联电阻/电容相连接分析-ESD/EMC
  4. 新能源电动汽车(带网关Gateway)车身网络控制系统CAN数据开发趋势
  5. nw.js node-webkit系列(22).nw执行过程及如何获取.nw真实路径
  6. scp从linux发送文件到windows
  7. Word高效指南 - Word输入的三种模式
  8. 2012微软暑期实习笔试
  9. 算法-发明KMP算法的唐纳德·克努特是怎么想到失配函数next[j]的?
  10. 战五渣系列之五(3分钟正则)