Documentation / devicetree / bindings / media / st,stm32-dcmi.yaml


Based on kernel version 7.2. Page generated on 2026-08-20 08:41 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/st,stm32-dcmi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics STM32 Digital Camera Memory Interface (DCMI)

maintainers:
  - Hugues Fruchet <hugues.fruchet@foss.st.com>

properties:
  compatible:
    const: st,stm32-dcmi

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: mclk

  dmas:
    minItems: 1
    maxItems: 2

  dma-names:
    items:
      - const: tx
      - const: mdma_tx
    minItems: 1

  resets:
    maxItems: 1

  access-controllers:
    minItems: 1
    maxItems: 2

  power-domains:
    maxItems: 1

  sram:
    maxItems: 1
    description:
      SRAM region which is used as temporary storage memory between DMA and
      MDMA engines.

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    unevaluatedProperties: false
    description:
      DCMI supports a single port node with parallel bus.

    properties:
      endpoint:
        $ref: video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          bus-type:
            enum: [5, 6]
            default: 5

          bus-width:
            enum: [8, 10, 12, 14]
            default: 8

        allOf:
          - if:
              properties:
                bus-type:
                  const: 6

            then:
              properties:
                hsync-active: false
                vsync-active: false
                bus-width:
                  enum: [8]

        required:
          - bus-type
          - pclk-sample

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - resets
  - dmas
  - dma-names
  - port

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/stm32mp1-clks.h>
    #include <dt-bindings/media/video-interfaces.h>
    #include <dt-bindings/reset/stm32mp1-resets.h>
 
    dcmi: dcmi@4c006000 {
        compatible = "st,stm32-dcmi";
        reg = <0x4c006000 0x400>;
        interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
        resets = <&rcc CAMITF_R>;
        clocks = <&rcc DCMI>;
        clock-names = "mclk";
        dmas = <&dmamux1 75 0x400 0x0d>;
        dma-names = "tx";
 
        port {
             dcmi_0: endpoint {
                   remote-endpoint = <&ov5640_0>;
                   bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
                   bus-width = <8>;
                   hsync-active = <0>;
                   vsync-active = <0>;
                   pclk-sample = <1>;
             };
        };
    };

...