1// SPDX-License-Identifier: GPL-2.0-only OR MIT 2/* 3 * DT Overlay for 4 x RPi Camera V2.1 on J722S-EVM board. 4 * 5 * Copyright (C) 2025 Texas Instruments Incorporated - https://www.ti.com/ 6 * 7 * Schematics: https://datasheets.raspberrypi.com/camera/camera-v2-schematics.pdf 8 */ 9 10/dts-v1/; 11/plugin/; 12 13#include <dt-bindings/gpio/gpio.h> 14#include "k3-pinctrl.h" 15 16&main_pmx0 { 17 cam0_reset_pins_default: cam0-default-reset-pins { 18 pinctrl-single,pins = < 19 J722S_IOPAD(0x03c, PIN_OUTPUT, 7) /* (R22) GPIO0_15 */ 20 >; 21 }; 22 23 cam1_reset_pins_default: cam1-default-reset-pins { 24 pinctrl-single,pins = < 25 J722S_IOPAD(0x044, PIN_OUTPUT, 7) /* (R26) GPIO0_17 */ 26 >; 27 }; 28 29 cam2_reset_pins_default: cam2-default-reset-pins { 30 pinctrl-single,pins = < 31 J722S_IOPAD(0x04c, PIN_OUTPUT, 7) /* (T25) GPIO0_19 */ 32 >; 33 }; 34 35 cam3_reset_pins_default: cam3-default-reset-pins { 36 pinctrl-single,pins = < 37 J722S_IOPAD(0x054, PIN_OUTPUT, 7) /* (T21) GPIO0_21 */ 38 >; 39 }; 40}; 41 42&{/} { 43 clk_imx219_fixed: clock-24000000 { 44 compatible = "fixed-clock"; 45 #clock-cells = <0>; 46 clock-frequency = <24000000>; 47 }; 48 49 reg_2p8v: regulator-2p8v { 50 compatible = "regulator-fixed"; 51 regulator-name = "2P8V"; 52 regulator-min-microvolt = <2800000>; 53 regulator-max-microvolt = <2800000>; 54 vin-supply = <&vsys_3v3_exp>; 55 regulator-always-on; 56 }; 57 58 reg_1p8v: regulator-1p8v { 59 compatible = "regulator-fixed"; 60 regulator-name = "1P8V"; 61 regulator-min-microvolt = <1800000>; 62 regulator-max-microvolt = <1800000>; 63 vin-supply = <&vsys_3v3_exp>; 64 regulator-always-on; 65 }; 66 67 reg_1p2v: regulator-1p2v { 68 compatible = "regulator-fixed"; 69 regulator-name = "1P2V"; 70 regulator-min-microvolt = <1200000>; 71 regulator-max-microvolt = <1200000>; 72 vin-supply = <&vsys_3v3_exp>; 73 regulator-always-on; 74 }; 75}; 76 77&csi01_mux { 78 idle-state = <1>; 79}; 80 81&csi23_mux { 82 idle-state = <1>; 83}; 84 85&pca9543_0 { 86 #address-cells = <1>; 87 #size-cells = <0>; 88 89 /* CAM0 I2C */ 90 i2c@0 { 91 #address-cells = <1>; 92 #size-cells = <0>; 93 reg = <0>; 94 95 imx219_0: sensor@10 { 96 compatible = "sony,imx219"; 97 reg = <0x10>; 98 99 clocks = <&clk_imx219_fixed>; 100 101 VANA-supply = <®_2p8v>; 102 VDIG-supply = <®_1p8v>; 103 VDDL-supply = <®_1p2v>; 104 105 pinctrl-names = "default"; 106 pinctrl-0 = <&cam0_reset_pins_default>; 107 108 reset-gpios = <&main_gpio0 15 GPIO_ACTIVE_HIGH>; 109 110 port { 111 csi2_cam0: endpoint { 112 remote-endpoint = <&csi2rx0_in_sensor>; 113 link-frequencies = /bits/ 64 <456000000>; 114 clock-lanes = <0>; 115 data-lanes = <1 2>; 116 }; 117 }; 118 }; 119 }; 120 121 /* CAM1 I2C */ 122 i2c@1 { 123 #address-cells = <1>; 124 #size-cells = <0>; 125 reg = <1>; 126 127 imx219_1: sensor@10 { 128 compatible = "sony,imx219"; 129 reg = <0x10>; 130 131 clocks = <&clk_imx219_fixed>; 132 133 VANA-supply = <®_2p8v>; 134 VDIG-supply = <®_1p8v>; 135 VDDL-supply = <®_1p2v>; 136 137 pinctrl-names = "default"; 138 pinctrl-0 = <&cam1_reset_pins_default>; 139 140 reset-gpios = <&main_gpio0 17 GPIO_ACTIVE_HIGH>; 141 142 port { 143 csi2_cam1: endpoint { 144 remote-endpoint = <&csi2rx1_in_sensor>; 145 link-frequencies = /bits/ 64 <456000000>; 146 clock-lanes = <0>; 147 data-lanes = <1 2>; 148 }; 149 }; 150 }; 151 }; 152}; 153 154&pca9543_1 { 155 #address-cells = <1>; 156 #size-cells = <0>; 157 158 /* CAM0 I2C */ 159 i2c@0 { 160 #address-cells = <1>; 161 #size-cells = <0>; 162 reg = <0>; 163 164 imx219_2: sensor@10 { 165 compatible = "sony,imx219"; 166 reg = <0x10>; 167 168 clocks = <&clk_imx219_fixed>; 169 170 VANA-supply = <®_2p8v>; 171 VDIG-supply = <®_1p8v>; 172 VDDL-supply = <®_1p2v>; 173 174 pinctrl-names = "default"; 175 pinctrl-0 = <&cam2_reset_pins_default>; 176 177 reset-gpios = <&main_gpio0 19 GPIO_ACTIVE_HIGH>; 178 179 port { 180 csi2_cam2: endpoint { 181 remote-endpoint = <&csi2rx2_in_sensor>; 182 link-frequencies = /bits/ 64 <456000000>; 183 clock-lanes = <0>; 184 data-lanes = <1 2>; 185 }; 186 }; 187 }; 188 }; 189 190 /* CAM1 I2C */ 191 i2c@1 { 192 #address-cells = <1>; 193 #size-cells = <0>; 194 reg = <1>; 195 196 imx219_3: sensor@10 { 197 compatible = "sony,imx219"; 198 reg = <0x10>; 199 200 clocks = <&clk_imx219_fixed>; 201 202 VANA-supply = <®_2p8v>; 203 VDIG-supply = <®_1p8v>; 204 VDDL-supply = <®_1p2v>; 205 206 pinctrl-names = "default"; 207 pinctrl-0 = <&cam3_reset_pins_default>; 208 209 reset-gpios = <&main_gpio0 21 GPIO_ACTIVE_HIGH>; 210 211 port { 212 csi2_cam3: endpoint { 213 remote-endpoint = <&csi2rx3_in_sensor>; 214 link-frequencies = /bits/ 64 <456000000>; 215 clock-lanes = <0>; 216 data-lanes = <1 2>; 217 }; 218 }; 219 }; 220 }; 221}; 222 223&cdns_csi2rx0 { 224 ports { 225 #address-cells = <1>; 226 #size-cells = <0>; 227 228 csi0_port0: port@0 { 229 reg = <0>; 230 status = "okay"; 231 232 csi2rx0_in_sensor: endpoint { 233 remote-endpoint = <&csi2_cam0>; 234 bus-type = <4>; /* CSI2 DPHY */ 235 clock-lanes = <0>; 236 data-lanes = <1 2>; 237 }; 238 }; 239 }; 240}; 241 242&cdns_csi2rx1 { 243 ports { 244 #address-cells = <1>; 245 #size-cells = <0>; 246 247 csi1_port0: port@0 { 248 reg = <0>; 249 status = "okay"; 250 251 csi2rx1_in_sensor: endpoint { 252 remote-endpoint = <&csi2_cam1>; 253 bus-type = <4>; /* CSI2 DPHY */ 254 clock-lanes = <0>; 255 data-lanes = <1 2>; 256 }; 257 }; 258 }; 259}; 260 261&cdns_csi2rx2 { 262 ports { 263 #address-cells = <1>; 264 #size-cells = <0>; 265 266 csi2_port0: port@0 { 267 reg = <0>; 268 status = "okay"; 269 270 csi2rx2_in_sensor: endpoint { 271 remote-endpoint = <&csi2_cam2>; 272 bus-type = <4>; /* CSI2 DPHY */ 273 clock-lanes = <0>; 274 data-lanes = <1 2>; 275 }; 276 }; 277 }; 278}; 279 280&cdns_csi2rx3 { 281 ports { 282 #address-cells = <1>; 283 #size-cells = <0>; 284 285 csi3_port0: port@0 { 286 reg = <0>; 287 status = "okay"; 288 289 csi2rx3_in_sensor: endpoint { 290 remote-endpoint = <&csi2_cam3>; 291 bus-type = <4>; /* CSI2 DPHY */ 292 clock-lanes = <0>; 293 data-lanes = <1 2>; 294 }; 295 }; 296 }; 297}; 298 299&ti_csi2rx0 { 300 status = "okay"; 301}; 302 303&dphy0 { 304 status = "okay"; 305}; 306 307&ti_csi2rx1 { 308 status = "okay"; 309}; 310 311&dphy1 { 312 status = "okay"; 313}; 314 315&ti_csi2rx2 { 316 status = "okay"; 317}; 318 319&dphy2 { 320 status = "okay"; 321}; 322 323&ti_csi2rx3 { 324 status = "okay"; 325}; 326 327&dphy3 { 328 status = "okay"; 329}; 330