From: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Thierry Reding <thierry.reding@gmail.com>,
Mark Rutland <mark.rutland@arm.com>,
linux-pwm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
Maciej Falkowski <m.falkowski@samsung.com>,
linux-samsung-soc@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-leds@vger.kernel.org,
linux-clk@vger.kernel.org
Subject: Re: [RFC PATCH 2/2] dt-bindings: pwm: Convert Samsung PWM bindings to json-schema
Date: Fri, 13 Sep 2019 15:36:24 +0100 [thread overview]
Message-ID: <20190912175001.GA29884@bogus> (raw)
In-Reply-To: <20190909183436.9045-2-krzk@kernel.org>
On Mon, Sep 09, 2019 at 08:34:36PM +0200, Krzysztof Kozlowski wrote:
> Convert Samsung PWM (S3C, S5P and Exynos SoCs) bindings to DT schema
> format using json-schema.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---
> .../devicetree/bindings/pwm/pwm-samsung.txt | 51 --------
> .../devicetree/bindings/pwm/pwm-samsung.yaml | 111 ++++++++++++++++++
> 2 files changed, 111 insertions(+), 51 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-samsung.txt
> create mode 100644 Documentation/devicetree/bindings/pwm/pwm-samsung.yaml
> diff --git a/Documentation/devicetree/bindings/pwm/pwm-samsung.yaml b/Documentation/devicetree/bindings/pwm/pwm-samsung.yaml
> new file mode 100644
> index 000000000000..90fb467bcdd5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pwm/pwm-samsung.yaml
> @@ -0,0 +1,111 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pwm/pwm-samsung.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Samsung SoC PWM timers
> +
> +maintainers:
> + - Thierry Reding <thierry.reding@gmail.com>
> + - Krzysztof Kozlowski <krzk@kernel.org>
> +
> +description: |+
> + Samsung SoCs contain PWM timer blocks which can be used for system clock source
> + and clock event timers, as well as to drive SoC outputs with PWM signal. Each
> + PWM timer block provides 5 PWM channels (not all of them can drive physical
> + outputs - see SoC and board manual).
> +
> + Be aware that the clocksource driver supports only uniprocessor systems.
> +
> +allOf:
> + - $ref: pwm.yaml#
> +
> +properties:
> + compatible:
> + enum:
> + - samsung,s3c2410-pwm # 16-bit, S3C24xx
> + - samsung,s3c6400-pwm # 32-bit, S3C64xx
> + - samsung,s5p6440-pwm # 32-bit, S5P64x0
> + - samsung,s5pc100-pwm # 32-bit, S5PC100, S5PV210, Exynos4210 rev0 SoCs
> + - samsung,exynos4210-pwm # 32-bit, Exynos
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + minItems: 1
> + maxItems: 3
> +
> + clock-names:
> + description: |
> + Should contain all following required clock names:
> + - "timers" - PWM base clock used to generate PWM signals,
> + and any subset of following optional clock names:
> + - "pwm-tclk0" - first external PWM clock source,
> + - "pwm-tclk1" - second external PWM clock source.
> + Note that not all IP variants allow using all external clock sources.
> + Refer to SoC documentation to learn which clock source configurations
> + are available.
> + oneOf:
> + - items:
> + - const: "timers"
> + - items:
> + - const: "timers"
> + - const: "pwm-tclk0"
> + - items:
> + - const: "timers"
> + - const: "pwm-tclk1"
> + - items:
> + - const: "timers"
> + - const: "pwm-tclk0"
> + - const: "pwm-tclk1"
> +
> + interrupts:
> + description:
> + One interrupt per timer, starting at timer 0.
> + minItems: 1
> + maxItems: 5
> +
> + "#pwm-cells":
> + description:
> + The only third cell flag supported by this binding
> + is PWM_POLARITY_INVERTED.
> + const: 3
> +
> + samsung,pwm-outputs:
> + description:
> + A list of PWM channels used as PWM outputs on particular platform.
> + It is an array of up to 5 elements being indices of PWM channels
> + (from 0 to 4), the order does not matter.
> + # TODO: Values should not repeat
uniqueItems: true
Though it looks like we have to enable that keyword. (As silently
ignoring unknown keywords (such as typos) is 'feature' of json-schema,
we explicitly list keywords we use.)
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + # FIXME: min/max limit of items does not work
> + - items:
> + minItems: 1
> + maxItems: 5
> + - items:
> + minimum: 0
> + maximum: 4
I think you want:
minItems: 1
maxItems: 2
items:
minimum: 0
maximum: 4
> +
> +required:
> + - clocks
> + - clock-names
> + - compatible
> + - interrupts
> + - "#pwm-cells"
> + - reg
> +
> +examples:
> + - |
> + pwm@7f006000 {
> + compatible = "samsung,s3c6400-pwm";
> + reg = <0x7f006000 0x1000>;
> + interrupt-parent = <&vic0>;
> + interrupts = <23>, <24>, <25>, <27>, <28>;
> + clocks = <&clock 67>;
> + clock-names = "timers";
> + samsung,pwm-outputs = <0>, <1>;
> + #pwm-cells = <3>;
> + };
> --
> 2.17.1
>
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
linux-pwm@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
Maciej Falkowski <m.falkowski@samsung.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Thierry Reding <thierry.reding@gmail.com>,
linux-leds@vger.kernel.org, linux-clk@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC PATCH 2/2] dt-bindings: pwm: Convert Samsung PWM bindings to json-schema
Date: Fri, 13 Sep 2019 15:36:24 +0100 [thread overview]
Message-ID: <20190912175001.GA29884@bogus> (raw)
In-Reply-To: <20190909183436.9045-2-krzk@kernel.org>
On Mon, Sep 09, 2019 at 08:34:36PM +0200, Krzysztof Kozlowski wrote:
> Convert Samsung PWM (S3C, S5P and Exynos SoCs) bindings to DT schema
> format using json-schema.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---
> .../devicetree/bindings/pwm/pwm-samsung.txt | 51 --------
> .../devicetree/bindings/pwm/pwm-samsung.yaml | 111 ++++++++++++++++++
> 2 files changed, 111 insertions(+), 51 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-samsung.txt
> create mode 100644 Documentation/devicetree/bindings/pwm/pwm-samsung.yaml
> diff --git a/Documentation/devicetree/bindings/pwm/pwm-samsung.yaml b/Documentation/devicetree/bindings/pwm/pwm-samsung.yaml
> new file mode 100644
> index 000000000000..90fb467bcdd5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pwm/pwm-samsung.yaml
> @@ -0,0 +1,111 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pwm/pwm-samsung.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Samsung SoC PWM timers
> +
> +maintainers:
> + - Thierry Reding <thierry.reding@gmail.com>
> + - Krzysztof Kozlowski <krzk@kernel.org>
> +
> +description: |+
> + Samsung SoCs contain PWM timer blocks which can be used for system clock source
> + and clock event timers, as well as to drive SoC outputs with PWM signal. Each
> + PWM timer block provides 5 PWM channels (not all of them can drive physical
> + outputs - see SoC and board manual).
> +
> + Be aware that the clocksource driver supports only uniprocessor systems.
> +
> +allOf:
> + - $ref: pwm.yaml#
> +
> +properties:
> + compatible:
> + enum:
> + - samsung,s3c2410-pwm # 16-bit, S3C24xx
> + - samsung,s3c6400-pwm # 32-bit, S3C64xx
> + - samsung,s5p6440-pwm # 32-bit, S5P64x0
> + - samsung,s5pc100-pwm # 32-bit, S5PC100, S5PV210, Exynos4210 rev0 SoCs
> + - samsung,exynos4210-pwm # 32-bit, Exynos
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + minItems: 1
> + maxItems: 3
> +
> + clock-names:
> + description: |
> + Should contain all following required clock names:
> + - "timers" - PWM base clock used to generate PWM signals,
> + and any subset of following optional clock names:
> + - "pwm-tclk0" - first external PWM clock source,
> + - "pwm-tclk1" - second external PWM clock source.
> + Note that not all IP variants allow using all external clock sources.
> + Refer to SoC documentation to learn which clock source configurations
> + are available.
> + oneOf:
> + - items:
> + - const: "timers"
> + - items:
> + - const: "timers"
> + - const: "pwm-tclk0"
> + - items:
> + - const: "timers"
> + - const: "pwm-tclk1"
> + - items:
> + - const: "timers"
> + - const: "pwm-tclk0"
> + - const: "pwm-tclk1"
> +
> + interrupts:
> + description:
> + One interrupt per timer, starting at timer 0.
> + minItems: 1
> + maxItems: 5
> +
> + "#pwm-cells":
> + description:
> + The only third cell flag supported by this binding
> + is PWM_POLARITY_INVERTED.
> + const: 3
> +
> + samsung,pwm-outputs:
> + description:
> + A list of PWM channels used as PWM outputs on particular platform.
> + It is an array of up to 5 elements being indices of PWM channels
> + (from 0 to 4), the order does not matter.
> + # TODO: Values should not repeat
uniqueItems: true
Though it looks like we have to enable that keyword. (As silently
ignoring unknown keywords (such as typos) is 'feature' of json-schema,
we explicitly list keywords we use.)
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + # FIXME: min/max limit of items does not work
> + - items:
> + minItems: 1
> + maxItems: 5
> + - items:
> + minimum: 0
> + maximum: 4
I think you want:
minItems: 1
maxItems: 2
items:
minimum: 0
maximum: 4
> +
> +required:
> + - clocks
> + - clock-names
> + - compatible
> + - interrupts
> + - "#pwm-cells"
> + - reg
> +
> +examples:
> + - |
> + pwm@7f006000 {
> + compatible = "samsung,s3c6400-pwm";
> + reg = <0x7f006000 0x1000>;
> + interrupt-parent = <&vic0>;
> + interrupts = <23>, <24>, <25>, <27>, <28>;
> + clocks = <&clock 67>;
> + clock-names = "timers";
> + samsung,pwm-outputs = <0>, <1>;
> + #pwm-cells = <3>;
> + };
> --
> 2.17.1
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-09-13 14:36 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-09 18:34 [RFC PATCH 1/2] dt-bindings: pwm: Convert PWM bindings to json-schema Krzysztof Kozlowski
2019-09-09 18:34 ` Krzysztof Kozlowski
2019-09-09 18:34 ` [RFC PATCH 2/2] dt-bindings: pwm: Convert Samsung " Krzysztof Kozlowski
2019-09-09 18:34 ` Krzysztof Kozlowski
2019-09-13 14:36 ` Rob Herring [this message]
2019-09-13 14:36 ` Rob Herring
2019-09-18 11:53 ` Krzysztof Kozlowski
2019-09-18 11:53 ` Krzysztof Kozlowski
2019-09-10 8:33 ` [RFC PATCH 1/2] dt-bindings: pwm: Convert " Rob Herring
2019-09-10 8:33 ` Rob Herring
2019-09-10 8:43 ` Krzysztof Kozlowski
2019-09-10 8:43 ` Krzysztof Kozlowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190912175001.GA29884@bogus \
--to=robh@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=m.falkowski@samsung.com \
--cc=mark.rutland@arm.com \
--cc=thierry.reding@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.