Merge tag 'block-6.13-20242901' of git://git.kernel.dk/linux
[drm/drm-misc.git] / Documentation / devicetree / bindings / media / st,stm32-dcmi.yaml
blob34147127192fd830c92d4f5e0fc657e5ce2ce4f1
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/media/st,stm32-dcmi.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: STMicroelectronics STM32 Digital Camera Memory Interface (DCMI)
9 maintainers:
10   - Hugues Fruchet <hugues.fruchet@foss.st.com>
12 properties:
13   compatible:
14     const: st,stm32-dcmi
16   reg:
17     maxItems: 1
19   interrupts:
20     maxItems: 1
22   clocks:
23     maxItems: 1
25   clock-names:
26     items:
27       - const: mclk
29   dmas:
30     maxItems: 1
32   dma-names:
33     items:
34       - const: tx
36   resets:
37     maxItems: 1
39   access-controllers:
40     minItems: 1
41     maxItems: 2
43   port:
44     $ref: /schemas/graph.yaml#/$defs/port-base
45     unevaluatedProperties: false
46     description:
47       DCMI supports a single port node with parallel bus.
49     properties:
50       endpoint:
51         $ref: video-interfaces.yaml#
52         unevaluatedProperties: false
54         properties:
55           bus-type:
56             enum: [5, 6]
57             default: 5
59           bus-width:
60             enum: [8, 10, 12, 14]
61             default: 8
63         allOf:
64           - if:
65               properties:
66                 bus-type:
67                   const: 6
69             then:
70               properties:
71                 hsync-active: false
72                 vsync-active: false
73                 bus-width:
74                   enum: [8]
76         required:
77           - bus-type
78           - pclk-sample
80 required:
81   - compatible
82   - reg
83   - interrupts
84   - clocks
85   - clock-names
86   - resets
87   - dmas
88   - dma-names
89   - port
91 additionalProperties: false
93 examples:
94   - |
95     #include <dt-bindings/interrupt-controller/arm-gic.h>
96     #include <dt-bindings/clock/stm32mp1-clks.h>
97     #include <dt-bindings/media/video-interfaces.h>
98     #include <dt-bindings/reset/stm32mp1-resets.h>
100     dcmi: dcmi@4c006000 {
101         compatible = "st,stm32-dcmi";
102         reg = <0x4c006000 0x400>;
103         interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
104         resets = <&rcc CAMITF_R>;
105         clocks = <&rcc DCMI>;
106         clock-names = "mclk";
107         dmas = <&dmamux1 75 0x400 0x0d>;
108         dma-names = "tx";
110         port {
111              dcmi_0: endpoint {
112                    remote-endpoint = <&ov5640_0>;
113                    bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
114                    bus-width = <8>;
115                    hsync-active = <0>;
116                    vsync-active = <0>;
117                    pclk-sample = <1>;
118              };
119         };
120     };