linuxOS_AP06/kernel/arch/arm/boot/dts/rv1103b-dual-cam.dtsi
2025-06-03 12:28:32 +08:00

480 lines
9.6 KiB
Plaintext

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2024 Rockchip Electronics Co., Ltd.
*
* Version Sensor I2C_ADDR Lanes
* v1.0.0 os04a10 0x36 lane0~1(dphy1)
* sc4336 0x30 lane2~3(dphy2)
* v1.1.0 gc2053 0x37 lane0~1(dphy1)
* gc2053 0x3f lane2~3(dphy2)
* v1.2.0 sc301iot 0x30 lane0~1(dphy1)
* sc301iot 0x32 lane2~3(dphy2)
*/
&csi2_dphy_hw {
status = "okay";
};
&csi2_dphy1 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_input0: endpoint@1 {
reg = <1>;
remote-endpoint = <&os04a10_out>;
data-lanes = <1 2>;
};
csi_dphy_input2: endpoint@2 {
reg = <2>;
remote-endpoint = <&gc2053_out>;
data-lanes = <1 2>;
};
csi_dphy_input4: endpoint@3 {
reg = <3>;
remote-endpoint = <&sc301iot_out>;
data-lanes = <1 2>;
};
csi_dphy_input6: endpoint@4 {
reg = <4>;
remote-endpoint = <&sc530ai_out>;
data-lanes = <1 2>;
};
csi_dphy_input8: endpoint@5 {
reg = <5>;
remote-endpoint = <&sc200ai_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_csi2_input>;
};
};
};
};
&csi2_dphy2 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_input1: endpoint@1 {
reg = <1>;
remote-endpoint = <&sc3336_out>;
data-lanes = <1 2>;
};
csi_dphy_input3: endpoint@2 {
reg = <2>;
remote-endpoint = <&gc2053_1_out>;
data-lanes = <1 2>;
};
csi_dphy_input5: endpoint@3 {
reg = <3>;
remote-endpoint = <&sc301iot_1_out>;
data-lanes = <1 2>;
};
csi_dphy_input7: endpoint@4 {
reg = <4>;
remote-endpoint = <&sc530ai_1_out>;
data-lanes = <1 2>;
};
csi_dphy_input9: endpoint@5 {
reg = <5>;
remote-endpoint = <&sc200ai_1_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_output1: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi1_csi2_input>;
};
};
};
};
&i2c4 {
status = "okay";
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&i2c4m1_xfer_pins>;
os04a10: os04a10@36 {
compatible = "ovti,os04a10";
status = "okay";
reg = <0x36>;
clocks = <&cru CLK_MIPI0_OUT2IO>;
clock-names = "xvclk";
pwdn-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cam_clk0_pins>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
os04a10_out: endpoint {
remote-endpoint = <&csi_dphy_input0>;
data-lanes = <1 2>;
};
};
};
gc2053: gc2053@37 {
compatible = "galaxycore,gc2053";
status = "okay";
reg = <0x37>;
clocks = <&cru CLK_MIPI0_OUT2IO>;
clock-names = "xvclk";
pwdn-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&cam_clk0_pins>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
gc2053_out: endpoint {
remote-endpoint = <&csi_dphy_input2>;
data-lanes = <1 2>;
};
};
};
sc301iot: sc301iot@30 {
compatible = "smartsens,sc301iot";
status = "okay";
reg = <0x30>;
clocks = <&cru CLK_MIPI0_OUT2IO>;
clock-names = "xvclk";
pwdn-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cam_clk0_pins>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
sc301iot_out: endpoint {
remote-endpoint = <&csi_dphy_input4>;
data-lanes = <1 2>;
};
};
};
sc530ai: sc530ai@30 {
compatible = "smartsens,sc530ai";
status = "okay";
reg = <0x30>;
clocks = <&cru CLK_MIPI0_OUT2IO>;
clock-names = "xvclk";
pwdn-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cam_clk0_pins>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
sc530ai_out: endpoint {
remote-endpoint = <&csi_dphy_input6>;
data-lanes = <1 2>;
};
};
};
sc200ai: sc200ai@30 {
compatible = "smartsens,sc200ai";
status = "okay";
reg = <0x30>;
clocks = <&cru CLK_MIPI0_OUT2IO>;
clock-names = "xvclk";
pwdn-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cam_clk0_pins>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
sc200ai_out: endpoint {
remote-endpoint = <&csi_dphy_input8>;
data-lanes = <1 2>;
};
};
};
sc4336: sc4336@30 {
compatible = "smartsens,sc4336";
status = "okay";
reg = <0x30>;
clocks = <&cru CLK_MIPI1_OUT2IO>;
clock-names = "xvclk";
pwdn-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cam_clk1_pins>;
rockchip,camera-module-index = <1>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
sc3336_out: endpoint {
remote-endpoint = <&csi_dphy_input1>;
data-lanes = <1 2>;
};
};
};
gc2053_1: gc2053_1@3f {
compatible = "galaxycore,gc2053";
status = "okay";
reg = <0x3f>;
clocks = <&cru CLK_MIPI1_OUT2IO>;
clock-names = "xvclk";
pwdn-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&cam_clk1_pins>;
rockchip,camera-module-index = <1>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
gc2053_1_out: endpoint {
remote-endpoint = <&csi_dphy_input3>;
data-lanes = <1 2>;
};
};
};
sc301iot_1: sc301iot_1@32 {
compatible = "smartsens,sc301iot";
status = "okay";
reg = <0x32>;
clocks = <&cru CLK_MIPI1_OUT2IO>;
clock-names = "xvclk";
pwdn-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cam_clk1_pins>;
rockchip,camera-module-index = <1>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
sc301iot_1_out: endpoint {
remote-endpoint = <&csi_dphy_input5>;
data-lanes = <1 2>;
};
};
};
sc530ai_1: sc530ai_1@32 {
compatible = "smartsens,sc530ai";
status = "okay";
reg = <0x32>;
clocks = <&cru CLK_MIPI1_OUT2IO>;
clock-names = "xvclk";
pwdn-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cam_clk1_pins>;
rockchip,camera-module-index = <1>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
sc530ai_1_out: endpoint {
remote-endpoint = <&csi_dphy_input7>;
data-lanes = <1 2>;
};
};
};
sc200ai_1: sc200ai_1@32 {
compatible = "smartsens,sc200ai";
status = "okay";
reg = <0x32>;
clocks = <&cru CLK_MIPI1_OUT2IO>;
clock-names = "xvclk";
pwdn-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cam_clk1_pins>;
rockchip,camera-module-index = <1>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
sc200ai_1_out: endpoint {
remote-endpoint = <&csi_dphy_input9>;
data-lanes = <1 2>;
};
};
};
};
&mipi0_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 = <&csi_dphy_output>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi_in>;
};
};
};
};
&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 = <&csi_dphy_output1>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi1_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi_in1>;
};
};
};
};
&rkcif {
status = "okay";
};
&rkcif_mipi_lvds {
status = "okay";
port {
/* MIPI CSI-2 endpoint */
cif_mipi_in: endpoint {
remote-endpoint = <&mipi_csi2_output>;
};
};
};
&rkcif_mipi_lvds_sditf {
status = "okay";
port {
/* MIPI CSI-2 endpoint */
mipi_lvds_sditf: endpoint {
remote-endpoint = <&isp_in>;
};
};
};
&rkcif_mipi_lvds1 {
status = "okay";
port {
/* MIPI CSI-2 endpoint */
cif_mipi_in1: endpoint {
remote-endpoint = <&mipi1_csi2_output>;
};
};
};
&rkcif_mipi_lvds1_sditf {
status = "okay";
port {
/* MIPI CSI-2 endpoint */
mipi_lvds1_sditf: endpoint {
remote-endpoint = <&isp_in1>;
};
};
};
&rkisp {
status = "okay";
};
&rkisp_vir0 {
status = "okay";
port@0 {
isp_in: endpoint {
remote-endpoint = <&mipi_lvds_sditf>;
};
};
};
&rkisp_vir1 {
status = "okay";
port@0 {
isp_in1: endpoint {
remote-endpoint = <&mipi_lvds1_sditf>;
};
};
};