1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/media/cdns,csi2rx.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Cadence MIPI-CSI2 RX controller 8 9maintainers: 10 - Maxime Ripard <mripard@kernel.org> 11 12description: 13 The Cadence MIPI-CSI2 RX controller is a CSI-2 bridge supporting up to 4 CSI 14 lanes in input, and 4 different pixel streams in output. 15 16properties: 17 compatible: 18 items: 19 - enum: 20 - starfive,jh7110-csi2rx 21 - ti,j721e-csi2rx 22 - const: cdns,csi2rx 23 24 reg: 25 maxItems: 1 26 27 interrupts: 28 maxItems: 2 29 30 interrupt-names: 31 items: 32 - const: error_irq 33 - const: irq 34 35 clocks: 36 items: 37 - description: CSI2Rx system clock 38 - description: Gated Register bank clock for APB interface 39 - description: pixel Clock for Stream interface 0 40 - description: pixel Clock for Stream interface 1 41 - description: pixel Clock for Stream interface 2 42 - description: pixel Clock for Stream interface 3 43 44 clock-names: 45 items: 46 - const: sys_clk 47 - const: p_clk 48 - const: pixel_if0_clk 49 - const: pixel_if1_clk 50 - const: pixel_if2_clk 51 - const: pixel_if3_clk 52 53 resets: 54 items: 55 - description: CSI2Rx system reset 56 - description: Gated Register bank reset for APB interface 57 - description: pixel reset for Stream interface 0 58 - description: pixel reset for Stream interface 1 59 - description: pixel reset for Stream interface 2 60 - description: pixel reset for Stream interface 3 61 62 reset-names: 63 items: 64 - const: sys 65 - const: reg_bank 66 - const: pixel_if0 67 - const: pixel_if1 68 - const: pixel_if2 69 - const: pixel_if3 70 71 phys: 72 maxItems: 1 73 description: MIPI D-PHY 74 75 phy-names: 76 items: 77 - const: dphy 78 79 ports: 80 $ref: /schemas/graph.yaml#/properties/ports 81 82 properties: 83 port@0: 84 $ref: /schemas/graph.yaml#/$defs/port-base 85 unevaluatedProperties: false 86 description: 87 Input port node, single endpoint describing the CSI-2 transmitter. 88 89 properties: 90 endpoint: 91 $ref: video-interfaces.yaml# 92 unevaluatedProperties: false 93 94 properties: 95 bus-type: 96 const: 4 97 98 clock-lanes: 99 const: 0 100 101 data-lanes: 102 minItems: 1 103 maxItems: 4 104 items: 105 maximum: 4 106 107 required: 108 - data-lanes 109 110 port@1: 111 $ref: /schemas/graph.yaml#/properties/port 112 description: 113 Stream 0 Output port node 114 115 port@2: 116 $ref: /schemas/graph.yaml#/properties/port 117 description: 118 Stream 1 Output port node 119 120 port@3: 121 $ref: /schemas/graph.yaml#/properties/port 122 description: 123 Stream 2 Output port node 124 125 port@4: 126 $ref: /schemas/graph.yaml#/properties/port 127 description: 128 Stream 3 Output port node 129 130 required: 131 - port@0 132 133required: 134 - compatible 135 - reg 136 - clocks 137 - clock-names 138 - ports 139 140additionalProperties: false 141 142examples: 143 - | 144 csi@d060000 { 145 compatible = "starfive,jh7110-csi2rx", "cdns,csi2rx"; 146 reg = <0x0d060000 0x1000>; 147 clocks = <&byteclock 7>, <&byteclock 6>, 148 <&coreclock 8>, <&coreclock 9>, 149 <&coreclock 10>, <&coreclock 11>; 150 clock-names = "sys_clk", "p_clk", 151 "pixel_if0_clk", "pixel_if1_clk", 152 "pixel_if2_clk", "pixel_if3_clk"; 153 resets = <&bytereset 9>, <&bytereset 4>, 154 <&corereset 5>, <&corereset 6>, 155 <&corereset 7>, <&corereset 8>; 156 reset-names = "sys", "reg_bank", 157 "pixel_if0", "pixel_if1", 158 "pixel_if2", "pixel_if3"; 159 phys = <&csi_phy>; 160 phy-names = "dphy"; 161 162 ports { 163 #address-cells = <1>; 164 #size-cells = <0>; 165 166 port@0 { 167 reg = <0>; 168 169 csi2rx_in_sensor: endpoint { 170 remote-endpoint = <&sensor_out_csi2rx>; 171 clock-lanes = <0>; 172 data-lanes = <1 2>; 173 }; 174 }; 175 176 port@1 { 177 reg = <1>; 178 179 csi2rx_out_grabber0: endpoint { 180 remote-endpoint = <&grabber0_in_csi2rx>; 181 }; 182 }; 183 184 port@2 { 185 reg = <2>; 186 187 csi2rx_out_grabber1: endpoint { 188 remote-endpoint = <&grabber1_in_csi2rx>; 189 }; 190 }; 191 192 port@3 { 193 reg = <3>; 194 195 csi2rx_out_grabber2: endpoint { 196 remote-endpoint = <&grabber2_in_csi2rx>; 197 }; 198 }; 199 200 port@4 { 201 reg = <4>; 202 203 csi2rx_out_grabber3: endpoint { 204 remote-endpoint = <&grabber3_in_csi2rx>; 205 }; 206 }; 207 }; 208 }; 209 210... 211