Merge tag 'drm-misc-next-fixes-2024-01-19' of git://anongit.freedesktop.org/drm/drm...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / mmc / brcm,sdhci-brcmstb.yaml
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
7 title: Broadcom BRCMSTB/BMIPS SDHCI Controller
8
9 maintainers:
10   - Al Cooper <alcooperx@gmail.com>
11   - Florian Fainelli <f.fainelli@gmail.com>
12
13 properties:
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
62 allOf:
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
74 required:
75   - compatible
76   - reg
77   - interrupts
78   - clocks
79   - clock-names
80
81 unevaluatedProperties: false
82
83 examples:
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     };