Merge branch 'core/urgent' into core/entry
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / media / ti,cal.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/media/ti,cal.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Texas Instruments DRA72x CAMERA ADAPTATION LAYER (CAL) Device Tree Bindings
8
9 maintainers:
10   - Benoit Parrot <bparrot@ti.com>
11
12 description: |-
13   The Camera Adaptation Layer (CAL) is a key component for image capture
14   applications. The capture module provides the system interface and the
15   processing capability to connect CSI2 image-sensor modules to the
16   DRA72x device.
17
18   CAL supports 2 camera port nodes on MIPI bus. Each CSI2 camera port nodes
19   should contain a 'port' child node with child 'endpoint' node. Please
20   refer to the bindings defined in
21   Documentation/devicetree/bindings/media/video-interfaces.txt.
22
23 properties:
24   compatible:
25     enum:
26       # for DRA72 controllers
27       - ti,dra72-cal
28       # for DRA72 controllers pre ES2.0
29       - ti,dra72-pre-es2-cal
30       # for DRA76 controllers
31       - ti,dra76-cal
32       # for AM654 controllers
33       - ti,am654-cal
34
35   reg:
36     minItems: 2
37     items:
38       - description: The CAL main register region
39       - description: The RX Core0 (DPHY0) register region
40       - description: The RX Core1 (DPHY1) register region
41
42   reg-names:
43     minItems: 2
44     items:
45       - const: cal_top
46       - const: cal_rx_core0
47       - const: cal_rx_core1
48
49   interrupts:
50     maxItems: 1
51
52   ti,camerrx-control:
53     $ref: "/schemas/types.yaml#/definitions/phandle-array"
54     description:
55       phandle to the device control module and offset to the
56       control_camerarx_core register
57
58   clocks:
59     maxItems: 1
60
61   clock-names:
62     const: fck
63
64   power-domains:
65     description:
66       List of phandle and PM domain specifier as documented in
67       Documentation/devicetree/bindings/power/power_domain.txt
68     maxItems: 1
69
70   # See ./video-interfaces.txt for details
71   ports:
72     type: object
73     additionalProperties: false
74
75     properties:
76       "#address-cells":
77         const: 1
78
79       "#size-cells":
80         const: 0
81
82       port@0:
83         type: object
84         additionalProperties: false
85
86         properties:
87           reg:
88             const: 0
89             description: CSI2 Port #0
90
91         patternProperties:
92           endpoint:
93             type: object
94             additionalProperties: false
95
96             properties:
97               clock-lanes:
98                 maxItems: 1
99
100               data-lanes:
101                 minItems: 1
102                 maxItems: 4
103
104               remote-endpoint: true
105
106         required:
107           - reg
108
109       port@1:
110         type: object
111         additionalProperties: false
112
113         properties:
114           reg:
115             const: 1
116             description: CSI2 Port #1
117
118         patternProperties:
119           endpoint:
120             type: object
121             additionalProperties: false
122
123             properties:
124               clock-lanes:
125                 maxItems: 1
126
127               data-lanes:
128                 minItems: 1
129                 maxItems: 4
130
131               remote-endpoint: true
132
133         required:
134           - reg
135
136     required:
137       - "#address-cells"
138       - "#size-cells"
139       - port@0
140
141 required:
142   - compatible
143   - reg
144   - reg-names
145   - interrupts
146   - ti,camerrx-control
147
148 additionalProperties: false
149
150 examples:
151   - |
152     #include <dt-bindings/interrupt-controller/arm-gic.h>
153
154     cal: cal@4845b000 {
155         compatible = "ti,dra72-cal";
156         reg = <0x4845B000 0x400>,
157               <0x4845B800 0x40>,
158               <0x4845B900 0x40>;
159         reg-names = "cal_top",
160                     "cal_rx_core0",
161                     "cal_rx_core1";
162         interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
163         ti,camerrx-control = <&scm_conf 0xE94>;
164
165         ports {
166               #address-cells = <1>;
167               #size-cells = <0>;
168
169               csi2_0: port@0 {
170                     reg = <0>;
171                     csi2_phy0: endpoint {
172                            remote-endpoint = <&csi2_cam0>;
173                            clock-lanes = <0>;
174                            data-lanes = <1 2>;
175                     };
176               };
177         };
178     };
179
180     i2c {
181         clock-frequency = <400000>;
182         #address-cells = <1>;
183         #size-cells = <0>;
184
185         camera-sensor@3c {
186                compatible = "ovti,ov5640";
187                reg = <0x3c>;
188
189                clocks = <&clk_ov5640_fixed>;
190                clock-names = "xclk";
191
192                port {
193                     csi2_cam0: endpoint {
194                             remote-endpoint = <&csi2_phy0>;
195                             clock-lanes = <0>;
196                             data-lanes = <1 2>;
197                     };
198                };
199         };
200     };
201
202 ...