1*01950c46SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only OR MIT 2*01950c46SEmmanuel Vadot/** 3*01950c46SEmmanuel Vadot * DT Overlay for dual RPi Camera V2.1 (Sony IMX219) interfaced with CSI2 4*01950c46SEmmanuel Vadot * on J721E SK, AM68 SK or AM69-SK board. 5*01950c46SEmmanuel Vadot * https://datasheets.raspberrypi.org/camera/camera-v2-schematic.pdf 6*01950c46SEmmanuel Vadot * 7*01950c46SEmmanuel Vadot * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/ 8*01950c46SEmmanuel Vadot */ 9*01950c46SEmmanuel Vadot 10*01950c46SEmmanuel Vadot/dts-v1/; 11*01950c46SEmmanuel Vadot/plugin/; 12*01950c46SEmmanuel Vadot 13*01950c46SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 14*01950c46SEmmanuel Vadot#include "k3-pinctrl.h" 15*01950c46SEmmanuel Vadot 16*01950c46SEmmanuel Vadot&{/} { 17*01950c46SEmmanuel Vadot clk_imx219_fixed: imx219-xclk { 18*01950c46SEmmanuel Vadot compatible = "fixed-clock"; 19*01950c46SEmmanuel Vadot #clock-cells = <0>; 20*01950c46SEmmanuel Vadot clock-frequency = <24000000>; 21*01950c46SEmmanuel Vadot }; 22*01950c46SEmmanuel Vadot}; 23*01950c46SEmmanuel Vadot 24*01950c46SEmmanuel Vadot&csi_mux { 25*01950c46SEmmanuel Vadot idle-state = <1>; 26*01950c46SEmmanuel Vadot}; 27*01950c46SEmmanuel Vadot 28*01950c46SEmmanuel Vadot/* CAM0 I2C */ 29*01950c46SEmmanuel Vadot&cam0_i2c { 30*01950c46SEmmanuel Vadot #address-cells = <1>; 31*01950c46SEmmanuel Vadot #size-cells = <0>; 32*01950c46SEmmanuel Vadot imx219_0: imx219-0@10 { 33*01950c46SEmmanuel Vadot compatible = "sony,imx219"; 34*01950c46SEmmanuel Vadot reg = <0x10>; 35*01950c46SEmmanuel Vadot 36*01950c46SEmmanuel Vadot clocks = <&clk_imx219_fixed>; 37*01950c46SEmmanuel Vadot clock-names = "xclk"; 38*01950c46SEmmanuel Vadot 39*01950c46SEmmanuel Vadot port { 40*01950c46SEmmanuel Vadot csi2_cam0: endpoint { 41*01950c46SEmmanuel Vadot remote-endpoint = <&csi2rx0_in_sensor>; 42*01950c46SEmmanuel Vadot link-frequencies = /bits/ 64 <456000000>; 43*01950c46SEmmanuel Vadot clock-lanes = <0>; 44*01950c46SEmmanuel Vadot data-lanes = <1 2>; 45*01950c46SEmmanuel Vadot }; 46*01950c46SEmmanuel Vadot }; 47*01950c46SEmmanuel Vadot }; 48*01950c46SEmmanuel Vadot}; 49*01950c46SEmmanuel Vadot 50*01950c46SEmmanuel Vadot/* CAM1 I2C */ 51*01950c46SEmmanuel Vadot&cam1_i2c { 52*01950c46SEmmanuel Vadot #address-cells = <1>; 53*01950c46SEmmanuel Vadot #size-cells = <0>; 54*01950c46SEmmanuel Vadot imx219_1: imx219-1@10 { 55*01950c46SEmmanuel Vadot compatible = "sony,imx219"; 56*01950c46SEmmanuel Vadot reg = <0x10>; 57*01950c46SEmmanuel Vadot 58*01950c46SEmmanuel Vadot clocks = <&clk_imx219_fixed>; 59*01950c46SEmmanuel Vadot clock-names = "xclk"; 60*01950c46SEmmanuel Vadot 61*01950c46SEmmanuel Vadot port { 62*01950c46SEmmanuel Vadot csi2_cam1: endpoint { 63*01950c46SEmmanuel Vadot remote-endpoint = <&csi2rx1_in_sensor>; 64*01950c46SEmmanuel Vadot link-frequencies = /bits/ 64 <456000000>; 65*01950c46SEmmanuel Vadot clock-lanes = <0>; 66*01950c46SEmmanuel Vadot data-lanes = <1 2>; 67*01950c46SEmmanuel Vadot }; 68*01950c46SEmmanuel Vadot }; 69*01950c46SEmmanuel Vadot }; 70*01950c46SEmmanuel Vadot}; 71*01950c46SEmmanuel Vadot 72*01950c46SEmmanuel Vadot 73*01950c46SEmmanuel Vadot&cdns_csi2rx0 { 74*01950c46SEmmanuel Vadot ports { 75*01950c46SEmmanuel Vadot #address-cells = <1>; 76*01950c46SEmmanuel Vadot #size-cells = <0>; 77*01950c46SEmmanuel Vadot 78*01950c46SEmmanuel Vadot csi0_port0: port@0 { 79*01950c46SEmmanuel Vadot reg = <0>; 80*01950c46SEmmanuel Vadot status = "okay"; 81*01950c46SEmmanuel Vadot 82*01950c46SEmmanuel Vadot csi2rx0_in_sensor: endpoint { 83*01950c46SEmmanuel Vadot remote-endpoint = <&csi2_cam0>; 84*01950c46SEmmanuel Vadot bus-type = <4>; /* CSI2 DPHY. */ 85*01950c46SEmmanuel Vadot clock-lanes = <0>; 86*01950c46SEmmanuel Vadot data-lanes = <1 2>; 87*01950c46SEmmanuel Vadot }; 88*01950c46SEmmanuel Vadot }; 89*01950c46SEmmanuel Vadot 90*01950c46SEmmanuel Vadot csi0_port1: port@1 { 91*01950c46SEmmanuel Vadot reg = <1>; 92*01950c46SEmmanuel Vadot status = "disabled"; 93*01950c46SEmmanuel Vadot }; 94*01950c46SEmmanuel Vadot 95*01950c46SEmmanuel Vadot csi0_port2: port@2 { 96*01950c46SEmmanuel Vadot reg = <2>; 97*01950c46SEmmanuel Vadot status = "disabled"; 98*01950c46SEmmanuel Vadot }; 99*01950c46SEmmanuel Vadot 100*01950c46SEmmanuel Vadot csi0_port3: port@3 { 101*01950c46SEmmanuel Vadot reg = <3>; 102*01950c46SEmmanuel Vadot status = "disabled"; 103*01950c46SEmmanuel Vadot }; 104*01950c46SEmmanuel Vadot 105*01950c46SEmmanuel Vadot csi0_port4: port@4 { 106*01950c46SEmmanuel Vadot reg = <4>; 107*01950c46SEmmanuel Vadot status = "disabled"; 108*01950c46SEmmanuel Vadot }; 109*01950c46SEmmanuel Vadot }; 110*01950c46SEmmanuel Vadot}; 111*01950c46SEmmanuel Vadot 112*01950c46SEmmanuel Vadot&dphy0 { 113*01950c46SEmmanuel Vadot status = "okay"; 114*01950c46SEmmanuel Vadot}; 115*01950c46SEmmanuel Vadot 116*01950c46SEmmanuel Vadot&ti_csi2rx0 { 117*01950c46SEmmanuel Vadot status = "okay"; 118*01950c46SEmmanuel Vadot}; 119*01950c46SEmmanuel Vadot 120*01950c46SEmmanuel Vadot&cdns_csi2rx1 { 121*01950c46SEmmanuel Vadot ports { 122*01950c46SEmmanuel Vadot #address-cells = <1>; 123*01950c46SEmmanuel Vadot #size-cells = <0>; 124*01950c46SEmmanuel Vadot 125*01950c46SEmmanuel Vadot csi1_port0: port@0 { 126*01950c46SEmmanuel Vadot reg = <0>; 127*01950c46SEmmanuel Vadot status = "okay"; 128*01950c46SEmmanuel Vadot 129*01950c46SEmmanuel Vadot csi2rx1_in_sensor: endpoint { 130*01950c46SEmmanuel Vadot remote-endpoint = <&csi2_cam1>; 131*01950c46SEmmanuel Vadot bus-type = <4>; /* CSI2 DPHY. */ 132*01950c46SEmmanuel Vadot clock-lanes = <0>; 133*01950c46SEmmanuel Vadot data-lanes = <1 2>; 134*01950c46SEmmanuel Vadot }; 135*01950c46SEmmanuel Vadot }; 136*01950c46SEmmanuel Vadot 137*01950c46SEmmanuel Vadot csi1_port1: port@1 { 138*01950c46SEmmanuel Vadot reg = <1>; 139*01950c46SEmmanuel Vadot status = "disabled"; 140*01950c46SEmmanuel Vadot }; 141*01950c46SEmmanuel Vadot 142*01950c46SEmmanuel Vadot csi1_port2: port@2 { 143*01950c46SEmmanuel Vadot reg = <2>; 144*01950c46SEmmanuel Vadot status = "disabled"; 145*01950c46SEmmanuel Vadot }; 146*01950c46SEmmanuel Vadot 147*01950c46SEmmanuel Vadot csi1_port3: port@3 { 148*01950c46SEmmanuel Vadot reg = <3>; 149*01950c46SEmmanuel Vadot status = "disabled"; 150*01950c46SEmmanuel Vadot }; 151*01950c46SEmmanuel Vadot 152*01950c46SEmmanuel Vadot csi1_port4: port@4 { 153*01950c46SEmmanuel Vadot reg = <4>; 154*01950c46SEmmanuel Vadot status = "disabled"; 155*01950c46SEmmanuel Vadot }; 156*01950c46SEmmanuel Vadot }; 157*01950c46SEmmanuel Vadot}; 158*01950c46SEmmanuel Vadot 159*01950c46SEmmanuel Vadot&dphy1 { 160*01950c46SEmmanuel Vadot status = "okay"; 161*01950c46SEmmanuel Vadot}; 162*01950c46SEmmanuel Vadot 163*01950c46SEmmanuel Vadot&ti_csi2rx1 { 164*01950c46SEmmanuel Vadot status = "okay"; 165*01950c46SEmmanuel Vadot}; 166