Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: mmc: samsung,s3c6410-sdhci: convert to dtschema

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@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220626120342.38851-6-krzysztof.kozlowski@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

Krzysztof Kozlowski and committed by
Ulf Hansson
f3daa7e6 2e586f8a

+81 -32
+81
Documentation/devicetree/bindings/mmc/samsung,s3c6410-sdhci.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mmc/samsung,s3c6410-sdhci.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Samsung SoC SDHCI Controller 8 + 9 + maintainers: 10 + - Jaehoon Chung <jh80.chung@samsung.com> 11 + - Krzysztof Kozlowski <krzk@kernel.org> 12 + 13 + properties: 14 + compatible: 15 + enum: 16 + - samsung,s3c6410-sdhci 17 + - samsung,exynos4210-sdhci 18 + 19 + reg: 20 + maxItems: 1 21 + 22 + clocks: 23 + minItems: 2 24 + maxItems: 5 25 + 26 + clock-names: 27 + minItems: 2 28 + items: 29 + - const: hsmmc 30 + - pattern: "^mmc_busclk.[0-3]$" 31 + - pattern: "^mmc_busclk.[0-3]$" 32 + - pattern: "^mmc_busclk.[0-3]$" 33 + - pattern: "^mmc_busclk.[0-3]$" 34 + 35 + interrupts: 36 + maxItems: 1 37 + 38 + required: 39 + - compatible 40 + - reg 41 + - interrupts 42 + - clocks 43 + - clock-names 44 + 45 + allOf: 46 + - $ref: mmc-controller.yaml# 47 + - if: 48 + properties: 49 + compatible: 50 + contains: 51 + enum: 52 + - samsung,exynos4210-sdhci 53 + then: 54 + properties: 55 + clocks: 56 + maxItems: 2 57 + clock-names: 58 + items: 59 + - const: hsmmc 60 + - const: mmc_busclk.2 61 + 62 + unevaluatedProperties: false 63 + 64 + examples: 65 + - | 66 + #include <dt-bindings/clock/exynos4.h> 67 + #include <dt-bindings/gpio/gpio.h> 68 + #include <dt-bindings/interrupt-controller/arm-gic.h> 69 + 70 + mmc@12510000 { 71 + compatible = "samsung,exynos4210-sdhci"; 72 + reg = <0x12510000 0x100>; 73 + interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 74 + clocks = <&clock CLK_SDMMC0>, <&clock CLK_SCLK_MMC0>; 75 + clock-names = "hsmmc", "mmc_busclk.2"; 76 + bus-width = <4>; 77 + cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>; 78 + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sdhci2_cd>; 79 + pinctrl-names = "default"; 80 + vmmc-supply = <&ldo21_reg>; 81 + };
-32
Documentation/devicetree/bindings/mmc/samsung-sdhci.txt
··· 1 - * Samsung's SDHCI Controller device tree bindings 2 - 3 - Samsung's SDHCI controller is used as a connectivity interface with external 4 - MMC, SD and eMMC storage mediums. This file documents differences between the 5 - core mmc properties described by mmc.txt and the properties used by the 6 - Samsung implementation of the SDHCI controller. 7 - 8 - Required SoC Specific Properties: 9 - - compatible: should be one of the following 10 - - "samsung,s3c6410-sdhci": For controllers compatible with s3c6410 sdhci 11 - controller. 12 - - "samsung,exynos4210-sdhci": For controllers compatible with Exynos4 sdhci 13 - controller. 14 - 15 - Required Board Specific Properties: 16 - - pinctrl-0: Should specify pin control groups used for this controller. 17 - - pinctrl-names: Should contain only one value - "default". 18 - 19 - Example: 20 - sdhci@12530000 { 21 - compatible = "samsung,exynos4210-sdhci"; 22 - reg = <0x12530000 0x100>; 23 - interrupts = <0 75 0>; 24 - bus-width = <4>; 25 - cd-gpios = <&gpk2 2 0>; 26 - pinctrl-names = "default"; 27 - pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>; 28 - }; 29 - 30 - Note: This example shows both SoC specific and board specific properties 31 - in a single device node. The properties can be actually be separated 32 - into SoC specific node and board specific node.