On Sun, 26 Jun 2022 at 14:03, Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > > Convert the Samsung SoC SDHCI Controller bindings to DT schema. > > The original bindings were quite old and incomplete, so add during > conversion typical (already used) properties like reg, clocks, > interrupts. > > The bindings were not precising the clocks, although the upstream DTS > and Linux driver were expecting bus clocks in certain patterns in any > order. Document the status quo even though it is not a proper approach > for bindings. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> Applied for next, thanks! Kind regards Uffe > --- > .../bindings/mmc/samsung,s3c6410-sdhci.yaml | 81 +++++++++++++++++++ > .../devicetree/bindings/mmc/samsung-sdhci.txt | 32 -------- > 2 files changed, 81 insertions(+), 32 deletions(-) > create mode 100644 Documentation/devicetree/bindings/mmc/samsung,s3c6410-sdhci.yaml > delete mode 100644 Documentation/devicetree/bindings/mmc/samsung-sdhci.txt > > diff --git a/Documentation/devicetree/bindings/mmc/samsung,s3c6410-sdhci.yaml b/Documentation/devicetree/bindings/mmc/samsung,s3c6410-sdhci.yaml > new file mode 100644 > index 000000000000..5d873a60f650 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mmc/samsung,s3c6410-sdhci.yaml > @@ -0,0 +1,81 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/mmc/samsung,s3c6410-sdhci.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Samsung SoC SDHCI Controller > + > +maintainers: > + - Jaehoon Chung <jh80.chung@xxxxxxxxxxx> > + - Krzysztof Kozlowski <krzk@xxxxxxxxxx> > + > +properties: > + compatible: > + enum: > + - samsung,s3c6410-sdhci > + - samsung,exynos4210-sdhci > + > + reg: > + maxItems: 1 > + > + clocks: > + minItems: 2 > + maxItems: 5 > + > + clock-names: > + minItems: 2 > + items: > + - const: hsmmc > + - pattern: "^mmc_busclk.[0-3]$" > + - pattern: "^mmc_busclk.[0-3]$" > + - pattern: "^mmc_busclk.[0-3]$" > + - pattern: "^mmc_busclk.[0-3]$" > + > + interrupts: > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - clock-names > + > +allOf: > + - $ref: mmc-controller.yaml# > + - if: > + properties: > + compatible: > + contains: > + enum: > + - samsung,exynos4210-sdhci > + then: > + properties: > + clocks: > + maxItems: 2 > + clock-names: > + items: > + - const: hsmmc > + - const: mmc_busclk.2 > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/clock/exynos4.h> > + #include <dt-bindings/gpio/gpio.h> > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + > + mmc@12510000 { > + compatible = "samsung,exynos4210-sdhci"; > + reg = <0x12510000 0x100>; > + interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&clock CLK_SDMMC0>, <&clock CLK_SCLK_MMC0>; > + clock-names = "hsmmc", "mmc_busclk.2"; > + bus-width = <4>; > + cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>; > + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sdhci2_cd>; > + pinctrl-names = "default"; > + vmmc-supply = <&ldo21_reg>; > + }; > diff --git a/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt b/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt > deleted file mode 100644 > index 42e0a9afa100..000000000000 > --- a/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt > +++ /dev/null > @@ -1,32 +0,0 @@ > -* Samsung's SDHCI Controller device tree bindings > - > -Samsung's SDHCI controller is used as a connectivity interface with external > -MMC, SD and eMMC storage mediums. This file documents differences between the > -core mmc properties described by mmc.txt and the properties used by the > -Samsung implementation of the SDHCI controller. > - > -Required SoC Specific Properties: > -- compatible: should be one of the following > - - "samsung,s3c6410-sdhci": For controllers compatible with s3c6410 sdhci > - controller. > - - "samsung,exynos4210-sdhci": For controllers compatible with Exynos4 sdhci > - controller. > - > -Required Board Specific Properties: > -- pinctrl-0: Should specify pin control groups used for this controller. > -- pinctrl-names: Should contain only one value - "default". > - > -Example: > - sdhci@12530000 { > - compatible = "samsung,exynos4210-sdhci"; > - reg = <0x12530000 0x100>; > - interrupts = <0 75 0>; > - bus-width = <4>; > - cd-gpios = <&gpk2 2 0>; > - pinctrl-names = "default"; > - pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>; > - }; > - > - Note: This example shows both SoC specific and board specific properties > - in a single device node. The properties can be actually be separated > - into SoC specific node and board specific node. > -- > 2.34.1 >