150c4ef6bSFlorian Fainelli# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
250c4ef6bSFlorian Fainelli%YAML 1.2
350c4ef6bSFlorian Fainelli---
450c4ef6bSFlorian Fainelli$id: http://devicetree.org/schemas/mmc/brcm,sdhci-brcmstb.yaml#
550c4ef6bSFlorian Fainelli$schema: http://devicetree.org/meta-schemas/core.yaml#
650c4ef6bSFlorian Fainelli
7*84e85359SKrzysztof Kozlowskititle: Broadcom BRCMSTB/BMIPS SDHCI Controller
850c4ef6bSFlorian Fainelli
950c4ef6bSFlorian Fainellimaintainers:
1050c4ef6bSFlorian Fainelli  - Al Cooper <alcooperx@gmail.com>
1150c4ef6bSFlorian Fainelli  - Florian Fainelli <f.fainelli@gmail.com>
1250c4ef6bSFlorian Fainelli
1350c4ef6bSFlorian Fainelliproperties:
1450c4ef6bSFlorian Fainelli  compatible:
1550c4ef6bSFlorian Fainelli    oneOf:
1650c4ef6bSFlorian Fainelli      - items:
1750c4ef6bSFlorian Fainelli          - enum:
1850c4ef6bSFlorian Fainelli              - brcm,bcm7216-sdhci
1950c4ef6bSFlorian Fainelli          - const: brcm,bcm7445-sdhci
2050c4ef6bSFlorian Fainelli          - const: brcm,sdhci-brcmstb
2150c4ef6bSFlorian Fainelli      - items:
2250c4ef6bSFlorian Fainelli          - enum:
2350c4ef6bSFlorian Fainelli              - brcm,bcm7445-sdhci
2450c4ef6bSFlorian Fainelli          - const: brcm,sdhci-brcmstb
2550c4ef6bSFlorian Fainelli      - items:
2650c4ef6bSFlorian Fainelli          - enum:
2750c4ef6bSFlorian Fainelli              - brcm,bcm7425-sdhci
2850c4ef6bSFlorian Fainelli          - const: brcm,sdhci-brcmstb
2950c4ef6bSFlorian Fainelli
3050c4ef6bSFlorian Fainelli  reg:
31b16ebda6SKrzysztof Kozlowski    maxItems: 2
3250c4ef6bSFlorian Fainelli
3350c4ef6bSFlorian Fainelli  reg-names:
3450c4ef6bSFlorian Fainelli    items:
3550c4ef6bSFlorian Fainelli      - const: host
3650c4ef6bSFlorian Fainelli      - const: cfg
3750c4ef6bSFlorian Fainelli
3850c4ef6bSFlorian Fainelli  interrupts:
3950c4ef6bSFlorian Fainelli    maxItems: 1
4050c4ef6bSFlorian Fainelli
4150c4ef6bSFlorian Fainelli  clocks:
422f8690efSKamal Dasu    minItems: 1
432f8690efSKamal Dasu    items:
442f8690efSKamal Dasu      - description: handle to core clock for the sdhci controller
452f8690efSKamal Dasu      - description: handle to improved 150Mhz clock for sdhci controller (Optional clock)
4650c4ef6bSFlorian Fainelli
4750c4ef6bSFlorian Fainelli  clock-names:
482f8690efSKamal Dasu    minItems: 1
4950c4ef6bSFlorian Fainelli    items:
5050c4ef6bSFlorian Fainelli      - const: sw_sdio
512f8690efSKamal Dasu      - const: sdio_freq # Optional clock
522f8690efSKamal Dasu
532f8690efSKamal Dasu  clock-frequency:
542f8690efSKamal Dasu    description:
552f8690efSKamal Dasu      Maximum operating frequency of sdio_freq sdhci controller clock
562f8690efSKamal Dasu    $ref: /schemas/types.yaml#/definitions/uint32
572f8690efSKamal Dasu    minimum: 100000000
582f8690efSKamal Dasu    maximum: 150000000
5950c4ef6bSFlorian Fainelli
6050c4ef6bSFlorian Fainelli  sdhci,auto-cmd12:
6150c4ef6bSFlorian Fainelli    type: boolean
6250c4ef6bSFlorian Fainelli    description: Specifies that controller should use auto CMD12
6350c4ef6bSFlorian Fainelli
642f8690efSKamal DasuallOf:
652f8690efSKamal Dasu  - $ref: mmc-controller.yaml#
662f8690efSKamal Dasu  - if:
672f8690efSKamal Dasu      properties:
682f8690efSKamal Dasu        clock-names:
692f8690efSKamal Dasu          contains:
702f8690efSKamal Dasu            const: sdio_freq
712f8690efSKamal Dasu
722f8690efSKamal Dasu    then:
732f8690efSKamal Dasu      required:
742f8690efSKamal Dasu        - clock-frequency
752f8690efSKamal Dasu
7650c4ef6bSFlorian Fainellirequired:
7750c4ef6bSFlorian Fainelli  - compatible
7850c4ef6bSFlorian Fainelli  - reg
7950c4ef6bSFlorian Fainelli  - interrupts
8050c4ef6bSFlorian Fainelli  - clocks
812f8690efSKamal Dasu  - clock-names
8250c4ef6bSFlorian Fainelli
8350c4ef6bSFlorian FainelliunevaluatedProperties: false
8450c4ef6bSFlorian Fainelli
8550c4ef6bSFlorian Fainelliexamples:
8650c4ef6bSFlorian Fainelli  - |
8750c4ef6bSFlorian Fainelli    mmc@84b0000 {
8850c4ef6bSFlorian Fainelli      compatible = "brcm,bcm7216-sdhci",
8950c4ef6bSFlorian Fainelli                   "brcm,bcm7445-sdhci",
9050c4ef6bSFlorian Fainelli                   "brcm,sdhci-brcmstb";
9150c4ef6bSFlorian Fainelli      reg = <0x84b0000 0x260>, <0x84b0300 0x200>;
9250c4ef6bSFlorian Fainelli      reg-names = "host", "cfg";
930a70c5d2SKrzysztof Kozlowski      sd-uhs-sdr50;
940a70c5d2SKrzysztof Kozlowski      sd-uhs-ddr50;
950a70c5d2SKrzysztof Kozlowski      sd-uhs-sdr104;
960a70c5d2SKrzysztof Kozlowski      sdhci,auto-cmd12;
9750c4ef6bSFlorian Fainelli      interrupts = <0x0 0x26 0x4>;
9850c4ef6bSFlorian Fainelli      clocks = <&scmi_clk 245>;
9950c4ef6bSFlorian Fainelli      clock-names = "sw_sdio";
10050c4ef6bSFlorian Fainelli    };
10150c4ef6bSFlorian Fainelli
10250c4ef6bSFlorian Fainelli    mmc@84b1000 {
1030a70c5d2SKrzysztof Kozlowski      compatible = "brcm,bcm7216-sdhci",
1040a70c5d2SKrzysztof Kozlowski                   "brcm,bcm7445-sdhci",
1050a70c5d2SKrzysztof Kozlowski                   "brcm,sdhci-brcmstb";
1060a70c5d2SKrzysztof Kozlowski      reg = <0x84b1000 0x260>, <0x84b1300 0x200>;
1070a70c5d2SKrzysztof Kozlowski      reg-names = "host", "cfg";
10850c4ef6bSFlorian Fainelli      mmc-ddr-1_8v;
10950c4ef6bSFlorian Fainelli      mmc-hs200-1_8v;
11050c4ef6bSFlorian Fainelli      mmc-hs400-1_8v;
11150c4ef6bSFlorian Fainelli      mmc-hs400-enhanced-strobe;
11250c4ef6bSFlorian Fainelli      supports-cqe;
11350c4ef6bSFlorian Fainelli      non-removable;
11450c4ef6bSFlorian Fainelli      bus-width = <0x8>;
11550c4ef6bSFlorian Fainelli      interrupts = <0x0 0x27 0x4>;
11650c4ef6bSFlorian Fainelli      clocks = <&scmi_clk 245>;
11750c4ef6bSFlorian Fainelli      clock-names = "sw_sdio";
11850c4ef6bSFlorian Fainelli    };
119