summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/mmc/st,sdhci.yaml
blob: 798af599d37499eccd638e21c2fe7ba912462a84 (plain)
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
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/st,sdhci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics SDHCI-ST MMC/SD Controller

maintainers:
  - Peter Griffin <peter.griffin@linaro.org>

description:
  The STMicroelectronics SDHCI-ST MMC/SD host controller is compliant with
  the SD Host Controller Interface (SDHCI) specification and is used to
  interface with MMC, SD and SDIO cards. The ST SDHCI controller extends the
  standard SDHCI capabilities with platform-specific configurations such as
  additional register regions, clock inputs, and delay control mechanisms
  required for signal timing adjustments to support high-speed modes across
  different ST SoCs.

allOf:
  - $ref: mmc-controller.yaml#
  - if:
      properties:
        reg:
          minItems: 2
      required:
        - reg
    then:
      required:
        - reg-names

properties:
  compatible:
    oneOf:
      - const: st,sdhci
      - items:
          - const: st,sdhci-stih407
          - const: st,sdhci

  reg:
    minItems: 1
    items:
      - description: MMC controller base registers
      - description: FlashSS Top registers for TX/RX DLL delay configuration

  reg-names:
    minItems: 1
    items:
      - const: mmc
      - const: top-mmc-delay

  clocks:
    minItems: 1
    items:
      - description: Clock for the MMC controller
      - description: Interconnect (ICN) clock

  clock-names:
    minItems: 1
    items:
      - const: mmc
      - const: icn

  interrupts:
    maxItems: 1

  interrupt-names:
    const: mmcirq

  resets:
    maxItems: 1

  max-frequency:
    enum: [200000000, 100000000, 50000000]
    default: 50000000

required:
  - reg
  - compatible
  - clocks
  - clock-names
  - interrupts
  - interrupt-names

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/stih407-clks.h>
    mmc@9060000 {
        compatible = "st,sdhci-stih407", "st,sdhci";
        reg = <0x09060000 0x7ff>, <0x9061008 0x20>;
        reg-names = "mmc", "top-mmc-delay";
        interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
        interrupt-names = "mmcirq";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_mmc0>;
        clock-names = "mmc", "icn";
        clocks = <&clk_s_c0_flexgen CLK_MMC_0>,
                 <&clk_s_c0_flexgen CLK_RX_ICN_HVA>;
        bus-width = <8>;
    };
...