// 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) */ &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 = <&ahd_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>; }; }; 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>; tp9951_00: tp9951@45 { compatible = "techpoint,tp9951"; status = "okay"; reg = <0x45>; clocks = <&cru MCLK_REF_MIPI0>; clock-names = "xvclk"; reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_LOW>; power-gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&mipi_refclk_out0>; rockchip,camera-module-index = <1>; rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "tp9951"; rockchip,camera-module-lens-name = "tp9951"; port { ahd_out: endpoint { remote-endpoint = <&csi_dphy_input0>; data-lanes = <1 2>; }; }; }; sc3336: sc3336@30 { compatible = "smartsens,sc3336"; 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 = <0>; rockchip,camera-module-facing = "front"; 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>; }; }; }; }; &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_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_in1: endpoint { remote-endpoint = <&mipi_lvds1_sditf>; }; }; };