xref: /linux/Documentation/devicetree/bindings/media/cdns,csi2tx.txt (revision 976e3645923bdd2fe7893aae33fd7a21098bfb28)
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