xref: /linux/Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml (revision fc2d791a43d3880496d1c729b8bd74d2c19cb4e7)
1# SPDX-License-Identifier: GPL-2.0-or-later
2# Copyright 2019 IBM Corp.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/mmc/aspeed,sdhci.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: ASPEED SD/SDIO/MMC Controller
9
10maintainers:
11  - Andrew Jeffery <andrew@aj.id.au>
12  - Ryan Chen <ryanchen.aspeed@gmail.com>
13
14description: |+
15  The ASPEED SD/SDIO/eMMC controller exposes two slots implementing the SDIO
16  Host Specification v2.00, with 1 or 4 bit data buses, or an 8 bit data bus if
17  only a single slot is enabled.
18
19  The two slots are supported by a common configuration area. As the SDHCIs for
20  the slots are dependent on the common configuration area, they are described
21  as child nodes.
22
23properties:
24  compatible:
25    oneOf:
26      - enum:
27          - aspeed,ast2400-sd-controller
28          - aspeed,ast2500-sd-controller
29          - aspeed,ast2600-sd-controller
30      - items:
31          - const: aspeed,ast2700-sd-controller
32          - const: aspeed,ast2600-sd-controller
33
34  reg:
35    maxItems: 1
36    description: Common configuration registers
37  "#address-cells":
38    const: 1
39  "#size-cells":
40    const: 1
41  ranges: true
42  clocks:
43    maxItems: 1
44    description: The SD/SDIO controller clock gate
45
46  resets:
47    maxItems: 1
48
49patternProperties:
50  "^sdhci@[0-9a-f]+$":
51    type: object
52    $ref: sdhci-common.yaml
53    unevaluatedProperties: false
54
55    properties:
56      compatible:
57        oneOf:
58          - enum:
59              - aspeed,ast2400-sdhci
60              - aspeed,ast2500-sdhci
61              - aspeed,ast2600-sdhci
62          - items:
63              - const: aspeed,ast2700-sdhci
64              - const: aspeed,ast2600-sdhci
65
66      reg:
67        maxItems: 1
68        description: The SDHCI registers
69      clocks:
70        maxItems: 1
71        description: The SD bus clock
72      interrupts:
73        maxItems: 1
74        description: The SD interrupt shared between both slots
75      sdhci,auto-cmd12:
76        type: boolean
77        description: Specifies that controller should use auto CMD12
78    required:
79      - compatible
80      - reg
81      - clocks
82      - interrupts
83
84additionalProperties: false
85
86required:
87  - compatible
88  - reg
89  - "#address-cells"
90  - "#size-cells"
91  - ranges
92  - clocks
93
94if:
95  properties:
96    compatible:
97      contains:
98        const: aspeed,ast2700-sd-controller
99then:
100  required:
101    - resets
102else:
103  properties:
104    resets: false
105
106examples:
107  - |
108    #include <dt-bindings/clock/aspeed-clock.h>
109    sdc@1e740000 {
110            compatible = "aspeed,ast2500-sd-controller";
111            reg = <0x1e740000 0x100>;
112            #address-cells = <1>;
113            #size-cells = <1>;
114            ranges = <0 0x1e740000 0x20000>;
115            clocks = <&syscon ASPEED_CLK_GATE_SDCLK>;
116
117            sdhci0: sdhci@100 {
118                    compatible = "aspeed,ast2500-sdhci";
119                    reg = <0x100 0x100>;
120                    interrupts = <26>;
121                    sdhci,auto-cmd12;
122                    clocks = <&syscon ASPEED_CLK_SDIO>;
123            };
124
125            sdhci1: sdhci@200 {
126                    compatible = "aspeed,ast2500-sdhci";
127                    reg = <0x200 0x100>;
128                    interrupts = <26>;
129                    sdhci,auto-cmd12;
130                    clocks = <&syscon ASPEED_CLK_SDIO>;
131            };
132    };
133