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