File Index
Files and directories
Sign in
FILE

rockchip-isp1.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/media/rockchip-isp1.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/media/rockchip-isp1.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Rockchip SoC Image Signal Processing unit v1
  8
  9maintainers:
 10  - Helen Koike <helen.koike@collabora.com>
 11
 12description: |
 13  Rockchip ISP1 is the Camera interface for the Rockchip series of SoCs
 14  which contains image processing, scaling, and compression functions.
 15
 16properties:
 17  compatible:
 18    enum:
 19      - fsl,imx8mp-isp
 20      - rockchip,px30-cif-isp
 21      - rockchip,rk3399-cif-isp
 22
 23  reg:
 24    maxItems: 1
 25
 26  interrupts:
 27    minItems: 1
 28    maxItems: 3
 29
 30  interrupt-names:
 31    items:
 32      - const: isp
 33      - const: mi
 34      - const: mipi
 35
 36  clocks:
 37    minItems: 3
 38    items:
 39      # isp0 and isp1
 40      - description: ISP clock (for imx8mp, clk)
 41      - description: ISP AXI clock (for imx8mp, m_hclk)
 42      - description: ISP AHB clock (for imx8mp, hclk)
 43      # only for isp1
 44      - description: ISP Pixel clock
 45
 46  clock-names:
 47    minItems: 3
 48    items:
 49      # isp0 and isp1
 50      - const: isp
 51      - const: aclk
 52      - const: hclk
 53      # only for isp1
 54      - const: pclk
 55
 56  fsl,blk-ctrl:
 57    $ref: /schemas/types.yaml#/definitions/phandle-array
 58    maxItems: 1
 59    description:
 60      A phandle to the media block control for the ISP, followed by a cell
 61      containing the index of the gasket.
 62
 63  iommus:
 64    maxItems: 1
 65
 66  phys:
 67    maxItems: 1
 68    description: phandle for the PHY port
 69
 70  phy-names:
 71    const: dphy
 72
 73  power-domains:
 74    minItems: 1
 75    items:
 76      - description: ISP power domain
 77      - description: MIPI CSI-2 power domain
 78
 79  power-domain-names:
 80    minItems: 1
 81    items:
 82      - const: isp
 83      - const: csi2
 84
 85  ports:
 86    $ref: /schemas/graph.yaml#/properties/ports
 87
 88    properties:
 89      port@0:
 90        $ref: /schemas/graph.yaml#/$defs/port-base
 91        unevaluatedProperties: false
 92        description: connection point for sensors at MIPI-DPHY RX0
 93
 94        properties:
 95          endpoint:
 96            $ref: video-interfaces.yaml#
 97            unevaluatedProperties: false
 98
 99            properties:
