WIP FPC-III support
[linux/fpc-iii.git] / Documentation / devicetree / bindings / media / xilinx / xlnx,csi2rxss.yaml
blob2961a5b6872f61414d3f39db96899a9a2002853a
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/media/xilinx/xlnx,csi2rxss.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Xilinx MIPI CSI-2 Receiver Subsystem
9 maintainers:
10   - Vishal Sagar <vishal.sagar@xilinx.com>
12 description: |
13   The Xilinx MIPI CSI-2 Receiver Subsystem is used to capture MIPI CSI-2
14   traffic from compliant camera sensors and send the output as AXI4 Stream
15   video data for image processing.
16   The subsystem consists of a MIPI D-PHY in slave mode which captures the
17   data packets. This is passed along the MIPI CSI-2 Rx IP which extracts the
18   packet data. The optional Video Format Bridge (VFB) converts this data to
19   AXI4 Stream video data.
20   For more details, please refer to PG232 Xilinx MIPI CSI-2 Receiver Subsystem.
21   Please note that this bindings includes only the MIPI CSI-2 Rx controller
22   and Video Format Bridge and not D-PHY.
24 properties:
25   compatible:
26     items:
27       - enum:
28           - xlnx,mipi-csi2-rx-subsystem-5.0
30   reg:
31     maxItems: 1
33   interrupts:
34     maxItems: 1
36   clocks:
37     description: List of clock specifiers
38     items:
39       - description: AXI Lite clock
40       - description: Video clock
42   clock-names:
43     items:
44       - const: lite_aclk
45       - const: video_aclk
47   xlnx,csi-pxl-format:
48     description: |
49       This denotes the CSI Data type selected in hw design.
50       Packets other than this data type (except for RAW8 and
51       User defined data types) will be filtered out.
52       Possible values are as below -
53       0x1e - YUV4228B
54       0x1f - YUV42210B
55       0x20 - RGB444
56       0x21 - RGB555
57       0x22 - RGB565
58       0x23 - RGB666
59       0x24 - RGB888
60       0x28 - RAW6
61       0x29 - RAW7
62       0x2a - RAW8
63       0x2b - RAW10
64       0x2c - RAW12
65       0x2d - RAW14
66       0x2e - RAW16
67       0x2f - RAW20
68     $ref: /schemas/types.yaml#/definitions/uint32
69     oneOf:
70       - minimum: 0x1e
71         maximum: 0x24
72       - minimum: 0x28
73         maximum: 0x2f
75   xlnx,vfb:
76     type: boolean
77     description: Present when Video Format Bridge is enabled in IP configuration
79   xlnx,en-csi-v2-0:
80     type: boolean
81     description: Present if CSI v2 is enabled in IP configuration.
83   xlnx,en-vcx:
84     type: boolean
85     description: |
86       When present, there are maximum 16 virtual channels, else only 4.
88   xlnx,en-active-lanes:
89     type: boolean
90     description: |
91       Present if the number of active lanes can be re-configured at
92       runtime in the Protocol Configuration Register. Otherwise all lanes,
93       as set in IP configuration, are always active.
95   video-reset-gpios:
96     description: Optional specifier for a GPIO that asserts video_aresetn.
97     maxItems: 1
99   ports:
100     type: object
102     properties:
103       port@0:
104         type: object
105         description: |
106           Input / sink port node, single endpoint describing the
107           CSI-2 transmitter.
109         properties:
110           reg:
111             const: 0
113           endpoint:
114             type: object
116             properties:
118               data-lanes:
119                 description: |
120                   This is required only in the sink port 0 endpoint which
121                   connects to MIPI CSI-2 source like sensor.
122                   The possible values are -
123                   1       - For 1 lane enabled in IP.
124                   1 2     - For 2 lanes enabled in IP.
125                   1 2 3   - For 3 lanes enabled in IP.
126                   1 2 3 4 - For 4 lanes enabled in IP.
127                 items:
128                   - const: 1
129                   - const: 2
130                   - const: 3
131                   - const: 4
133               remote-endpoint: true
135             required:
136               - data-lanes
137               - remote-endpoint
139             additionalProperties: false
141         additionalProperties: false
143       port@1:
144         type: object
145         description: |
146           Output / source port node, endpoint describing modules
147           connected the CSI-2 receiver.
149         properties:
151           reg:
152             const: 1
154           endpoint:
155             type: object
157             properties:
159               remote-endpoint: true
161             required:
162               - remote-endpoint
164             additionalProperties: false
166         additionalProperties: false
168 required:
169   - compatible
170   - reg
171   - interrupts
172   - clocks
173   - clock-names
174   - ports
176 allOf:
177   - if:
178       required:
179         - xlnx,vfb
180     then:
181       required:
182         - xlnx,csi-pxl-format
183     else:
184       properties:
185         xlnx,csi-pxl-format: false
187   - if:
188       not:
189         required:
190           - xlnx,en-csi-v2-0
191     then:
192       properties:
193         xlnx,en-vcx: false
195 additionalProperties: false
197 examples:
198   - |
199     #include <dt-bindings/gpio/gpio.h>
200     xcsi2rxss_1: csi2rx@a0020000 {
201         compatible = "xlnx,mipi-csi2-rx-subsystem-5.0";
202         reg = <0xa0020000 0x10000>;
203         interrupt-parent = <&gic>;
204         interrupts = <0 95 4>;
205         xlnx,csi-pxl-format = <0x2a>;
206         xlnx,vfb;
207         xlnx,en-active-lanes;
208         xlnx,en-csi-v2-0;
209         xlnx,en-vcx;
210         clock-names = "lite_aclk", "video_aclk";
211         clocks = <&misc_clk_0>, <&misc_clk_1>;
212         video-reset-gpios = <&gpio 86 GPIO_ACTIVE_LOW>;
214         ports {
215             #address-cells = <1>;
216             #size-cells = <0>;
218             port@0 {
219                 /* Sink port */
220                 reg = <0>;
221                 csiss_in: endpoint {
222                     data-lanes = <1 2 3 4>;
223                     /* MIPI CSI-2 Camera handle */
224                     remote-endpoint = <&camera_out>;
225                 };
226             };
227             port@1 {
228                 /* Source port */
229                 reg = <1>;
230                 csiss_out: endpoint {
231                     remote-endpoint = <&vproc_in>;
232                 };
233             };
234         };
235     };