Commit c784b761 authored by Dharma Balasubiramani's avatar Dharma Balasubiramani Committed by Ulf Hansson
Browse files

dt-bindings: mmc: atmel,hsmci: Convert to json schema



Convert atmel,hsmci documentation to yaml format. The new file will inherit
from mmc-controller.yaml.

Signed-off-by: default avatarDharma Balasubiramani <dharma.b@microchip.com>
Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20250224-mmc-slot-v4-2-231620a31e88@microchip.com


Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent ec53e2ea
Loading
Loading
Loading
Loading
+106 −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/atmel,hsmci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Atmel High-Speed MultiMedia Card Interface (HSMCI)

description:
  The Atmel HSMCI controller provides an interface for MMC, SD, and SDIO memory
  cards.

maintainers:
  - Nicolas Ferre <nicolas.ferre@microchip.com>
  - Aubin Constans <aubin.constans@microchip.com>

allOf:
  - $ref: mmc-controller.yaml

properties:
  compatible:
    const: atmel,hsmci

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  dmas:
    maxItems: 1

  dma-names:
    const: rxtx

  clocks:
    maxItems: 1

  clock-names:
    const: mci_clk

  "#address-cells":
    const: 1
    description: Used for slot IDs.

  "#size-cells":
    const: 0

patternProperties:
  "slot@[0-2]$":
    $ref: mmc-slot.yaml
    description: A slot node representing an MMC, SD, or SDIO slot.

    properties:
      reg:
        enum: [0, 1]

    required:
      - reg
      - bus-width

    unevaluatedProperties: false

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

anyOf:
  - required:
      - slot@0
  - required:
      - slot@1

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/clock/at91.h>
    mmc@f0008000 {
      compatible = "atmel,hsmci";
      reg = <0xf0008000 0x600>;
      interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
      clocks = <&mci0_clk>;
      clock-names = "mci_clk";
      #address-cells = <1>;
      #size-cells = <0>;

      slot@0 {
        reg = <0>;
        bus-width = <4>;
        cd-gpios = <&pioD 15 0>;
        cd-inverted;
      };

      slot@1 {
        reg = <1>;
        bus-width = <4>;
      };
    };
...
+0 −73
Original line number Diff line number Diff line
* Atmel High Speed MultiMedia Card Interface

This controller on atmel products provides an interface for MMC, SD and SDIO
types of memory cards.

This file documents differences between the core properties described
by mmc.txt and the properties used by the atmel-mci driver.

1) MCI node

Required properties:
- compatible: should be "atmel,hsmci"
- #address-cells: should be one. The cell is the slot id.
- #size-cells: should be zero.
- at least one slot node
- clock-names: tuple listing input clock names.
	Required elements: "mci_clk"
- clocks: phandles to input clocks.

The node contains child nodes for each slot that the platform uses

Example MCI node:

mmc0: mmc@f0008000 {
	compatible = "atmel,hsmci";
	reg = <0xf0008000 0x600>;
	interrupts = <12 4>;
	#address-cells = <1>;
	#size-cells = <0>;
	clock-names = "mci_clk";
	clocks = <&mci0_clk>;

	[ child node definitions...]
};

2) slot nodes

Required properties:
- reg: should contain the slot id.
- bus-width: number of data lines connected to the controller

Optional properties:
- cd-gpios: specify GPIOs for card detection
- cd-inverted: invert the value of external card detect gpio line
- wp-gpios: specify GPIOs for write protection

Example slot node:

slot@0 {
	reg = <0>;
	bus-width = <4>;
	cd-gpios = <&pioD 15 0>
	cd-inverted;
};

Example full MCI node:
mmc0: mmc@f0008000 {
	compatible = "atmel,hsmci";
	reg = <0xf0008000 0x600>;
	interrupts = <12 4>;
	#address-cells = <1>;
	#size-cells = <0>;
	slot@0 {
		reg = <0>;
		bus-width = <4>;
		cd-gpios = <&pioD 15 0>
		cd-inverted;
	};
	slot@1 {
		reg = <1>;
		bus-width = <4>;
	};
};