# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright 2019 IBM Corp.
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/aspeed,sdhci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ASPEED SD/SDIO/MMC Controller
maintainers:
- Andrew Jeffery <andrew@aj.id.au>
- Ryan Chen <ryanchen.aspeed@gmail.com>
description: |+
The ASPEED SD/SDIO/eMMC controller exposes two slots implementing the SDIO
Host Specification v2.00, with 1 or 4 bit data buses, or an 8 bit data bus if
only a single slot is enabled.
The two slots are supported by a common configuration area. As the SDHCIs for
the slots are dependent on the common configuration area, they are described
as child nodes.
properties:
compatible:
enum:
- aspeed,ast2400-sd-controller
- aspeed,ast2500-sd-controller
- aspeed,ast2600-sd-controller
reg:
maxItems: 1
description: Common configuration registers
"#address-cells":
const: 1
"#size-cells":
const: 1
ranges: true
clocks:
maxItems: 1
description: The SD/SDIO controller clock gate
patternProperties:
"^sdhci@[0-9a-f]+$":
type: object
allOf:
- $ref: mmc-controller.yaml
properties:
compatible:
enum:
- aspeed,ast2400-sdhci
- aspeed,ast2500-sdhci
- aspeed,ast2600-sdhci
reg:
maxItems: 1
description: The SDHCI registers
clocks:
maxItems: 1
description: The SD bus clock
interrupts:
maxItems: 1
description: The SD interrupt shared between both slots
sdhci,auto-cmd12:
type: boolean
description: Specifies that controller should use auto CMD12
required:
- compatible
- reg
- clocks
- interrupts
additionalProperties: false
required:
- compatible
- reg
- "#address-cells"
- "#size-cells"
- ranges
- clocks
examples:
- |
#include <dt-bindings/clock/aspeed-clock.h>
sdc@1e740000 {
compatible = "aspeed,ast2500-sd-controller";
reg = <0x1e740000 0x100>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x1e740000 0x20000>;
clocks = <&syscon ASPEED_CLK_GATE_SDCLK>;
sdhci0: sdhci@100 {
compatible = "aspeed,ast2500-sdhci";
reg = <0x100 0x100>;
interrupts = <26>;
sdhci,auto-cmd12;
clocks = <&syscon ASPEED_CLK_SDIO>;
};
sdhci1: sdhci@200 {
compatible = "aspeed,ast2500-sdhci";
reg = <0x200 0x100>;
interrupts = <26>;
sdhci,auto-cmd12;
clocks = <&syscon ASPEED_CLK_SDIO>;
};
};