0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mmc/brcm,sdhci-brcmstb.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Broadcom BRCMSTB/BMIPS SDHCI Controller binding
0008
0009 maintainers:
0010 - Al Cooper <alcooperx@gmail.com>
0011 - Florian Fainelli <f.fainelli@gmail.com>
0012
0013 properties:
0014 compatible:
0015 oneOf:
0016 - items:
0017 - enum:
0018 - brcm,bcm7216-sdhci
0019 - const: brcm,bcm7445-sdhci
0020 - const: brcm,sdhci-brcmstb
0021 - items:
0022 - enum:
0023 - brcm,bcm7445-sdhci
0024 - const: brcm,sdhci-brcmstb
0025 - items:
0026 - enum:
0027 - brcm,bcm7425-sdhci
0028 - const: brcm,sdhci-brcmstb
0029
0030 reg:
0031 maxItems: 2
0032
0033 reg-names:
0034 items:
0035 - const: host
0036 - const: cfg
0037
0038 interrupts:
0039 maxItems: 1
0040
0041 clocks:
0042 minItems: 1
0043 items:
0044 - description: handle to core clock for the sdhci controller
0045 - description: handle to improved 150Mhz clock for sdhci controller (Optional clock)
0046
0047 clock-names:
0048 minItems: 1
0049 items:
0050 - const: sw_sdio
0051 - const: sdio_freq # Optional clock
0052
0053 clock-frequency:
0054 description:
0055 Maximum operating frequency of sdio_freq sdhci controller clock
0056 $ref: /schemas/types.yaml#/definitions/uint32
0057 minimum: 100000000
0058 maximum: 150000000
0059
0060 sdhci,auto-cmd12:
0061 type: boolean
0062 description: Specifies that controller should use auto CMD12
0063
0064 allOf:
0065 - $ref: mmc-controller.yaml#
0066 - if:
0067 properties:
0068 clock-names:
0069 contains:
0070 const: sdio_freq
0071
0072 then:
0073 required:
0074 - clock-frequency
0075
0076 required:
0077 - compatible
0078 - reg
0079 - interrupts
0080 - clocks
0081 - clock-names
0082
0083 unevaluatedProperties: false
0084
0085 examples:
0086 - |
0087 mmc@84b0000 {
0088 compatible = "brcm,bcm7216-sdhci",
0089 "brcm,bcm7445-sdhci",
0090 "brcm,sdhci-brcmstb";
0091 reg = <0x84b0000 0x260>, <0x84b0300 0x200>;
0092 reg-names = "host", "cfg";
0093 sd-uhs-sdr50;
0094 sd-uhs-ddr50;
0095 sd-uhs-sdr104;
0096 sdhci,auto-cmd12;
0097 interrupts = <0x0 0x26 0x4>;
0098 clocks = <&scmi_clk 245>;
0099 clock-names = "sw_sdio";
0100 };
0101
0102 mmc@84b1000 {
0103 compatible = "brcm,bcm7216-sdhci",
0104 "brcm,bcm7445-sdhci",
0105 "brcm,sdhci-brcmstb";
0106 reg = <0x84b1000 0x260>, <0x84b1300 0x200>;
0107 reg-names = "host", "cfg";
0108 mmc-ddr-1_8v;
0109 mmc-hs200-1_8v;
0110 mmc-hs400-1_8v;
0111 mmc-hs400-enhanced-strobe;
0112 supports-cqe;
0113 non-removable;
0114 bus-width = <0x8>;
0115 interrupts = <0x0 0x27 0x4>;
0116 clocks = <&scmi_clk 245>;
0117 clock-names = "sw_sdio";
0118 };