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,bcm74165b0-sdhci
24              - brcm,bcm7445-sdhci
25              - brcm,bcm7425-sdhci
26          - const: brcm,sdhci-brcmstb
27
28  reg:
29    maxItems: 2
30
31  reg-names:
32    items:
33      - const: host
34      - const: cfg
35
36  interrupts:
37    maxItems: 1
38
39  clocks:
40    minItems: 1
41    items:
42      - description: handle to core clock for the sdhci controller
43      - description: handle to improved 150Mhz clock for sdhci controller (Optional clock)
44
45  clock-names:
46    minItems: 1
47    items:
48      - const: sw_sdio
49      - const: sdio_freq # Optional clock
50
51  clock-frequency:
52    description:
53      Maximum operating frequency of sdio_freq sdhci controller clock
54    $ref: /schemas/types.yaml#/definitions/uint32
55    minimum: 100000000
56    maximum: 150000000
57
58  sdhci,auto-cmd12:
59    type: boolean
60    description: Specifies that controller should use auto CMD12
61
62allOf:
63  - $ref: mmc-controller.yaml#
64  - if:
65      properties:
66        clock-names:
67          contains:
68            const: sdio_freq
69
70    then:
71      required:
72        - clock-frequency
73
74required:
75  - compatible
76  - reg
77  - interrupts
78  - clocks
79  - clock-names
80
81unevaluatedProperties: false
82
83examples:
84  - |
85    mmc@84b0000 {
86      compatible = "brcm,bcm7216-sdhci",
87                   "brcm,bcm7445-sdhci",
88                   "brcm,sdhci-brcmstb";
89      reg = <0x84b0000 0x260>, <0x84b0300 0x200>;
90      reg-names = "host", "cfg";
91      sd-uhs-sdr50;
92      sd-uhs-ddr50;
93      sd-uhs-sdr104;
94      sdhci,auto-cmd12;
95      interrupts = <0x0 0x26 0x4>;
96      clocks = <&scmi_clk 245>;
97      clock-names = "sw_sdio";
98    };
99
100    mmc@84b1000 {
101      compatible = "brcm,bcm7216-sdhci",
102                   "brcm,bcm7445-sdhci",
103                   "brcm,sdhci-brcmstb";
104      reg = <0x84b1000 0x260>, <0x84b1300 0x200>;
105      reg-names = "host", "cfg";
106      mmc-ddr-1_8v;
107      mmc-hs200-1_8v;
108      mmc-hs400-1_8v;
109      mmc-hs400-enhanced-strobe;
110      supports-cqe;
111      non-removable;
112      bus-width = <0x8>;
113      interrupts = <0x0 0x27 0x4>;
114      clocks = <&scmi_clk 245>;
115      clock-names = "sw_sdio";
116    };
117