// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
/*
|
* Copyright (c) 2023 Wesion Technology Co., Ltd.
|
*
|
*/
|
|
&csi2_dcphy0 {
|
status = "okay";
|
|
ports {
|
#address-cells = <1>;
|
#size-cells = <0>;
|
port@0 {
|
reg = <0>;
|
#address-cells = <1>;
|
#size-cells = <0>;
|
|
mipi_in_dcphy0: endpoint@1 {
|
reg = <1>;
|
remote-endpoint = <&imx415b_out0>;
|
data-lanes = <1 2 3 4>;
|
};
|
};
|
port@1 {
|
reg = <1>;
|
#address-cells = <1>;
|
#size-cells = <0>;
|
|
csidcphy0_out: endpoint@0 {
|
reg = <0>;
|
remote-endpoint = <&mipi0_csi2_input>;
|
};
|
};
|
};
|
};
|
|
&mipi_dcphy0 {
|
status = "okay";
|
};
|
|
&csi2_dcphy1 {
|
status = "okay";
|
|
ports {
|
#address-cells = <1>;
|
#size-cells = <0>;
|
port@0 {
|
reg = <0>;
|
#address-cells = <1>;
|
#size-cells = <0>;
|
|
mipi_in_dcphy1: endpoint@1 {
|
reg = <1>;
|
remote-endpoint = <&imx415f_out1>;
|
data-lanes = <1 2 3 4>;
|
};
|
};
|
port@1 {
|
reg = <1>;
|
#address-cells = <1>;
|
#size-cells = <0>;
|
|
csidcphy1_out: endpoint@0 {
|
reg = <0>;
|
remote-endpoint = <&mipi1_csi2_input>;
|
};
|
};
|
};
|
};
|
|
&mipi_dcphy1 {
|
status = "okay";
|
};
|
|
&csi2_dphy0 {
|
status = "okay";
|
|
ports {
|
#address-cells = <1>;
|
#size-cells = <0>;
|
port@0 {
|
reg = <0>;
|
#address-cells = <1>;
|
#size-cells = <0>;
|
|
mipidphy0_in_ucam0: endpoint@1 {
|
reg = <1>;
|
remote-endpoint = <&imx415c_out0>;
|
data-lanes = <1 2 3 4>;
|
};
|
};
|
port@1 {
|
reg = <1>;
|
#address-cells = <1>;
|
#size-cells = <0>;
|
|
csidphy0_out: endpoint@0 {
|
reg = <0>;
|
remote-endpoint = <&mipi2_csi2_input>;
|
};
|
};
|
};
|
};
|
|
&csi2_dphy0_hw {
|
status = "okay";
|
};
|
|
&i2c4 {
|
status = "okay";
|
pinctrl-names = "default";
|
pinctrl-0 = <&i2c4m3_xfer>;
|
|
dw9714b: dw9714b@c {
|
compatible = "dongwoon,dw9714";
|
status = "okay";
|
reg = <0x0c>;
|
pinctrl-names = "focusb_gpios";
|
pinctrl-0 = <&focusb_gpio>;
|
focus-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
|
rockchip,vcm-start-current = <20>;
|
rockchip,vcm-rated-current = <76>;
|
rockchip,vcm-step-mode = <0>;
|
rockchip,camera-module-index = <0>;
|
rockchip,camera-module-facing = "back";
|
};
|
|
imx415b: imx415b@1a {
|
compatible = "sony,imx415";
|
status = "okay";
|
reg = <0x1a>;
|
clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;
|
clock-names = "xvclk";
|
power-domains = <&power RK3588_PD_VI>;
|
pinctrl-names = "default", "camb_gpios";
|
pinctrl-0 = <&mipim1_camera1_clk>, <&camb_gpio>;
|
rockchip,grf = <&sys_grf>;
|
reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_LOW>;
|
pwdn-gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>;
|
rockchip,camera-module-index = <0>;
|
rockchip,camera-module-facing = "back";
|
rockchip,camera-module-name = "CMK-OT2022-PX1";
|
rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20";
|
lens-focus = <&dw9714b>;
|
port {
|
imx415b_out0: endpoint {
|
remote-endpoint = <&mipi_in_dcphy0>;
|
data-lanes = <1 2 3 4>;
|
};
|
};
|
};
|
};
|
|
&i2c3 {
|
status = "okay";
|
pinctrl-names = "default";
|
pinctrl-0 = <&i2c3m0_xfer>;
|
|
dw9714f: dw9714f@c {
|
compatible = "dongwoon,dw9714";
|
status = "okay";
|
reg = <0x0c>;
|
pinctrl-names = "focusf_gpios";
|
pinctrl-0 = <&focusf_gpio>;
|
focus-gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
|
rockchip,vcm-start-current = <20>;
|
rockchip,vcm-rated-current = <76>;
|
rockchip,vcm-step-mode = <0>;
|
rockchip,camera-module-index = <1>;
|
rockchip,camera-module-facing = "front";
|
};
|
|
imx415f: imx415f@1a {
|
compatible = "sony,imx415";
|
status = "okay";
|
reg = <0x1a>;
|
clocks = <&cru CLK_MIPI_CAMARAOUT_M2>;
|
clock-names = "xvclk";
|
power-domains = <&power RK3588_PD_VI>;
|
pinctrl-names = "default", "camf_gpios";
|
pinctrl-0 = <&mipim1_camera2_clk>, <&camf_gpio>;
|
rockchip,grf = <&sys_grf>;
|
reset-gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_LOW>;
|
pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
|
rockchip,camera-module-index = <1>;
|
rockchip,camera-module-facing = "front";
|
rockchip,camera-module-name = "CMK-OT2022-PX1";
|
rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20";
|
lens-focus = <&dw9714f>;
|
port {
|
imx415f_out1: endpoint {
|
remote-endpoint = <&mipi_in_dcphy1>;
|
data-lanes = <1 2 3 4>;
|
};
|
};
|
};
|
};
|
|
&i2c8 {
|
status = "okay";
|
pinctrl-names = "default";
|
pinctrl-0 = <&i2c8m2_xfer>;
|
|
dw9714c: dw9714c@c {
|
compatible = "dongwoon,dw9714";
|
status = "okay";
|
reg = <0x0c>;
|
pinctrl-names = "focusc_gpios";
|
pinctrl-0 = <&focusc_gpio>;
|
focus-gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>;
|
rockchip,vcm-start-current = <20>;
|
rockchip,vcm-rated-current = <76>;
|
rockchip,vcm-step-mode = <0>;
|
rockchip,camera-module-index = <0>;
|
rockchip,camera-module-facing = "back";
|
};
|
|
imx415: imx415@1a {
|
compatible = "sony,imx415";
|
reg = <0x1a>;
|
clocks = <&cru CLK_MIPI_CAMARAOUT_M3>;
|
clock-names = "xvclk";
|
pinctrl-names = "default", "camc_gpios";
|
pinctrl-0 = <&mipim1_camera3_clk>, <&camc_gpio>;
|
power-domains = <&power RK3588_PD_VI>;
|
reset-gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
|
pwdn-gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
|
rockchip,camera-module-index = <0>;
|
rockchip,camera-module-facing = "back";
|
rockchip,camera-module-name = "CMK-OT2022-PX1";
|
rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20";
|
lens-focus = <&dw9714c>;
|
port {
|
imx415c_out0: endpoint {
|
remote-endpoint = <&mipidphy0_in_ucam0>;
|
data-lanes = <1 2 3 4>;
|
};
|
};
|
};
|
};
|
|
&pinctrl {
|
cam {
|
camf_gpio: camf-gpio {
|
rockchip,pins =
|
<3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>,
|
<3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
|
};
|
camb_gpio: camb-gpio {
|
rockchip,pins =
|
<1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>,
|
<1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
|
};
|
camc_gpio: camc-gpio {
|
rockchip,pins =
|
<3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>,
|
<1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
|
};
|
focusb_gpio: focusb-gpio {
|
rockchip,pins =
|
<1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
|
};
|
focusf_gpio: focusf-gpio {
|
rockchip,pins =
|
<1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
|
};
|
focusc_gpio: focusc-gpio {
|
rockchip,pins =
|
<1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
|
};
|
};
|
};
|
|
&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 = <&csidphy0_out>;
|
};
|
};
|
|
port@1 {
|
reg = <1>;
|
#address-cells = <1>;
|
#size-cells = <0>;
|
|
mipi2_csi2_output: endpoint@0 {
|
reg = <0>;
|
remote-endpoint = <&cif_mipi2_in0>;
|
};
|
};
|
};
|
};
|
|
&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 = <&isp0_vir1>;
|
};
|
};
|
};
|
|
&rkcif_mipi_lvds2 {
|
status = "okay";
|
|
port {
|
cif_mipi2_in0: endpoint {
|
remote-endpoint = <&mipi2_csi2_output>;
|
};
|
};
|
};
|
|
&rkcif_mipi_lvds2_sditf {
|
status = "okay";
|
|
port {
|
mipi_lvds2_sditf: endpoint {
|
remote-endpoint = <&isp1_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>;
|
remote-endpoint = <&mipi_lvds_sditf>;
|
};
|
};
|
};
|
|
&rkisp0_vir1 {
|
status = "okay";
|
|
port {
|
#address-cells = <1>;
|
#size-cells = <0>;
|
|
isp0_vir1: endpoint@0 {
|
reg = <0>;
|
remote-endpoint = <&mipi1_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 = <&mipi_lvds2_sditf>;
|
};
|
};
|
};
|