380 lines
7.3 KiB
Plaintext
380 lines
7.3 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
/*
|
|
* Copyright (c) 2023 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>;
|
|
};
|
|
};
|
|
|
|
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>;
|
|
};
|
|
};
|
|
|
|
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 = <&i2c4m2_xfer>;
|
|
|
|
os04a10: os04a10@36 {
|
|
compatible = "ovti,os04a10";
|
|
status = "okay";
|
|
reg = <0x36>;
|
|
clocks = <&cru MCLK_REF_MIPI0>;
|
|
clock-names = "xvclk";
|
|
reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_LOW>;
|
|
pwdn-gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mipi_refclk_out0>;
|
|
rockchip,camera-module-index = <0>;
|
|
rockchip,camera-module-facing = "back";
|
|
rockchip,camera-module-name = "CMK-OT1607-PV1";
|
|
rockchip,camera-module-lens-name = "50IRC-F16";
|
|
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 MCLK_REF_MIPI0>;
|
|
clock-names = "xvclk";
|
|
reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_LOW>;
|
|
pwdn-gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mipi_refclk_out0>;
|
|
rockchip,camera-module-index = <0>;
|
|
rockchip,camera-module-facing = "back";
|
|
rockchip,camera-module-name = "CMK-OT2274-V10";
|
|
rockchip,camera-module-lens-name = "28IRC-F20";
|
|
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 MCLK_REF_MIPI0>;
|
|
clock-names = "xvclk";
|
|
reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
|
|
pwdn-gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mipi_refclk_out0>;
|
|
rockchip,camera-module-index = <0>;
|
|
rockchip,camera-module-facing = "back";
|
|
rockchip,camera-module-name = "CMK-OT2349-PC1";
|
|
rockchip,camera-module-lens-name = "65IRC-F20";
|
|
port {
|
|
sc301iot_out: endpoint {
|
|
remote-endpoint = <&csi_dphy_input4>;
|
|
data-lanes = <1 2>;
|
|
};
|
|
};
|
|
};
|
|
|
|
sc4336: sc4336@30 {
|
|
compatible = "smartsens,sc4336";
|
|
status = "okay";
|
|
reg = <0x30>;
|
|
clocks = <&cru MCLK_REF_MIPI1>;
|
|
clock-names = "xvclk";
|
|
reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
|
|
pwdn-gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mipi_refclk_out1>;
|
|
rockchip,camera-module-index = <1>;
|
|
rockchip,camera-module-facing = "back";
|
|
rockchip,camera-module-name = "OT01";
|
|
rockchip,camera-module-lens-name = "40IRC_F16";
|
|
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 MCLK_REF_MIPI1>;
|
|
clock-names = "xvclk";
|
|
reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_LOW>;
|
|
pwdn-gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mipi_refclk_out1>;
|
|
rockchip,camera-module-index = <1>;
|
|
rockchip,camera-module-facing = "back";
|
|
rockchip,camera-module-name = "CMK-OT2274-V10";
|
|
rockchip,camera-module-lens-name = "28IRC-F20";
|
|
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 MCLK_REF_MIPI1>;
|
|
clock-names = "xvclk";
|
|
reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
|
|
pwdn-gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mipi_refclk_out1>;
|
|
rockchip,camera-module-index = <1>;
|
|
rockchip,camera-module-facing = "back";
|
|
rockchip,camera-module-name = "CMK-OT2349-PC1";
|
|
rockchip,camera-module-lens-name = "65IRC-F20";
|
|
port {
|
|
sc301iot_1_out: endpoint {
|
|
remote-endpoint = <&csi_dphy_input5>;
|
|
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";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mipi_pins>;
|
|
};
|
|
|
|
&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>;
|
|
};
|
|
};
|
|
};
|