dt-bindings: mmc: ti,omap2430-sdhci: convert to DT schema

Convert TI OMAP SDHCI Controller binding to YAML format.
Changes during Conversion:
- Define new properties like "clocks", "clock-names",
  "pbias-supply" and "power-domains" to resolve dtb_check errors.
- Remove "pinctrl-names" and "pinctrl-<n>"
  from required as they are not necessary for all DTS files.
- Remove "ti,hwmods" property entirely from the YAML as the
  DTS doesn't contain this property for the given compatibles and the
  text binding is misleading.
- Add "clocks", "clock-names" and "max-frequency" to the required
  properties based on the compatible and the text binding doesn't mention
  these properties as required.
- Add missing strings like "default-rev11", "sdr12-rev11", "sdr25-rev11",
  "hs-rev11", "sdr25-rev11" and "sleep" to pinctrl-names string array
  to resolve errors detected by dtb_check.

Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20251024-ti-sdhci-omap-v5-3-df5f6f033a38@gmail.com
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
pull/1354/merge
Charan Pedumuru 2025-10-24 07:57:10 +00:00 committed by Kevin Hilman
parent 9485ba8ab3
commit 333fa35fbd
2 changed files with 169 additions and 43 deletions

View File

@ -1,43 +0,0 @@
* TI OMAP SDHCI Controller
Refer to mmc.txt for standard MMC bindings.
For UHS devices which require tuning, the device tree should have a "cpu_thermal" node which maps to the appropriate thermal zone. This is used to get the temperature of the zone during tuning.
Required properties:
- compatible: Should be "ti,omap2430-sdhci" for omap2430 controllers
Should be "ti,omap3-sdhci" for omap3 controllers
Should be "ti,omap4-sdhci" for omap4 and ti81 controllers
Should be "ti,omap5-sdhci" for omap5 controllers
Should be "ti,dra7-sdhci" for DRA7 and DRA72 controllers
Should be "ti,k2g-sdhci" for K2G
Should be "ti,am335-sdhci" for am335x controllers
Should be "ti,am437-sdhci" for am437x controllers
- ti,hwmods: Must be "mmc<n>", <n> is controller instance starting 1
(Not required for K2G).
- pinctrl-names: Should be subset of "default", "hs", "sdr12", "sdr25", "sdr50",
"ddr50-rev11", "sdr104-rev11", "ddr50", "sdr104",
"ddr_1_8v-rev11", "ddr_1_8v" or "ddr_3_3v", "hs200_1_8v-rev11",
"hs200_1_8v",
- pinctrl-<n> : Pinctrl states as described in bindings/pinctrl/pinctrl-bindings.txt
Optional properties:
- dmas: List of DMA specifiers with the controller specific format as described
in the generic DMA client binding. A tx and rx specifier is required.
- dma-names: List of DMA request names. These strings correspond 1:1 with the
DMA specifiers listed in dmas. The string naming is to be "tx"
and "rx" for TX and RX DMA requests, respectively.
Deprecated properties:
- ti,non-removable: Compatible with the generic non-removable property
Example:
mmc1: mmc@4809c000 {
compatible = "ti,dra7-sdhci";
reg = <0x4809c000 0x400>;
ti,hwmods = "mmc1";
bus-width = <4>;
vmmc-supply = <&vmmc>; /* phandle to regulator node */
dmas = <&sdma 61 &sdma 62>;
dma-names = "tx", "rx";
};

View File

@ -0,0 +1,169 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/ti,omap2430-sdhci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TI OMAP SDHCI Controller
maintainers:
- Kishon Vijay Abraham I <kishon@ti.com>
description:
For UHS devices which require tuning, the device tree should have a
cpu_thermal node which maps to the appropriate thermal zone. This
is used to get the temperature of the zone during tuning.
properties:
compatible:
enum:
- ti,omap2430-sdhci
- ti,omap3-sdhci
- ti,omap4-sdhci
- ti,omap5-sdhci
- ti,dra7-sdhci
- ti,k2g-sdhci
- ti,am335-sdhci
- ti,am437-sdhci
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 2
clock-names:
items:
- const: fck
- const: mmchsdb_fck
dmas:
maxItems: 2
dma-names:
items:
- const: tx
- const: rx
pinctrl-names:
minItems: 1
maxItems: 14
items:
enum:
- default
- default-rev11
- hs
- sdr12
- sdr12-rev11
- sdr25
- sdr25-rev11
- sdr50
- ddr50-rev11
- sdr104-rev11
- ddr50
- sdr104
- ddr_1_8v-rev11
- ddr_1_8v
- ddr_3_3v
- hs-rev11
- hs200_1_8v-rev11
- hs200_1_8v
- sleep
pinctrl-0:
maxItems: 1
pinctrl-1:
maxItems: 1
pinctrl-2:
maxItems: 1
pinctrl-3:
maxItems: 1
pinctrl-4:
maxItems: 1
pinctrl-5:
maxItems: 1
pinctrl-6:
maxItems: 1
pinctrl-7:
maxItems: 1
pinctrl-8:
maxItems: 1
power-domains:
maxItems: 1
pbias-supply:
description:
It is used to specify the voltage regulator that provides the bias
voltage for certain analog or I/O pads.
ti,non-removable:
description:
It indicates that a component is not meant to be easily removed or
replaced by the user, such as an embedded battery or a non-removable
storage slot like eMMC.
type: boolean
deprecated: true
clock-frequency:
$ref: /schemas/types.yaml#/definitions/uint32
description:
It represents the speed at which a clock signal associated with a device
or bus operates, measured in Hertz (Hz). This value is crucial for configuring
hardware components that require a specific clock speed.
required:
- compatible
- reg
- interrupts
allOf:
- $ref: sdhci-common.yaml#
- if:
properties:
compatible:
contains:
enum:
- ti,dra7-sdhci
- ti,k2g-sdhci
then:
required:
- max-frequency
- if:
properties:
compatible:
contains:
const: ti,k2g-sdhci
then:
required:
- clocks
- clock-names
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
mmc@4809c000 {
compatible = "ti,dra7-sdhci";
reg = <0x4809c000 0x400>;
interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
max-frequency = <192000000>;
sdhci-caps-mask = <0x0 0x400000>;
bus-width = <4>;
vmmc-supply = <&vmmc>; /* phandle to regulator node */
dmas = <&sdma 61>, <&sdma 62>;
dma-names = "tx", "rx";
};
...