1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mmc/brcm,sdhci-brcmstb.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Broadcom BRCMSTB/BMIPS SDHCI Controller
8
9maintainers:
10  - Al Cooper <alcooperx@gmail.com>
11  - Florian Fainelli <f.fainelli@gmail.com>
12
13properties:
14  compatible:
15    oneOf:
16      - items:
17          - enum:
18              - brcm,bcm7216-sdhci
19          - const: brcm,bcm7445-sdhci
20          - const: brcm,sdhci-brcmstb
21      - items:
22          - enum:
23              - brcm,bcm7445-sdhci
24          - const: brcm,sdhci-brcmstb
25      - items:
26          - enum:
27              - brcm,bcm7425-sdhci
28          - const: brcm,sdhci-brcmstb
29
30  reg:
31    maxItems: 2
32
33  reg-names:
34    items:
35      - const: host
36      - const: cfg
37
38  interrupts:
39    maxItems: 1
40
41  clocks:
42    minItems: 1
43    items:
44      - description: handle to core clock for the sdhci controller
45      - description: handle to improved 150Mhz clock for sdhci controller (Optional clock)
46
47  clock-names:
48    minItems: 1
49    items:
50      - const: sw_sdio
51      - const: sdio_freq # Optional clock
52
53  clock-frequency:
54    description:
55      Maximum operating frequency of sdio_freq sdhci controller clock
56    $ref: /schemas/types.yaml#/definitions/uint32
57    minimum: 100000000
58    maximum: 150000000
59
60  sdhci,auto-cmd12:
61    type: boolean
62    description: Specifies that controller should use auto CMD12
63
64allOf:
65  - $ref: mmc-controller.yaml#
66  - if:
67      properties:
68        clock-names:
69          contains:
70            const: sdio_freq
71
72    then:
73      required:
74        - clock-frequency
75
76required:
77  - compatible
78  - reg
79  - interrupts
80  - clocks
81  - clock-names
82
83unevaluatedProperties: false
84
85examples:
86  - |
87    mmc@84b0000 {
88      compatible = "brcm,bcm7216-sdhci",
89                   "brcm,bcm7445-sdhci",
90                   "brcm,sdhci-brcmstb";
91      reg = <0x84b0000 0x260>, <0x84b0300 0x200>;
92      reg-names = "host", "cfg";
93      sd-uhs-sdr50;
94      sd-uhs-ddr50;
95      sd-uhs-sdr104;
96      sdhci,auto-cmd12;
97      interrupts = <0x0 0x26 0x4>;
98      clocks = <&scmi_clk 245>;
99      clock-names = "sw_sdio";
100    };
101
102    mmc@84b1000 {
103      compatible = "brcm,bcm7216-sdhci",
104                   "brcm,bcm7445-sdhci",
105                   "brcm,sdhci-brcmstb";
106      reg = <0x84b1000 0x260>, <0x84b1300 0x200>;
107      reg-names = "host", "cfg";
108      mmc-ddr-1_8v;
109      mmc-hs200-1_8v;
110      mmc-hs400-1_8v;
111      mmc-hs400-enhanced-strobe;
112      supports-cqe;
113      non-removable;
114      bus-width = <0x8>;
115      interrupts = <0x0 0x27 0x4>;
116      clocks = <&scmi_clk 245>;
117      clock-names = "sw_sdio";
118    };
119