1844ef042SMaxime RipardCadence MIPI-CSI2 TX controller 2844ef042SMaxime Ripard=============================== 3844ef042SMaxime Ripard 4844ef042SMaxime RipardThe Cadence MIPI-CSI2 TX controller is a CSI-2 bridge supporting up to 5844ef042SMaxime Ripard4 CSI lanes in output, and up to 4 different pixel streams in input. 6844ef042SMaxime Ripard 7844ef042SMaxime RipardRequired properties: 8*c0a7c002SJan Kotas - compatible: must be set to "cdns,csi2tx" or "cdns,csi2tx-1.3" 9*c0a7c002SJan Kotas for version 1.3 of the controller, "cdns,csi2tx-2.1" for v2.1 10844ef042SMaxime Ripard - reg: base address and size of the memory mapped region 11844ef042SMaxime Ripard - clocks: phandles to the clocks driving the controller 12844ef042SMaxime Ripard - clock-names: must contain: 13844ef042SMaxime Ripard * esc_clk: escape mode clock 14844ef042SMaxime Ripard * p_clk: register bank clock 15844ef042SMaxime Ripard * pixel_if[0-3]_clk: pixel stream output clock, one for each stream 16844ef042SMaxime Ripard implemented in hardware, between 0 and 3 17844ef042SMaxime Ripard 18844ef042SMaxime RipardOptional properties 19844ef042SMaxime Ripard - phys: phandle to the D-PHY. If it is set, phy-names need to be set 20844ef042SMaxime Ripard - phy-names: must contain "dphy" 21844ef042SMaxime Ripard 22844ef042SMaxime RipardRequired subnodes: 23844ef042SMaxime Ripard - ports: A ports node with one port child node per device input and output 24844ef042SMaxime Ripard port, in accordance with the video interface bindings defined in 25844ef042SMaxime Ripard Documentation/devicetree/bindings/media/video-interfaces.txt. The 26844ef042SMaxime Ripard port nodes are numbered as follows. 27844ef042SMaxime Ripard 28844ef042SMaxime Ripard Port Description 29844ef042SMaxime Ripard ----------------------------- 30844ef042SMaxime Ripard 0 CSI-2 output 31844ef042SMaxime Ripard 1 Stream 0 input 32844ef042SMaxime Ripard 2 Stream 1 input 33844ef042SMaxime Ripard 3 Stream 2 input 34844ef042SMaxime Ripard 4 Stream 3 input 35844ef042SMaxime Ripard 36844ef042SMaxime Ripard The stream input port nodes are optional if they are not 37844ef042SMaxime Ripard connected to anything at the hardware level or implemented 38844ef042SMaxime Ripard in the design. Since there is only one endpoint per port, 39844ef042SMaxime Ripard the endpoints are not numbered. 40844ef042SMaxime Ripard 41844ef042SMaxime RipardExample: 42844ef042SMaxime Ripard 43844ef042SMaxime Ripardcsi2tx: csi-bridge@0d0e1000 { 44844ef042SMaxime Ripard compatible = "cdns,csi2tx"; 45844ef042SMaxime Ripard reg = <0x0d0e1000 0x1000>; 46844ef042SMaxime Ripard clocks = <&byteclock>, <&byteclock>, 47844ef042SMaxime Ripard <&coreclock>, <&coreclock>, 48844ef042SMaxime Ripard <&coreclock>, <&coreclock>; 49844ef042SMaxime Ripard clock-names = "p_clk", "esc_clk", 50844ef042SMaxime Ripard "pixel_if0_clk", "pixel_if1_clk", 51844ef042SMaxime Ripard "pixel_if2_clk", "pixel_if3_clk"; 52844ef042SMaxime Ripard 53844ef042SMaxime Ripard ports { 54844ef042SMaxime Ripard #address-cells = <1>; 55844ef042SMaxime Ripard #size-cells = <0>; 56844ef042SMaxime Ripard 57844ef042SMaxime Ripard port@0 { 58844ef042SMaxime Ripard reg = <0>; 59844ef042SMaxime Ripard 60844ef042SMaxime Ripard csi2tx_out: endpoint { 61844ef042SMaxime Ripard remote-endpoint = <&remote_in>; 62844ef042SMaxime Ripard clock-lanes = <0>; 63844ef042SMaxime Ripard data-lanes = <1 2>; 64844ef042SMaxime Ripard }; 65844ef042SMaxime Ripard }; 66844ef042SMaxime Ripard 67844ef042SMaxime Ripard port@1 { 68844ef042SMaxime Ripard reg = <1>; 69844ef042SMaxime Ripard 70844ef042SMaxime Ripard csi2tx_in_stream0: endpoint { 71844ef042SMaxime Ripard remote-endpoint = <&stream0_out>; 72844ef042SMaxime Ripard }; 73844ef042SMaxime Ripard }; 74844ef042SMaxime Ripard 75844ef042SMaxime Ripard port@2 { 76844ef042SMaxime Ripard reg = <2>; 77844ef042SMaxime Ripard 78844ef042SMaxime Ripard csi2tx_in_stream1: endpoint { 79844ef042SMaxime Ripard remote-endpoint = <&stream1_out>; 80844ef042SMaxime Ripard }; 81844ef042SMaxime Ripard }; 82844ef042SMaxime Ripard 83844ef042SMaxime Ripard port@3 { 84844ef042SMaxime Ripard reg = <3>; 85844ef042SMaxime Ripard 86844ef042SMaxime Ripard csi2tx_in_stream2: endpoint { 87844ef042SMaxime Ripard remote-endpoint = <&stream2_out>; 88844ef042SMaxime Ripard }; 89844ef042SMaxime Ripard }; 90844ef042SMaxime Ripard 91844ef042SMaxime Ripard port@4 { 92844ef042SMaxime Ripard reg = <4>; 93844ef042SMaxime Ripard 94844ef042SMaxime Ripard csi2tx_in_stream3: endpoint { 95844ef042SMaxime Ripard remote-endpoint = <&stream3_out>; 96844ef042SMaxime Ripard }; 97844ef042SMaxime Ripard }; 98844ef042SMaxime Ripard }; 99844ef042SMaxime Ripard}; 100