Re: [RFC 1/9] dt-bindings: arm: samsung: Convert Samsung board/soc bindings to json-schema

From: Rob Herring
Date: Mon Aug 26 2019 - 07:38:08 EST


On Fri, Aug 23, 2019 at 9:54 AM Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote:
>
> Convert Samsung S5P and Exynos SoC bindings to DT schema format using
> json-schema. This is purely conversion of already documented bindings
> so it does not cover all of DTS in the Linux kernel (few S5P/Exynos and
> all S3C are missing).
>
> Signed-off-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
>
> ---
>
> If the schema looks sensible, I will continue on converting other
> SoC and driver bindings and later adding missing schemas (S3C
> SoCs).

Looks pretty good.

> ---
> .../bindings/arm/samsung/samsung-boards.txt | 83 --------
> .../bindings/arm/samsung/samsung-boards.yaml | 188 ++++++++++++++++++
> 2 files changed, 188 insertions(+), 83 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
> create mode 100644 Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml


> diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
> new file mode 100644
> index 000000000000..e963fd70c436
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
> @@ -0,0 +1,188 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/arm/samsung/samsung-boards.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Samsung Exynos and S5P SoC based boards
> +
> +maintainers:
> + - Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> +
> +properties:
> + $nodename:
> + const: '/'
> + compatible:
> + oneOf:
> + - description: S5PV210 based Aries boards
> + items:
> + - enum:
> + - samsung,fascinate4g # Samsung Galaxy S Fascinate 4G (SGH-T959P)
> + - samsung,galaxys # Samsung Galaxy S (i9000)
> + - const: samsung,aries
> + - const: samsung,s5pv210
> +
> + - description: Exynos3250 based boards
> + items:
> + - enum:
> + - samsung,monk # Samsung Simband
> + - samsung,rinato # Samsung Gear2
> + - const: samsung,exynos3250
> + - const: samsung,exynos3
> +
> + - description: Samsung ARTIK5 boards
> + items:
> + - enum:
> + - samsung,artik5-eval # Samsung ARTIK5 eval board
> + - const: samsung,artik5 # Samsung ARTIK5 module
> + - const: samsung,exynos3250
> + - const: samsung,exynos3
> +
> + - description: Exynos4210 based boards
> + items:
> + - enum:
> + - insignal,origen # Insignal Origen
> + - samsung,smdkv310 # Samsung SMDKV310 eval
> + - samsung,trats # Samsung Tizen Reference
> + - samsung,universal_c210 # Samsung C210
> + - const: samsung,exynos4210
> + - const: samsung,exynos4
> +
> + - description: Exynos4412 based boards
> + items:
> + - enum:
> + - friendlyarm,tiny4412 # FriendlyARM TINY4412
> + - hardkernel,odroid-u3 # Hardkernel Odroid U3
> + - hardkernel,odroid-x # Hardkernel Odroid X
> + - hardkernel,odroid-x2 # Hardkernel Odroid X2
> + - insignal,origen4412 # Insignal Origen
> + - samsung,smdk4412 # Samsung SMDK4412 eval
> + - topeet,itop4412-elite # TOPEET Elite base
> + - const: samsung,exynos4412
> + - const: samsung,exynos4
> +
> + - description: Samsung Midas family boards
> + items:
> + - enum:
> + - samsung,i9300 # Samsung GT-I9300
> + - samsung,i9305 # Samsung GT-I9305
> + - samsung,n710x # Samsung GT-N7100/GT-N7105
> + - samsung,trats2 # Samsung Tizen Reference
> + - const: samsung,midas
> + - const: samsung,exynos4412
> + - const: samsung,exynos4
> +
> + - description: Exynos5250 based boards
> + items:
> + - enum:
> + - google,snow-rev5 # Google Snow Rev 5+
> + - google,spring # Google Spring
> + - insignal,arndale # Insignal Arndale
> + - samsung,smdk5250 # Samsung SMDK5250 eval
> + - const: samsung,exynos5250
> + - const: samsung,exynos5
> +
> + - description: Google Snow Boards (Rev 4+)
> + items:
> + - enum:
> + - google,snow-rev4

const here as I wouldn't expect this list to grow.

> + - const: google,snow
> + - const: samsung,exynos5250
> + - const: samsung,exynos5
> +
> + - description: Exynos5260 based boards
> + items:
> + - enum:
> + - samsung,xyref5260 # Samsung Xyref5260 eval
> + - const: samsung,exynos5260
> + - const: samsung,exynos5
> +
> + - description: Exynos5410 based boards
> + items:
> + - enum:
> + - hardkernel,odroid-xu # Hardkernel Odroid XU
> + - samsung,smdk5410 # Samsung SMDK5410 eval
> + - const: samsung,exynos5410
> + - const: samsung,exynos5
> +
> + - description: Exynos5420 based boards
> + items:
> + - enum:
> + - insignal,arndale-octa # Insignal Arndale Octa
> + - samsung,smdk5420 # Samsung SMDK5420 eval
> + - const: samsung,exynos5420
> + - const: samsung,exynos5
> +
> + - description: Google Peach Pit Boards (Rev 6+)
> + items:
> + - enum:
> + - google,pit-rev16

const

> + - const: google,pit-rev15
> + - const: google,pit-rev14
> + - const: google,pit-rev13
> + - const: google,pit-rev12
> + - const: google,pit-rev11
> + - const: google,pit-rev10
> + - const: google,pit-rev9
> + - const: google,pit-rev8
> + - const: google,pit-rev7
> + - const: google,pit-rev6
> + - const: google,pit
> + - const: google,peach
> + - const: samsung,exynos5420
> + - const: samsung,exynos5
> +
> + - description: Exynos5800 based boards
> + items:
> + - enum:
> + - hardkernel,odroid-xu3 # Hardkernel Odroid XU3
> + - hardkernel,odroid-xu3-lite # Hardkernel Odroid XU3 Lite
> + - hardkernel,odroid-xu4 # Hardkernel Odroid XU4
> + - hardkernel,odroid-hc1 # Hardkernel Odroid HC1
> + - const: samsung,exynos5800
> + - const: samsung,exynos5
> +
> + - description: Google Peach Pi Boards (Rev 10+)
> + items:
> + - enum:
> + - google,pi-rev16
> + - const: google,pi-rev15
> + - const: google,pi-rev14
> + - const: google,pi-rev13
> + - const: google,pi-rev12
> + - const: google,pi-rev11
> + - const: google,pi-rev10
> + - const: google,pi
> + - const: google,peach
> + - const: samsung,exynos5800
> + - const: samsung,exynos5
> +
> + - description: Exynos5433 based boards
> + items:
> + - enum:
> + - samsung,tm2 # Samsung TM2
> + - samsung,tm2e # Samsung TM2E
> + - const: samsung,exynos5433
> +
> + firmware:

This should be moved to its own file.

> + type: object
> + description:
> + node specifying presence and type of secure firmware
> + properties:
> + compatible:
> + enum:
> + - samsung,secure-firmware
> + reg:
> + description:
> + address of non-secure SYSRAM used for communication with firmware
> + maxItems: 1
> +
> +required:
> + - compatible
> +
> +examples:
> + - |
> + firmware@203f000 {
> + compatible = "samsung,secure-firmware";
> + reg = <0x0203F000 0x1000>;
> + };
> --
> 2.17.1
>