100              data-lanes:
101                minItems: 1
102                maxItems: 4
103
104      port@1:
105        $ref: /schemas/graph.yaml#/$defs/port-base
106        unevaluatedProperties: false
107        description: connection point for input on the parallel interface
108
109        properties:
110          endpoint:
111            $ref: video-interfaces.yaml#
112            unevaluatedProperties: false
113
114            properties:
115              bus-type:
116                enum: [5, 6]
117
118            required:
119              - bus-type
120
121    anyOf:
122      - required:
123          - port@0
124      - required:
125          - port@1
126
127required:
128  - compatible
129  - reg
130  - interrupts
131  - clocks
132  - clock-names
133  - power-domains
134  - ports
135
136allOf:
137  - if:
138      properties:
139        compatible:
140          contains:
141            const: rockchip,rk3399-cif-isp
142    then:
143      properties:
144        clocks:
145          minItems: 3
146          maxItems: 4
147        clock-names:
148          minItems: 3
149          maxItems: 4
150
151  - if:
152      properties:
153        compatible:
154          contains:
155            const: rockchip,px30-cif-isp
156    then:
157      required:
158        - interrupt-names
159
160  - if:
161      properties:
162        compatible:
163          contains:
164            const: fsl,imx8mp-isp
165    then:
166      properties:
167        clocks:
168          minItems: 4
169        clock-names:
170          minItems: 4
171        iommus: false
172        phys: false
173        phy-names: false
174        power-domains:
175          minItems: 2
176        power-domain-names:
177          minItems: 2
178      required:
179        - fsl,blk-ctrl
180        - power-domain-names
181    else:
182      properties:
183        fsl,blk-ctrl: false
184        power-domains:
185          maxItems: 1
186        power-domain-names: false
187      required:
188        - iommus
189        - phys
190        - phy-names
191
192additionalProperties: false
193
194examples:
195  - |
196
197    #include <dt-bindings/clock/rk3399-cru.h>
198    #include <dt-bindings/interrupt-controller/arm-gic.h>
199    #include <dt-bindings/power/rk3399-power.h>
200
201    parent0: parent {
202        #address-cells = <2>;
203        #size-cells = <2>;
204
205        isp0: isp0@ff910000 {
206            compatible = "rockchip,rk3399-cif-isp";
207            reg = <0x0 0xff910000 0x0 0x4000>;
208            interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
209            clocks = <&cru SCLK_ISP0>,
210                     <&cru ACLK_ISP0_WRAPPER>,
211                     <&cru HCLK_ISP0_WRAPPER>;
212            clock-names = "isp", "aclk", "hclk";
213            iommus = <&isp0_mmu>;
214            phys = <&dphy>;
215            phy-names = "dphy";
216            power-domains = <&power RK3399_PD_ISP0>;
217
218            ports {
219                #address-cells = <1>;
220                #size-cells = <0>;
221
222                port@0 {
223                    reg = <0>;
224                    #address-cells = <1>;
225                    #size-cells = <0>;
226
227                    mipi_in_wcam: endpoint@0 {
228                        reg = <0>;
229                        remote-endpoint = <&wcam_out>;
230                        data-lanes = <1 2>;
231                    };
232
233                    mipi_in_ucam: endpoint@1 {
234                        reg = <1>;
235                        remote-endpoint = <&ucam_out>;
236                        data-lanes = <1>;
237                    };
238                };
239            };
240        };
241
242        i2c7: i2c {
243            #address-cells = <1>;
244            #size-cells = <0>;
245
246            wcam: camera@36 {
247                compatible = "ovti,ov5695";
248                reg = <0x36>;
249                clocks = <&cru SCLK_TESTCLKOUT1>;
250
251                port {
252                    wcam_out: endpoint {
253                        remote-endpoint = <&mipi_in_wcam>;
254                        data-lanes = <1 2>;
255                    };
256                };
257            };
258
259            ucam: camera@3c {
260                compatible = "ovti,ov2685";
261                reg = <0x3c>;
262
263                clocks = <&cru SCLK_TESTCLKOUT1>;
264                clock-names = "xvclk";
265
266                avdd-supply = <&pp2800_cam>;
267                dovdd-supply = <&pp1800>;
268                dvdd-supply = <&pp1800>;
269
270                port {
271                    ucam_out: endpoint {
272                        remote-endpoint = <&mipi_in_ucam>;
273                        data-lanes = <1>;
274                    };
275                };
276            };
277        };
278    };
279
280  - |
281
282    #include <dt-bindings/interrupt-controller/arm-gic.h>
283    #include <dt-bindings/power/px30-power.h>
284
285    parent1: parent {
286        #address-cells = <2>;
287        #size-cells = <2>;
288
289        isp: isp@ff4a0000 {
290            compatible = "rockchip,px30-cif-isp";
291            reg = <0x0 0xff4a0000 0x0 0x8000>;
292            interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
293                         <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
294                         <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
295            interrupt-names = "isp", "mi", "mipi";
296            clocks = <&cru SCLK_ISP0>,
297                     <&cru ACLK_ISP0_WRAPPER>,
298                     <&cru HCLK_ISP0_WRAPPER>,
299                     <&cru PCLK_ISP1_WRAPPER>;
300            clock-names = "isp", "aclk", "hclk", "pclk";
301            iommus = <&isp_mmu>;
302            phys = <&csi_dphy>;
303            phy-names = "dphy";
304            power-domains = <&power PX30_PD_VI>;
305
306            ports {
307                #address-cells = <1>;
308                #size-cells = <0>;
309
310                port@0 {
311                    reg = <0>;
312                    #address-cells = <1>;
313                    #size-cells = <0>;
314
315                    mipi_in_ucam1: endpoint@0 {
316                        reg = <0>;
317                        remote-endpoint = <&ucam1_out>;
318                        data-lanes = <1 2>;
319                    };
320                };
321            };
322        };
323
324        i2c2: i2c {
325            #address-cells = <1>;
326            #size-cells = <0>;
327
328            ov5695: camera@36 {
329                compatible = "ovti,ov5647";
330                reg = <0x36>;
331                clocks = <&cru SCLK_CIF_OUT>;
332
333                port {
334                    ucam1_out: endpoint {
335                        remote-endpoint = <&mipi_in_ucam1>;
336                        data-lanes = <1 2>;
337                    };
338                };
339            };
340        };
341    };
~/ Read-only file preview.