1*01950c46SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*01950c46SEmmanuel Vadot/* 3*01950c46SEmmanuel Vadot * Device Tree Source for the White Hawk CSI/DSI sub-board 4*01950c46SEmmanuel Vadot * 5*01950c46SEmmanuel Vadot * Copyright (C) 2022 Glider bv 6*01950c46SEmmanuel Vadot */ 7*01950c46SEmmanuel Vadot 8*01950c46SEmmanuel Vadot#include <dt-bindings/media/video-interfaces.h> 9*01950c46SEmmanuel Vadot 10*01950c46SEmmanuel Vadot&csi40 { 11*01950c46SEmmanuel Vadot status = "okay"; 12*01950c46SEmmanuel Vadot 13*01950c46SEmmanuel Vadot ports { 14*01950c46SEmmanuel Vadot #address-cells = <1>; 15*01950c46SEmmanuel Vadot #size-cells = <0>; 16*01950c46SEmmanuel Vadot 17*01950c46SEmmanuel Vadot port@0 { 18*01950c46SEmmanuel Vadot reg = <0>; 19*01950c46SEmmanuel Vadot 20*01950c46SEmmanuel Vadot csi40_in: endpoint { 21*01950c46SEmmanuel Vadot bus-type = <MEDIA_BUS_TYPE_CSI2_CPHY>; 22*01950c46SEmmanuel Vadot clock-lanes = <0>; 23*01950c46SEmmanuel Vadot data-lanes = <1 2 3>; 24*01950c46SEmmanuel Vadot remote-endpoint = <&max96712_out0>; 25*01950c46SEmmanuel Vadot }; 26*01950c46SEmmanuel Vadot }; 27*01950c46SEmmanuel Vadot }; 28*01950c46SEmmanuel Vadot}; 29*01950c46SEmmanuel Vadot 30*01950c46SEmmanuel Vadot&csi41 { 31*01950c46SEmmanuel Vadot status = "okay"; 32*01950c46SEmmanuel Vadot 33*01950c46SEmmanuel Vadot ports { 34*01950c46SEmmanuel Vadot #address-cells = <1>; 35*01950c46SEmmanuel Vadot #size-cells = <0>; 36*01950c46SEmmanuel Vadot 37*01950c46SEmmanuel Vadot port@0 { 38*01950c46SEmmanuel Vadot reg = <0>; 39*01950c46SEmmanuel Vadot 40*01950c46SEmmanuel Vadot csi41_in: endpoint { 41*01950c46SEmmanuel Vadot bus-type = <MEDIA_BUS_TYPE_CSI2_CPHY>; 42*01950c46SEmmanuel Vadot clock-lanes = <0>; 43*01950c46SEmmanuel Vadot data-lanes = <1 2 3>; 44*01950c46SEmmanuel Vadot remote-endpoint = <&max96712_out1>; 45*01950c46SEmmanuel Vadot }; 46*01950c46SEmmanuel Vadot }; 47*01950c46SEmmanuel Vadot }; 48*01950c46SEmmanuel Vadot}; 49*01950c46SEmmanuel Vadot 50*01950c46SEmmanuel Vadot&i2c0 { 51*01950c46SEmmanuel Vadot pca9654_a: gpio@21 { 52*01950c46SEmmanuel Vadot compatible = "onnn,pca9654"; 53*01950c46SEmmanuel Vadot reg = <0x21>; 54*01950c46SEmmanuel Vadot gpio-controller; 55*01950c46SEmmanuel Vadot #gpio-cells = <2>; 56*01950c46SEmmanuel Vadot }; 57*01950c46SEmmanuel Vadot 58*01950c46SEmmanuel Vadot pca9654_b: gpio@22 { 59*01950c46SEmmanuel Vadot compatible = "onnn,pca9654"; 60*01950c46SEmmanuel Vadot reg = <0x22>; 61*01950c46SEmmanuel Vadot gpio-controller; 62*01950c46SEmmanuel Vadot #gpio-cells = <2>; 63*01950c46SEmmanuel Vadot }; 64*01950c46SEmmanuel Vadot 65*01950c46SEmmanuel Vadot eeprom@52 { 66*01950c46SEmmanuel Vadot compatible = "rohm,br24g01", "atmel,24c01"; 67*01950c46SEmmanuel Vadot label = "csi-dsi-sub-board-id"; 68*01950c46SEmmanuel Vadot reg = <0x52>; 69*01950c46SEmmanuel Vadot pagesize = <8>; 70*01950c46SEmmanuel Vadot }; 71*01950c46SEmmanuel Vadot}; 72*01950c46SEmmanuel Vadot 73*01950c46SEmmanuel Vadot&i2c1 { 74*01950c46SEmmanuel Vadot gmsl0: gmsl-deserializer@49 { 75*01950c46SEmmanuel Vadot compatible = "maxim,max96712"; 76*01950c46SEmmanuel Vadot reg = <0x49>; 77*01950c46SEmmanuel Vadot enable-gpios = <&pca9654_a 0 GPIO_ACTIVE_HIGH>; 78*01950c46SEmmanuel Vadot 79*01950c46SEmmanuel Vadot ports { 80*01950c46SEmmanuel Vadot #address-cells = <1>; 81*01950c46SEmmanuel Vadot #size-cells = <0>; 82*01950c46SEmmanuel Vadot 83*01950c46SEmmanuel Vadot port@4 { 84*01950c46SEmmanuel Vadot reg = <4>; 85*01950c46SEmmanuel Vadot max96712_out0: endpoint { 86*01950c46SEmmanuel Vadot bus-type = <MEDIA_BUS_TYPE_CSI2_CPHY>; 87*01950c46SEmmanuel Vadot clock-lanes = <0>; 88*01950c46SEmmanuel Vadot data-lanes = <1 2 3>; 89*01950c46SEmmanuel Vadot remote-endpoint = <&csi40_in>; 90*01950c46SEmmanuel Vadot }; 91*01950c46SEmmanuel Vadot }; 92*01950c46SEmmanuel Vadot }; 93*01950c46SEmmanuel Vadot }; 94*01950c46SEmmanuel Vadot 95*01950c46SEmmanuel Vadot gmsl1: gmsl-deserializer@4b { 96*01950c46SEmmanuel Vadot compatible = "maxim,max96712"; 97*01950c46SEmmanuel Vadot reg = <0x4b>; 98*01950c46SEmmanuel Vadot enable-gpios = <&pca9654_b 0 GPIO_ACTIVE_HIGH>; 99*01950c46SEmmanuel Vadot 100*01950c46SEmmanuel Vadot ports { 101*01950c46SEmmanuel Vadot #address-cells = <1>; 102*01950c46SEmmanuel Vadot #size-cells = <0>; 103*01950c46SEmmanuel Vadot 104*01950c46SEmmanuel Vadot port@4 { 105*01950c46SEmmanuel Vadot reg = <4>; 106*01950c46SEmmanuel Vadot max96712_out1: endpoint { 107*01950c46SEmmanuel Vadot bus-type = <MEDIA_BUS_TYPE_CSI2_CPHY>; 108*01950c46SEmmanuel Vadot clock-lanes = <0>; 109*01950c46SEmmanuel Vadot data-lanes = <1 2 3>; 110*01950c46SEmmanuel Vadot remote-endpoint = <&csi41_in>; 111*01950c46SEmmanuel Vadot }; 112*01950c46SEmmanuel Vadot }; 113*01950c46SEmmanuel Vadot }; 114*01950c46SEmmanuel Vadot }; 115*01950c46SEmmanuel Vadot}; 116*01950c46SEmmanuel Vadot 117*01950c46SEmmanuel Vadot&isp0 { 118*01950c46SEmmanuel Vadot status = "okay"; 119*01950c46SEmmanuel Vadot}; 120*01950c46SEmmanuel Vadot 121*01950c46SEmmanuel Vadot&isp1 { 122*01950c46SEmmanuel Vadot status = "okay"; 123*01950c46SEmmanuel Vadot}; 124*01950c46SEmmanuel Vadot 125*01950c46SEmmanuel Vadot&vin00 { 126*01950c46SEmmanuel Vadot status = "okay"; 127*01950c46SEmmanuel Vadot}; 128*01950c46SEmmanuel Vadot 129*01950c46SEmmanuel Vadot&vin01 { 130*01950c46SEmmanuel Vadot status = "okay"; 131*01950c46SEmmanuel Vadot}; 132*01950c46SEmmanuel Vadot 133*01950c46SEmmanuel Vadot&vin02 { 134*01950c46SEmmanuel Vadot status = "okay"; 135*01950c46SEmmanuel Vadot}; 136*01950c46SEmmanuel Vadot 137*01950c46SEmmanuel Vadot&vin03 { 138*01950c46SEmmanuel Vadot status = "okay"; 139*01950c46SEmmanuel Vadot}; 140*01950c46SEmmanuel Vadot 141*01950c46SEmmanuel Vadot&vin04 { 142*01950c46SEmmanuel Vadot status = "okay"; 143*01950c46SEmmanuel Vadot}; 144*01950c46SEmmanuel Vadot 145*01950c46SEmmanuel Vadot&vin05 { 146*01950c46SEmmanuel Vadot status = "okay"; 147*01950c46SEmmanuel Vadot}; 148*01950c46SEmmanuel Vadot 149*01950c46SEmmanuel Vadot&vin06 { 150*01950c46SEmmanuel Vadot status = "okay"; 151*01950c46SEmmanuel Vadot}; 152*01950c46SEmmanuel Vadot 153*01950c46SEmmanuel Vadot&vin07 { 154*01950c46SEmmanuel Vadot status = "okay"; 155*01950c46SEmmanuel Vadot}; 156*01950c46SEmmanuel Vadot 157*01950c46SEmmanuel Vadot&vin08 { 158*01950c46SEmmanuel Vadot status = "okay"; 159*01950c46SEmmanuel Vadot}; 160*01950c46SEmmanuel Vadot 161*01950c46SEmmanuel Vadot&vin09 { 162*01950c46SEmmanuel Vadot status = "okay"; 163*01950c46SEmmanuel Vadot}; 164*01950c46SEmmanuel Vadot 165*01950c46SEmmanuel Vadot&vin10 { 166*01950c46SEmmanuel Vadot status = "okay"; 167*01950c46SEmmanuel Vadot}; 168*01950c46SEmmanuel Vadot 169*01950c46SEmmanuel Vadot&vin11 { 170*01950c46SEmmanuel Vadot status = "okay"; 171*01950c46SEmmanuel Vadot}; 172*01950c46SEmmanuel Vadot 173*01950c46SEmmanuel Vadot&vin12 { 174*01950c46SEmmanuel Vadot status = "okay"; 175*01950c46SEmmanuel Vadot}; 176*01950c46SEmmanuel Vadot 177*01950c46SEmmanuel Vadot&vin13 { 178*01950c46SEmmanuel Vadot status = "okay"; 179*01950c46SEmmanuel Vadot}; 180*01950c46SEmmanuel Vadot 181*01950c46SEmmanuel Vadot&vin14 { 182*01950c46SEmmanuel Vadot status = "okay"; 183*01950c46SEmmanuel Vadot}; 184*01950c46SEmmanuel Vadot 185*01950c46SEmmanuel Vadot&vin15 { 186*01950c46SEmmanuel Vadot status = "okay"; 187*01950c46SEmmanuel Vadot}; 188