| // SPDX-License-Identifier: GPL-2.0-only OR MIT |
| /* |
| * DT Overlay for 4 x RPi Camera V2.1 on J722S-EVM board. |
| * |
| * Copyright (C) 2025 Texas Instruments Incorporated - https://www.ti.com/ |
| * |
| * Schematics: https://datasheets.raspberrypi.com/camera/camera-v2-schematics.pdf |
| */ |
| |
| /dts-v1/; |
| /plugin/; |
| |
| #include <dt-bindings/gpio/gpio.h> |
| #include "k3-pinctrl.h" |
| |
| &main_pmx0 { |
| cam0_reset_pins_default: cam0-default-reset-pins { |
| pinctrl-single,pins = < |
| J722S_IOPAD(0x03c, PIN_OUTPUT, 7) /* (R22) GPIO0_15 */ |
| >; |
| }; |
| |
| cam1_reset_pins_default: cam1-default-reset-pins { |
| pinctrl-single,pins = < |
| J722S_IOPAD(0x044, PIN_OUTPUT, 7) /* (R26) GPIO0_17 */ |
| >; |
| }; |
| |
| cam2_reset_pins_default: cam2-default-reset-pins { |
| pinctrl-single,pins = < |
| J722S_IOPAD(0x04c, PIN_OUTPUT, 7) /* (T25) GPIO0_19 */ |
| >; |
| }; |
| |
| cam3_reset_pins_default: cam3-default-reset-pins { |
| pinctrl-single,pins = < |
| J722S_IOPAD(0x054, PIN_OUTPUT, 7) /* (T21) GPIO0_21 */ |
| >; |
| }; |
| }; |
| |
| &{/} { |
| clk_imx219_fixed: clock-24000000 { |
| compatible = "fixed-clock"; |
| #clock-cells = <0>; |
| clock-frequency = <24000000>; |
| }; |
| |
| reg_2p8v: regulator-2p8v { |
| compatible = "regulator-fixed"; |
| regulator-name = "2P8V"; |
| regulator-min-microvolt = <2800000>; |
| regulator-max-microvolt = <2800000>; |
| vin-supply = <&vsys_3v3_exp>; |
| regulator-always-on; |
| }; |
| |
| reg_1p8v: regulator-1p8v { |
| compatible = "regulator-fixed"; |
| regulator-name = "1P8V"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| vin-supply = <&vsys_3v3_exp>; |
| regulator-always-on; |
| }; |
| |
| reg_1p2v: regulator-1p2v { |
| compatible = "regulator-fixed"; |
| regulator-name = "1P2V"; |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <1200000>; |
| vin-supply = <&vsys_3v3_exp>; |
| regulator-always-on; |
| }; |
| }; |
| |
| &csi01_mux { |
| idle-state = <1>; |
| }; |
| |
| &csi23_mux { |
| idle-state = <1>; |
| }; |
| |
| &pca9543_0 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| /* CAM0 I2C */ |
| i2c@0 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0>; |
| |
| imx219_0: sensor@10 { |
| compatible = "sony,imx219"; |
| reg = <0x10>; |
| |
| clocks = <&clk_imx219_fixed>; |
| |
| VANA-supply = <®_2p8v>; |
| VDIG-supply = <®_1p8v>; |
| VDDL-supply = <®_1p2v>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&cam0_reset_pins_default>; |
| |
| reset-gpios = <&main_gpio0 15 GPIO_ACTIVE_HIGH>; |
| |
| port { |
| csi2_cam0: endpoint { |
| remote-endpoint = <&csi2rx0_in_sensor>; |
| link-frequencies = /bits/ 64 <456000000>; |
| clock-lanes = <0>; |
| data-lanes = <1 2>; |
| }; |
| }; |
| }; |
| }; |
| |
| /* CAM1 I2C */ |
| i2c@1 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <1>; |
| |
| imx219_1: sensor@10 { |
| compatible = "sony,imx219"; |
| reg = <0x10>; |
| |
| clocks = <&clk_imx219_fixed>; |
| |
| VANA-supply = <®_2p8v>; |
| VDIG-supply = <®_1p8v>; |
| VDDL-supply = <®_1p2v>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&cam1_reset_pins_default>; |
| |
| reset-gpios = <&main_gpio0 17 GPIO_ACTIVE_HIGH>; |
| |
| port { |
| csi2_cam1: endpoint { |
| remote-endpoint = <&csi2rx1_in_sensor>; |
| link-frequencies = /bits/ 64 <456000000>; |
| clock-lanes = <0>; |
| data-lanes = <1 2>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| &pca9543_1 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| /* CAM0 I2C */ |
| i2c@0 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0>; |
| |
| imx219_2: sensor@10 { |
| compatible = "sony,imx219"; |
| reg = <0x10>; |
| |
| clocks = <&clk_imx219_fixed>; |
| |
| VANA-supply = <®_2p8v>; |
| VDIG-supply = <®_1p8v>; |
| VDDL-supply = <®_1p2v>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&cam2_reset_pins_default>; |
| |
| reset-gpios = <&main_gpio0 19 GPIO_ACTIVE_HIGH>; |
| |
| port { |
| csi2_cam2: endpoint { |
| remote-endpoint = <&csi2rx2_in_sensor>; |
| link-frequencies = /bits/ 64 <456000000>; |
| clock-lanes = <0>; |
| data-lanes = <1 2>; |
| }; |
| }; |
| }; |
| }; |
| |
| /* CAM1 I2C */ |
| i2c@1 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <1>; |
| |
| imx219_3: sensor@10 { |
| compatible = "sony,imx219"; |
| reg = <0x10>; |
| |
| clocks = <&clk_imx219_fixed>; |
| |
| VANA-supply = <®_2p8v>; |
| VDIG-supply = <®_1p8v>; |
| VDDL-supply = <®_1p2v>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&cam3_reset_pins_default>; |
| |
| reset-gpios = <&main_gpio0 21 GPIO_ACTIVE_HIGH>; |
| |
| port { |
| csi2_cam3: endpoint { |
| remote-endpoint = <&csi2rx3_in_sensor>; |
| link-frequencies = /bits/ 64 <456000000>; |
| clock-lanes = <0>; |
| data-lanes = <1 2>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| &cdns_csi2rx0 { |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| csi0_port0: port@0 { |
| reg = <0>; |
| status = "okay"; |
| |
| csi2rx0_in_sensor: endpoint { |
| remote-endpoint = <&csi2_cam0>; |
| bus-type = <4>; /* CSI2 DPHY */ |
| clock-lanes = <0>; |
| data-lanes = <1 2>; |
| }; |
| }; |
| }; |
| }; |
| |
| &cdns_csi2rx1 { |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| csi1_port0: port@0 { |
| reg = <0>; |
| status = "okay"; |
| |
| csi2rx1_in_sensor: endpoint { |
| remote-endpoint = <&csi2_cam1>; |
| bus-type = <4>; /* CSI2 DPHY */ |
| clock-lanes = <0>; |
| data-lanes = <1 2>; |
| }; |
| }; |
| }; |
| }; |
| |
| &cdns_csi2rx2 { |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| csi2_port0: port@0 { |
| reg = <0>; |
| status = "okay"; |
| |
| csi2rx2_in_sensor: endpoint { |
| remote-endpoint = <&csi2_cam2>; |
| bus-type = <4>; /* CSI2 DPHY */ |
| clock-lanes = <0>; |
| data-lanes = <1 2>; |
| }; |
| }; |
| }; |
| }; |
| |
| &cdns_csi2rx3 { |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| csi3_port0: port@0 { |
| reg = <0>; |
| status = "okay"; |
| |
| csi2rx3_in_sensor: endpoint { |
| remote-endpoint = <&csi2_cam3>; |
| bus-type = <4>; /* CSI2 DPHY */ |
| clock-lanes = <0>; |
| data-lanes = <1 2>; |
| }; |
| }; |
| }; |
| }; |
| |
| &ti_csi2rx0 { |
| status = "okay"; |
| }; |
| |
| &dphy0 { |
| status = "okay"; |
| }; |
| |
| &ti_csi2rx1 { |
| status = "okay"; |
| }; |
| |
| &dphy1 { |
| status = "okay"; |
| }; |
| |
| &ti_csi2rx2 { |
| status = "okay"; |
| }; |
| |
| &dphy2 { |
| status = "okay"; |
| }; |
| |
| &ti_csi2rx3 { |
| status = "okay"; |
| }; |
| |
| &dphy3 { |
| status = "okay"; |
| }; |