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