Commit ea049a03 authored by Neil Armstrong's avatar Neil Armstrong Committed by Ulf Hansson
Browse files

dt-bindings: mmc: convert amlogic,meson-mx-sdio.txt to dtschema



Convert the Amlogic Meson6, Meson8 and Meson8b SDIO/MMC controller
bindings to dt-schema.

Reviewed-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Signed-off-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
Message-ID: <20241128-topic-amlogic-arm32-upstream-bindings-fixes-convert-meson-mx-sdio-v4-5-11d9f9200a59@linaro.org>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent b833f3de
Loading
Loading
Loading
Loading
+0 −54
Original line number Diff line number Diff line
* Amlogic Meson6, Meson8 and Meson8b SDIO/MMC controller

The highspeed MMC host controller on Amlogic SoCs provides an interface
for MMC, SD, SDIO and SDHC types of memory cards.

Supported maximum speeds are the ones of the eMMC standard 4.41 as well
as the speed of SD standard 2.0.

The hardware provides an internal "mux" which allows up to three slots
to be controlled. Only one slot can be accessed at a time.

Required properties:
 - compatible : must be one of
	- "amlogic,meson8-sdio"
	- "amlogic,meson8b-sdio"
	along with the generic "amlogic,meson-mx-sdio"
 - reg : mmc controller base registers
 - interrupts : mmc controller interrupt
 - #address-cells : must be 1
 - size-cells : must be 0
 - clocks : phandle to clock providers
 - clock-names : must contain "core" and "clkin"

Required child nodes:
A node for each slot provided by the MMC controller is required.
NOTE: due to a driver limitation currently only one slot (= child node)
      is supported!

Required properties on each child node (= slot):
 - compatible : must be "mmc-slot" (see mmc.txt within this directory)
 - reg : the slot (or "port") ID

Optional properties on each child node (= slot):
 - bus-width : must be 1 or 4 (8-bit bus is not supported)
 - for cd and all other additional generic mmc parameters
   please refer to mmc.txt within this directory

Examples:
	mmc@c1108c20 {
		compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio";
		reg = <0xc1108c20 0x20>;
		interrupts = <0 28 1>;
		#address-cells = <1>;
		#size-cells = <0>;
		clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
		clock-names = "core", "clkin";

		slot@1 {
			compatible = "mmc-slot";
			reg = <1>;

			bus-width = <4>;
		};
	};
+94 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/amlogic,meson-mx-sdio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Amlogic Meson6, Meson8 and Meson8b SDIO/MMC controller

description: |
  The highspeed MMC host controller on Amlogic SoCs provides an interface
  for MMC, SD, SDIO and SDHC types of memory cards.

  Supported maximum speeds are the ones of the eMMC standard 4.41 as well
  as the speed of SD standard 2.0.

  The hardware provides an internal "mux" which allows up to three slots
  to be controlled. Only one slot can be accessed at a time.

maintainers:
  - Neil Armstrong <neil.armstrong@linaro.org>

properties:
  compatible:
    items:
      - enum:
          - amlogic,meson8-sdio
          - amlogic,meson8b-sdio
      - const: amlogic,meson-mx-sdio

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 2

  clock-names:
    items:
      - const: core
      - const: clkin

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

patternProperties:
  "slot@[0-2]$":
    $ref: mmc-slot.yaml#
    description:
      A node for each slot provided by the MMC controller

    properties:
      reg:
        enum: [0, 1, 2]

      bus-width:
        enum: [1, 4]

    unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - "#address-cells"
  - "#size-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    mmc@c1108c20 {
        compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio";
        reg = <0xc1108c20 0x20>;
        interrupts = <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>;
        clocks = <&clk_core>, <&clk_in>;
        clock-names = "core", "clkin";
        #address-cells = <1>;
        #size-cells = <0>;

        slot@1 {
            compatible = "mmc-slot";
            reg = <1>;
            bus-width = <4>;
        };
    };