xref: /linux/Documentation/devicetree/bindings/mmc/st,sdhci.yaml (revision f96718fc1f6142038a3f836b83b12e5062576a2f)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mmc/st,sdhci.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: STMicroelectronics SDHCI-ST MMC/SD Controller
8
9maintainers:
10  - Peter Griffin <peter.griffin@linaro.org>
11
12description:
13  The STMicroelectronics SDHCI-ST MMC/SD host controller is compliant with
14  the SD Host Controller Interface (SDHCI) specification and is used to
15  interface with MMC, SD and SDIO cards. The ST SDHCI controller extends the
16  standard SDHCI capabilities with platform-specific configurations such as
17  additional register regions, clock inputs, and delay control mechanisms
18  required for signal timing adjustments to support high-speed modes across
19  different ST SoCs.
20
21allOf:
22  - $ref: mmc-controller.yaml#
23  - if:
24      properties:
25        reg:
26          minItems: 2
27      required:
28        - reg
29    then:
30      required:
31        - reg-names
32
33properties:
34  compatible:
35    oneOf:
36      - const: st,sdhci
37      - items:
38          - const: st,sdhci-stih407
39          - const: st,sdhci
40
41  reg:
42    minItems: 1
43    items:
44      - description: MMC controller base registers
45      - description: FlashSS Top registers for TX/RX DLL delay configuration
46
47  reg-names:
48    minItems: 1
49    items:
50      - const: mmc
51      - const: top-mmc-delay
52
53  clocks:
54    minItems: 1
55    items:
56      - description: Clock for the MMC controller
57      - description: Interconnect (ICN) clock
58
59  clock-names:
60    minItems: 1
61    items:
62      - const: mmc
63      - const: icn
64
65  interrupts:
66    maxItems: 1
67
68  interrupt-names:
69    const: mmcirq
70
71  resets:
72    maxItems: 1
73
74  max-frequency:
75    enum: [200000000, 100000000, 50000000]
76    default: 50000000
77
78required:
79  - reg
80  - compatible
81  - clocks
82  - clock-names
83  - interrupts
84  - interrupt-names
85
86unevaluatedProperties: false
87
88examples:
89  - |
90    #include <dt-bindings/interrupt-controller/arm-gic.h>
91    #include <dt-bindings/clock/stih407-clks.h>
92    mmc@9060000 {
93        compatible = "st,sdhci-stih407", "st,sdhci";
94        reg = <0x09060000 0x7ff>, <0x9061008 0x20>;
95        reg-names = "mmc", "top-mmc-delay";
96        interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
97        interrupt-names = "mmcirq";
98        pinctrl-names = "default";
99        pinctrl-0 = <&pinctrl_mmc0>;
100        clock-names = "mmc", "icn";
101        clocks = <&clk_s_c0_flexgen CLK_MMC_0>,
102                 <&clk_s_c0_flexgen CLK_RX_ICN_HVA>;
103        bus-width = <8>;
104    };
105...
106