xref: /linux/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml (revision 621cde16e49b3ecf7d59a8106a20aaebfb4a59a9)
197721c5eSBenjamin Gaignard# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
297721c5eSBenjamin Gaignard%YAML 1.2
397721c5eSBenjamin Gaignard---
497721c5eSBenjamin Gaignard$id: http://devicetree.org/schemas/media/st,stm32-dcmi.yaml#
597721c5eSBenjamin Gaignard$schema: http://devicetree.org/meta-schemas/core.yaml#
697721c5eSBenjamin Gaignard
784e85359SKrzysztof Kozlowskititle: STMicroelectronics STM32 Digital Camera Memory Interface (DCMI)
897721c5eSBenjamin Gaignard
997721c5eSBenjamin Gaignardmaintainers:
10f4eedebdSPatrice Chotard  - Hugues Fruchet <hugues.fruchet@foss.st.com>
1197721c5eSBenjamin Gaignard
1297721c5eSBenjamin Gaignardproperties:
1397721c5eSBenjamin Gaignard  compatible:
1497721c5eSBenjamin Gaignard    const: st,stm32-dcmi
1597721c5eSBenjamin Gaignard
1697721c5eSBenjamin Gaignard  reg:
1797721c5eSBenjamin Gaignard    maxItems: 1
1897721c5eSBenjamin Gaignard
1997721c5eSBenjamin Gaignard  interrupts:
2097721c5eSBenjamin Gaignard    maxItems: 1
2197721c5eSBenjamin Gaignard
2297721c5eSBenjamin Gaignard  clocks:
2397721c5eSBenjamin Gaignard    maxItems: 1
2497721c5eSBenjamin Gaignard
2597721c5eSBenjamin Gaignard  clock-names:
2697721c5eSBenjamin Gaignard    items:
2797721c5eSBenjamin Gaignard      - const: mclk
2897721c5eSBenjamin Gaignard
2997721c5eSBenjamin Gaignard  dmas:
3097721c5eSBenjamin Gaignard    maxItems: 1
3197721c5eSBenjamin Gaignard
3297721c5eSBenjamin Gaignard  dma-names:
3397721c5eSBenjamin Gaignard    items:
3497721c5eSBenjamin Gaignard      - const: tx
3597721c5eSBenjamin Gaignard
3697721c5eSBenjamin Gaignard  resets:
3797721c5eSBenjamin Gaignard    maxItems: 1
3897721c5eSBenjamin Gaignard
39*02ec75edSGatien Chevallier  access-controllers:
40*02ec75edSGatien Chevallier    minItems: 1
41*02ec75edSGatien Chevallier    maxItems: 2
42*02ec75edSGatien Chevallier
4397721c5eSBenjamin Gaignard  port:
44066a94e2SRob Herring    $ref: /schemas/graph.yaml#/$defs/port-base
45066a94e2SRob Herring    unevaluatedProperties: false
4697721c5eSBenjamin Gaignard    description:
47066a94e2SRob Herring      DCMI supports a single port node with parallel bus.
4897721c5eSBenjamin Gaignard
49e2881c64SHugues Fruchet    properties:
50e2881c64SHugues Fruchet      endpoint:
51066a94e2SRob Herring        $ref: video-interfaces.yaml#
52066a94e2SRob Herring        unevaluatedProperties: false
53e2881c64SHugues Fruchet
54e2881c64SHugues Fruchet        properties:
55e2881c64SHugues Fruchet          bus-type:
56e2881c64SHugues Fruchet            enum: [5, 6]
57e2881c64SHugues Fruchet            default: 5
58e2881c64SHugues Fruchet
59e2881c64SHugues Fruchet          bus-width:
60e2881c64SHugues Fruchet            enum: [8, 10, 12, 14]
61e2881c64SHugues Fruchet            default: 8
62e2881c64SHugues Fruchet
63e2881c64SHugues Fruchet        allOf:
64e2881c64SHugues Fruchet          - if:
65e2881c64SHugues Fruchet              properties:
66e2881c64SHugues Fruchet                bus-type:
67e2881c64SHugues Fruchet                  const: 6
68e2881c64SHugues Fruchet
69e2881c64SHugues Fruchet            then:
70e2881c64SHugues Fruchet              properties:
71e2881c64SHugues Fruchet                hsync-active: false
72e2881c64SHugues Fruchet                vsync-active: false
73e2881c64SHugues Fruchet                bus-width:
74e2881c64SHugues Fruchet                  enum: [8]
75e2881c64SHugues Fruchet
76e2881c64SHugues Fruchet        required:
77e2881c64SHugues Fruchet          - bus-type
78e2881c64SHugues Fruchet          - pclk-sample
79e2881c64SHugues Fruchet
8097721c5eSBenjamin Gaignardrequired:
8197721c5eSBenjamin Gaignard  - compatible
8297721c5eSBenjamin Gaignard  - reg
8397721c5eSBenjamin Gaignard  - interrupts
8497721c5eSBenjamin Gaignard  - clocks
8597721c5eSBenjamin Gaignard  - clock-names
8697721c5eSBenjamin Gaignard  - resets
8797721c5eSBenjamin Gaignard  - dmas
8897721c5eSBenjamin Gaignard  - dma-names
8997721c5eSBenjamin Gaignard  - port
9097721c5eSBenjamin Gaignard
9197721c5eSBenjamin GaignardadditionalProperties: false
9297721c5eSBenjamin Gaignard
9397721c5eSBenjamin Gaignardexamples:
9497721c5eSBenjamin Gaignard  - |
9597721c5eSBenjamin Gaignard    #include <dt-bindings/interrupt-controller/arm-gic.h>
9697721c5eSBenjamin Gaignard    #include <dt-bindings/clock/stm32mp1-clks.h>
97c4cfd47eSLaurent Pinchart    #include <dt-bindings/media/video-interfaces.h>
9897721c5eSBenjamin Gaignard    #include <dt-bindings/reset/stm32mp1-resets.h>
99c4cfd47eSLaurent Pinchart
10097721c5eSBenjamin Gaignard    dcmi: dcmi@4c006000 {
10197721c5eSBenjamin Gaignard        compatible = "st,stm32-dcmi";
10297721c5eSBenjamin Gaignard        reg = <0x4c006000 0x400>;
10397721c5eSBenjamin Gaignard        interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
10497721c5eSBenjamin Gaignard        resets = <&rcc CAMITF_R>;
10597721c5eSBenjamin Gaignard        clocks = <&rcc DCMI>;
10697721c5eSBenjamin Gaignard        clock-names = "mclk";
10797721c5eSBenjamin Gaignard        dmas = <&dmamux1 75 0x400 0x0d>;
10897721c5eSBenjamin Gaignard        dma-names = "tx";
10997721c5eSBenjamin Gaignard
11097721c5eSBenjamin Gaignard        port {
11197721c5eSBenjamin Gaignard             dcmi_0: endpoint {
11297721c5eSBenjamin Gaignard                   remote-endpoint = <&ov5640_0>;
113c4cfd47eSLaurent Pinchart                   bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
11497721c5eSBenjamin Gaignard                   bus-width = <8>;
11597721c5eSBenjamin Gaignard                   hsync-active = <0>;
11697721c5eSBenjamin Gaignard                   vsync-active = <0>;
11797721c5eSBenjamin Gaignard                   pclk-sample = <1>;
11897721c5eSBenjamin Gaignard             };
11997721c5eSBenjamin Gaignard        };
12097721c5eSBenjamin Gaignard    };
12197721c5eSBenjamin Gaignard
12297721c5eSBenjamin Gaignard...
123