Merge tag 'rtc-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / media / renesas,vin.txt
1 Renesas R-Car Video Input driver (rcar_vin)
2 -------------------------------------------
3
4 The rcar_vin device provides video input capabilities for the Renesas R-Car
5 family of devices.
6
7 Each VIN instance has a single parallel input that supports RGB and YUV video,
8 with both external synchronization and BT.656 synchronization for the latter.
9 Depending on the instance the VIN input is connected to external SoC pins, or
10 on Gen3 and RZ/G2 platforms to a CSI-2 receiver.
11
12  - compatible: Must be one or more of the following
13    - "renesas,vin-r8a7743" for the R8A7743 device
14    - "renesas,vin-r8a7744" for the R8A7744 device
15    - "renesas,vin-r8a7745" for the R8A7745 device
16    - "renesas,vin-r8a774a1" for the R8A774A1 device
17    - "renesas,vin-r8a774b1" for the R8A774B1 device
18    - "renesas,vin-r8a774c0" for the R8A774C0 device
19    - "renesas,vin-r8a7778" for the R8A7778 device
20    - "renesas,vin-r8a7779" for the R8A7779 device
21    - "renesas,vin-r8a7790" for the R8A7790 device
22    - "renesas,vin-r8a7791" for the R8A7791 device
23    - "renesas,vin-r8a7792" for the R8A7792 device
24    - "renesas,vin-r8a7793" for the R8A7793 device
25    - "renesas,vin-r8a7794" for the R8A7794 device
26    - "renesas,vin-r8a7795" for the R8A7795 device
27    - "renesas,vin-r8a7796" for the R8A7796 device
28    - "renesas,vin-r8a77965" for the R8A77965 device
29    - "renesas,vin-r8a77970" for the R8A77970 device
30    - "renesas,vin-r8a77980" for the R8A77980 device
31    - "renesas,vin-r8a77990" for the R8A77990 device
32    - "renesas,vin-r8a77995" for the R8A77995 device
33    - "renesas,rcar-gen2-vin" for a generic R-Car Gen2 or RZ/G1 compatible
34      device.
35
36    When compatible with the generic version nodes must list the
37    SoC-specific version corresponding to the platform first
38    followed by the generic version.
39
40  - reg: the register base and size for the device registers
41  - interrupts: the interrupt for the device
42  - clocks: Reference to the parent clock
43
44 Additionally, an alias named vinX will need to be created to specify
45 which video input device this is.
46
47 The per-board settings for Gen2 and RZ/G1 platforms:
48
49 - port - sub-node describing a single endpoint connected to the VIN
50   from external SoC pins as described in video-interfaces.txt[1].
51   Only the first one will be considered as each vin interface has one
52   input port.
53
54   - Optional properties for endpoint nodes:
55     - hsync-active: see [1] for description. Default is active high.
56     - vsync-active: see [1] for description. Default is active high.
57       If both HSYNC and VSYNC polarities are not specified, embedded
58       synchronization is selected.
59     - field-active-even: see [1] for description. Default is active high.
60     - bus-width: see [1] for description. The selected bus width depends on
61       the SoC type and selected input image format.
62       Valid values are: 8, 10, 12, 16, 24 and 32.
63     - data-shift: see [1] for description. Valid values are 0 and 8.
64     - data-enable-active: polarity of CLKENB signal, see [1] for
65       description. Default is active high.
66
67 The per-board settings for Gen3 and RZ/G2 platforms:
68
69 Gen3 and RZ/G2 platforms can support both a single connected parallel input
70 source from external SoC pins (port@0) and/or multiple parallel input sources
71 from local SoC CSI-2 receivers (port@1) depending on SoC.
72
73 - renesas,id - ID number of the VIN, VINx in the documentation.
74 - ports
75     - port@0 - sub-node describing a single endpoint connected to the VIN
76       from external SoC pins as described in video-interfaces.txt[1].
77       Describing more than one endpoint in port@0 is invalid. Only VIN
78       instances that are connected to external pins should have port@0.
79
80       Endpoint nodes of port@0 support the optional properties listed in
81       the Gen2 per-board settings description.
82
83     - port@1 - sub-nodes describing one or more endpoints connected to
84       the VIN from local SoC CSI-2 receivers. The endpoint numbers must
85       use the following schema.
86
87         - endpoint@0 - sub-node describing the endpoint connected to CSI20
88         - endpoint@1 - sub-node describing the endpoint connected to CSI21
89         - endpoint@2 - sub-node describing the endpoint connected to CSI40
90         - endpoint@3 - sub-node describing the endpoint connected to CSI41
91
92       Endpoint nodes of port@1 do not support any optional endpoint property.
93
94 Device node example for Gen2 platforms
95 --------------------------------------
96
97         aliases {
98                 vin0 = &vin0;
99         };
100
101         vin0: vin@e6ef0000 {
102                 compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
103                 clocks = <&mstp8_clks R8A7790_CLK_VIN0>;
104                 reg = <0 0xe6ef0000 0 0x1000>;
105                 interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>;
106                 status = "disabled";
107         };
108
109 Board setup example for Gen2 platforms (vin1 composite video input)
110 -------------------------------------------------------------------
111
112 &i2c2   {
113         status = "okay";
114         pinctrl-0 = <&i2c2_pins>;
115         pinctrl-names = "default";
116
117         adv7180@20 {
118                 compatible = "adi,adv7180";
119                 reg = <0x20>;
120                 remote = <&vin1>;
121
122                 port {
123                         adv7180: endpoint {
124                                 bus-width = <8>;
125                                 remote-endpoint = <&vin1ep0>;
126                         };
127                 };
128         };
129 };
130
131 /* composite video input */
132 &vin1 {
133         pinctrl-0 = <&vin1_pins>;
134         pinctrl-names = "default";
135
136         status = "okay";
137
138         port {
139                 vin1ep0: endpoint {
140                         remote-endpoint = <&adv7180>;
141                         bus-width = <8>;
142                 };
143         };
144 };
145
146 Device node example for Gen3 platforms
147 --------------------------------------
148
149         vin0: video@e6ef0000 {
150                 compatible = "renesas,vin-r8a7795";
151                 reg = <0 0xe6ef0000 0 0x1000>;
152                 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
153                 clocks = <&cpg CPG_MOD 811>;
154                 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
155                 resets = <&cpg 811>;
156                 renesas,id = <0>;
157
158                 ports {
159                         #address-cells = <1>;
160                         #size-cells = <0>;
161
162                         port@1 {
163                                 #address-cells = <1>;
164                                 #size-cells = <0>;
165
166                                 reg = <1>;
167
168                                 vin0csi20: endpoint@0 {
169                                         reg = <0>;
170                                         remote-endpoint= <&csi20vin0>;
171                                 };
172                                 vin0csi21: endpoint@1 {
173                                         reg = <1>;
174                                         remote-endpoint= <&csi21vin0>;
175                                 };
176                                 vin0csi40: endpoint@2 {
177                                         reg = <2>;
178                                         remote-endpoint= <&csi40vin0>;
179                                 };
180                         };
181                 };
182         };
183
184         csi20: csi2@fea80000 {
185                 compatible = "renesas,r8a7795-csi2";
186                 reg = <0 0xfea80000 0 0x10000>;
187                 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
188                 clocks = <&cpg CPG_MOD 714>;
189                 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
190                 resets = <&cpg 714>;
191
192                 ports {
193                         #address-cells = <1>;
194                         #size-cells = <0>;
195
196                         port@0 {
197                                 reg = <0>;
198                                 csi20_in: endpoint {
199                                         clock-lanes = <0>;
200                                         data-lanes = <1>;
201                                         remote-endpoint = <&adv7482_txb>;
202                                 };
203                         };
204
205                         port@1 {
206                                 #address-cells = <1>;
207                                 #size-cells = <0>;
208
209                                 reg = <1>;
210
211                                 csi20vin0: endpoint@0 {
212                                         reg = <0>;
213                                         remote-endpoint = <&vin0csi20>;
214                                 };
215                         };
216                 };
217         };
218
219 [1] video-interfaces.txt common video media interface