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: Dharma Balasubiramani <dharma.b@microchip.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20250224-mmc-slot-v4-2-231620a31e88@microchip.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
pull/1184/head
Dharma Balasubiramani 2025-02-24 08:22:28 +05:30 committed by Ulf Hansson
parent ec53e2ea6b
commit c784b7617c
2 changed files with 106 additions and 73 deletions

View File

@ -0,0 +1,106 @@
# 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>;
};
};
...

View File

@ -1,73 +0,0 @@
* 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>;
};
};