diff mbox series

[5/5] dt-bindings: mmc: samsung,s3c6410-sdhci: convert to dtschema

Message ID 20220626120342.38851-6-krzysztof.kozlowski@linaro.org (mailing list archive)
State New
Headers show
Series mmc: dt-bindings: samsung,s3c6410-sdhci: convert to dtschema | expand

Commit Message

Krzysztof Kozlowski June 26, 2022, 12:03 p.m. UTC
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>
---
 .../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

Comments

Rob Herring June 30, 2022, 11:15 p.m. UTC | #1
On Sun, 26 Jun 2022 14:03:42 +0200, Krzysztof Kozlowski 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@linaro.org>
> ---
>  .../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
> 

Reviewed-by: Rob Herring <robh@kernel.org>
Ulf Hansson July 12, 2022, 11:09 a.m. UTC | #2
On Sun, 26 Jun 2022 at 14:03, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> 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@linaro.org>

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@samsung.com>
> +  - Krzysztof Kozlowski <krzk@kernel.org>
> +
> +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
>
diff mbox series

Patch

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@samsung.com>
+  - Krzysztof Kozlowski <krzk@kernel.org>
+
+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.