2019-10-31 12:32:25

by Benjamin GAIGNARD

[permalink] [raw]
Subject: [PATCH 0/4] Convert STM32 Timer mdf bindings to yaml

This series converts STM32 Timer mfd bindings to json-schema.
The original binding split between all the subnode remains the same
that why subnode bindings are converted first and then included in
the mfd binding.

Benjamin Gaignard (4):
dt-bindings: counter: Convert stm32 counter bindings to json-schema
dt-bindings: iio: timer: Convert stm32 IIO trigger bindings to
json-schema
dt-bindings: pwm: Convert stm32 pwm bindings to json-schema
dt-bindings: mfd: Convert stm32 timers bindings to json-schema

.../bindings/counter/st,stm32-timer-cnt.yaml | 38 +++++++++
.../bindings/counter/stm32-timer-cnt.txt | 31 --------
.../bindings/iio/timer/st,stm32-timer-trigger.yaml | 44 +++++++++++
.../bindings/iio/timer/stm32-timer-trigger.txt | 25 ------
.../devicetree/bindings/mfd/st,stm32-timers.yaml | 91 ++++++++++++++++++++++
.../devicetree/bindings/mfd/stm32-timers.txt | 73 -----------------
.../devicetree/bindings/pwm/pwm-stm32.txt | 38 ---------
.../devicetree/bindings/pwm/st,stm32-pwm.yaml | 51 ++++++++++++
8 files changed, 224 insertions(+), 167 deletions(-)
create mode 100644 Documentation/devicetree/bindings/counter/st,stm32-timer-cnt.yaml
delete mode 100644 Documentation/devicetree/bindings/counter/stm32-timer-cnt.txt
create mode 100644 Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
delete mode 100644 Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
create mode 100644 Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/stm32-timers.txt
delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-stm32.txt
create mode 100644 Documentation/devicetree/bindings/pwm/st,stm32-pwm.yaml

--
2.15.0


2019-10-31 12:32:25

by Benjamin GAIGNARD

[permalink] [raw]
Subject: [PATCH 4/4] dt-bindings: mfd: Convert stm32 timers bindings to json-schema

Convert the STM32 timers binding to DT schema format using json-schema

Signed-off-by: Benjamin Gaignard <[email protected]>
---
.../devicetree/bindings/mfd/st,stm32-timers.yaml | 91 ++++++++++++++++++++++
.../devicetree/bindings/mfd/stm32-timers.txt | 73 -----------------
2 files changed, 91 insertions(+), 73 deletions(-)
create mode 100644 Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/stm32-timers.txt

diff --git a/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
new file mode 100644
index 000000000000..3f0a65fb2bc0
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
@@ -0,0 +1,91 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/st,stm32-timers.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics STM32 Timers bindings
+
+description: |
+ This hardware block provides 3 types of timer along with PWM functionality: \
+ - advanced-control timers consist of a 16-bit auto-reload counter driven by a programmable \
+ prescaler, break input feature, PWM outputs and complementary PWM ouputs channels. \
+ - general-purpose timers consist of a 16-bit or 32-bit auto-reload counter driven by a \
+ programmable prescaler and PWM outputs.\
+ - basic timers consist of a 16-bit auto-reload counter driven by a programmable prescaler.
+
+maintainers:
+ - Benjamin Gaignard <[email protected]>
+ - Fabrice Gasnier <[email protected]>
+
+allOf:
+ - $ref: "../pwm/st,stm32-pwm.yaml#"
+ - $ref: "../iio/timer/st,stm32-timer-trigger.yaml#"
+ - $ref: "../counter/st,stm32-timer-cnt.yaml#"
+
+properties:
+ compatible:
+ const: st,stm32-timers
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+
+ clock-names:
+ items:
+ - const: int
+
+ reset:
+ maxItems: 1
+
+ dmas: true
+
+ dma-names: true
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+required:
+ - "#address-cells"
+ - "#size-cells"
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+
+examples:
+ - |
+ #include <dt-bindings/clock/stm32mp1-clks.h>
+ timers2: timer@40000000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "st,stm32-timers";
+ reg = <0x40000000 0x400>;
+ clocks = <&rcc TIM2_K>;
+ clock-names = "int";
+ dmas = <&dmamux1 18 0x400 0x1>,
+ <&dmamux1 19 0x400 0x1>,
+ <&dmamux1 20 0x400 0x1>,
+ <&dmamux1 21 0x400 0x1>,
+ <&dmamux1 22 0x400 0x1>;
+ dma-names = "ch1", "ch2", "ch3", "ch4", "up";
+ pwm {
+ compatible = "st,stm32-pwm";
+ #pwm-cells = <3>;
+ st,breakinput = <0 1 5>;
+ };
+ timer@0 {
+ compatible = "st,stm32-timer-trigger";
+ reg = <0>;
+ };
+ counter {
+ compatible = "st,stm32-timer-counter";
+ };
+ };
+
+...
diff --git a/Documentation/devicetree/bindings/mfd/stm32-timers.txt b/Documentation/devicetree/bindings/mfd/stm32-timers.txt
deleted file mode 100644
index 15c3b87f51d9..000000000000
--- a/Documentation/devicetree/bindings/mfd/stm32-timers.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-STM32 Timers driver bindings
-
-This IP provides 3 types of timer along with PWM functionality:
-- advanced-control timers consist of a 16-bit auto-reload counter driven by a programmable
- prescaler, break input feature, PWM outputs and complementary PWM ouputs channels.
-- general-purpose timers consist of a 16-bit or 32-bit auto-reload counter driven by a
- programmable prescaler and PWM outputs.
-- basic timers consist of a 16-bit auto-reload counter driven by a programmable prescaler.
-
-Required parameters:
-- compatible: must be "st,stm32-timers"
-
-- reg: Physical base address and length of the controller's
- registers.
-- clock-names: Set to "int".
-- clocks: Phandle to the clock used by the timer module.
- For Clk properties, please refer to ../clock/clock-bindings.txt
-
-Optional parameters:
-- resets: Phandle to the parent reset controller.
- See ../reset/st,stm32-rcc.txt
-- dmas: List of phandle to dma channels that can be used for
- this timer instance. There may be up to 7 dma channels.
-- dma-names: List of dma names. Must match 'dmas' property. Valid
- names are: "ch1", "ch2", "ch3", "ch4", "up", "trig",
- "com".
-
-Optional subnodes:
-- pwm: See ../pwm/pwm-stm32.txt
-- timer: See ../iio/timer/stm32-timer-trigger.txt
-- counter: See ../counter/stm32-timer-cnt.txt
-
-Example:
- timers@40010000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "st,stm32-timers";
- reg = <0x40010000 0x400>;
- clocks = <&rcc 0 160>;
- clock-names = "int";
-
- pwm {
- compatible = "st,stm32-pwm";
- pinctrl-0 = <&pwm1_pins>;
- pinctrl-names = "default";
- };
-
- timer@0 {
- compatible = "st,stm32-timer-trigger";
- reg = <0>;
- };
-
- counter {
- compatible = "st,stm32-timer-counter";
- pinctrl-names = "default";
- pinctrl-0 = <&tim1_in_pins>;
- };
- };
-
-Example with all dmas:
- timer@40010000 {
- ...
- dmas = <&dmamux1 11 0x400 0x0>,
- <&dmamux1 12 0x400 0x0>,
- <&dmamux1 13 0x400 0x0>,
- <&dmamux1 14 0x400 0x0>,
- <&dmamux1 15 0x400 0x0>,
- <&dmamux1 16 0x400 0x0>,
- <&dmamux1 17 0x400 0x0>;
- dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig", "com";
- ...
- child nodes...
- };
--
2.15.0

2019-10-31 12:32:39

by Benjamin GAIGNARD

[permalink] [raw]
Subject: [PATCH 2/4] dt-bindings: iio: timer: Convert stm32 IIO trigger bindings to json-schema

Convert the STM32 IIO trigger binding to DT schema format using json-schema

Signed-off-by: Benjamin Gaignard <[email protected]>
---
.../bindings/iio/timer/st,stm32-timer-trigger.yaml | 44 ++++++++++++++++++++++
.../bindings/iio/timer/stm32-timer-trigger.txt | 25 ------------
2 files changed, 44 insertions(+), 25 deletions(-)
create mode 100644 Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
delete mode 100644 Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt

diff --git a/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
new file mode 100644
index 000000000000..1c8c8b55e8cd
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/timer/st,stm32-timer-trigger.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics STM32 Timers IIO timer bindings
+
+maintainers:
+ - Benjamin Gaignard <[email protected]>
+ - Fabrice Gasnier <[email protected]>
+
+properties:
+ $nodemane:
+ pattern: "^timer@[0-9]+$"
+ type: object
+
+ description:
+ must be a sub-node of an STM32 Timer device tree node
+
+ properties:
+ compatible:
+ oneOf:
+ - const: st,stm32-timer-trigger
+ - const: st,stm32h7-timer-trigger
+
+ reg: true
+
+ required:
+ - compatible
+ - reg
+
+examples:
+ - |
+ timers2: timer@40000000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ timer@0 {
+ compatible = "st,stm32-timer-trigger";
+ reg = <0>;
+ };
+ };
+
+...
diff --git a/Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt b/Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
deleted file mode 100644
index b8e8c769d434..000000000000
--- a/Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-STMicroelectronics STM32 Timers IIO timer bindings
-
-Must be a sub-node of an STM32 Timers device tree node.
-See ../mfd/stm32-timers.txt for details about the parent node.
-
-Required parameters:
-- compatible: Must be one of:
- "st,stm32-timer-trigger"
- "st,stm32h7-timer-trigger"
-- reg: Identify trigger hardware block.
-
-Example:
- timers@40010000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "st,stm32-timers";
- reg = <0x40010000 0x400>;
- clocks = <&rcc 0 160>;
- clock-names = "int";
-
- timer@0 {
- compatible = "st,stm32-timer-trigger";
- reg = <0>;
- };
- };
--
2.15.0

2019-10-31 12:32:47

by Benjamin GAIGNARD

[permalink] [raw]
Subject: [PATCH 3/4] dt-bindings: pwm: Convert stm32 pwm bindings to json-schema

Convert the STM32 pwm binding to DT schema format using json-schema

Signed-off-by: Benjamin Gaignard <[email protected]>
---
.../devicetree/bindings/pwm/pwm-stm32.txt | 38 ----------------
.../devicetree/bindings/pwm/st,stm32-pwm.yaml | 51 ++++++++++++++++++++++
2 files changed, 51 insertions(+), 38 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-stm32.txt
create mode 100644 Documentation/devicetree/bindings/pwm/st,stm32-pwm.yaml

diff --git a/Documentation/devicetree/bindings/pwm/pwm-stm32.txt b/Documentation/devicetree/bindings/pwm/pwm-stm32.txt
deleted file mode 100644
index a8690bfa5e1f..000000000000
--- a/Documentation/devicetree/bindings/pwm/pwm-stm32.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-STMicroelectronics STM32 Timers PWM bindings
-
-Must be a sub-node of an STM32 Timers device tree node.
-See ../mfd/stm32-timers.txt for details about the parent node.
-
-Required parameters:
-- compatible: Must be "st,stm32-pwm".
-- pinctrl-names: Set to "default".
-- pinctrl-0: List of phandles pointing to pin configuration nodes for PWM module.
- For Pinctrl properties see ../pinctrl/pinctrl-bindings.txt
-- #pwm-cells: Should be set to 3. This PWM chip uses the default 3 cells
- bindings defined in pwm.txt.
-
-Optional parameters:
-- st,breakinput: One or two <index level filter> to describe break input configurations.
- "index" indicates on which break input (0 or 1) the configuration
- should be applied.
- "level" gives the active level (0=low or 1=high) of the input signal
- for this configuration.
- "filter" gives the filtering value to be applied.
-
-Example:
- timers@40010000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "st,stm32-timers";
- reg = <0x40010000 0x400>;
- clocks = <&rcc 0 160>;
- clock-names = "int";
-
- pwm {
- compatible = "st,stm32-pwm";
- #pwm-cells = <3>;
- pinctrl-0 = <&pwm1_pins>;
- pinctrl-names = "default";
- st,breakinput = <0 1 5>;
- };
- };
diff --git a/Documentation/devicetree/bindings/pwm/st,stm32-pwm.yaml b/Documentation/devicetree/bindings/pwm/st,stm32-pwm.yaml
new file mode 100644
index 000000000000..d3f8180edd88
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/st,stm32-pwm.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/st,stm32-pwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics STM32 Timers PWM bindings
+
+maintainers:
+ - Benjamin Gaignard <[email protected]>
+ - Fabrice Gasnier <[email protected]>
+
+properties:
+ pwn:
+ type: object
+
+ description:
+ must be a sub-node of an STM32 Timer device tree node
+
+ properties:
+ compatible:
+ const: st,stm32-pwm
+
+ "#pwm-cells":
+ const: 3
+
+ st,breakinput:
+ description: |
+ One or two <index level filter> to describe break input configurations.
+ "index" indicates on which break input (0 or 1) the configuration should be applied.
+ "level" gives the active level (0=low or 1=high) of the input signal for this configuration.
+ "filter" gives the filtering value (up to 15) to be applied.
+
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - minItems: 3
+ - maxItems: 3
+
+ required:
+ - "#pwm-cells"
+ - compatible
+
+examples:
+ - |
+ pwm {
+ compatible = "st,stm32-pwm";
+ #pwm-cells = <3>;
+ st,breakinput = <0 1 5>;
+ };
+
+...
--
2.15.0

2019-10-31 12:35:09

by Benjamin GAIGNARD

[permalink] [raw]
Subject: [PATCH 1/4] dt-bindings: counter: Convert stm32 counter bindings to json-schema

Convert the STM32 counter binding to DT schema format using json-schema

Signed-off-by: Benjamin Gaignard <[email protected]>
---
.../bindings/counter/st,stm32-timer-cnt.yaml | 38 ++++++++++++++++++++++
.../bindings/counter/stm32-timer-cnt.txt | 31 ------------------
2 files changed, 38 insertions(+), 31 deletions(-)
create mode 100644 Documentation/devicetree/bindings/counter/st,stm32-timer-cnt.yaml
delete mode 100644 Documentation/devicetree/bindings/counter/stm32-timer-cnt.txt

diff --git a/Documentation/devicetree/bindings/counter/st,stm32-timer-cnt.yaml b/Documentation/devicetree/bindings/counter/st,stm32-timer-cnt.yaml
new file mode 100644
index 000000000000..56192d613601
--- /dev/null
+++ b/Documentation/devicetree/bindings/counter/st,stm32-timer-cnt.yaml
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/counter/st,stm32-timer-cnt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics STM32 Timers quadrature bindings
+
+description:
+ STM32 Timer provides quadrature encoder to detect angular position
+ and direction of rotary elements, from IN1 and IN2 input signals.
+
+maintainers:
+ - Benjamin Gaignard <[email protected]>
+ - Fabrice Gasnier <[email protected]>
+
+properties:
+ counter:
+ type: object
+
+ description:
+ must be a sub-node of an STM32 Timer device tree node
+
+ properties:
+ compatible:
+ const: st,stm32-timer-counter
+
+ required:
+ - compatible
+
+examples:
+ - |
+ counter {
+ compatible = "st,stm32-timer-counter";
+ };
+
+...
+
diff --git a/Documentation/devicetree/bindings/counter/stm32-timer-cnt.txt b/Documentation/devicetree/bindings/counter/stm32-timer-cnt.txt
deleted file mode 100644
index c52fcdd4bf6c..000000000000
--- a/Documentation/devicetree/bindings/counter/stm32-timer-cnt.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-STMicroelectronics STM32 Timer quadrature encoder
-
-STM32 Timer provides quadrature encoder to detect
-angular position and direction of rotary elements,
-from IN1 and IN2 input signals.
-
-Must be a sub-node of an STM32 Timer device tree node.
-See ../mfd/stm32-timers.txt for details about the parent node.
-
-Required properties:
-- compatible: Must be "st,stm32-timer-counter".
-- pinctrl-names: Set to "default".
-- pinctrl-0: List of phandles pointing to pin configuration nodes,
- to set CH1/CH2 pins in mode of operation for STM32
- Timer input on external pin.
-
-Example:
- timers@40010000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "st,stm32-timers";
- reg = <0x40010000 0x400>;
- clocks = <&rcc 0 160>;
- clock-names = "int";
-
- counter {
- compatible = "st,stm32-timer-counter";
- pinctrl-names = "default";
- pinctrl-0 = <&tim1_in_pins>;
- };
- };
--
2.15.0

2019-11-03 11:11:54

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH 2/4] dt-bindings: iio: timer: Convert stm32 IIO trigger bindings to json-schema

On Thu, 31 Oct 2019 13:30:38 +0100
Benjamin Gaignard <[email protected]> wrote:

> Convert the STM32 IIO trigger binding to DT schema format using json-schema
>
> Signed-off-by: Benjamin Gaignard <[email protected]>
I'm far from great on these as still haven't taken the time I should to learn
the yaml syntax properly. A few comments inline however based mostly on this
doesn't quite look like other ones I've seen recently.

Thanks,

Jonathan

> ---
> .../bindings/iio/timer/st,stm32-timer-trigger.yaml | 44 ++++++++++++++++++++++
> .../bindings/iio/timer/stm32-timer-trigger.txt | 25 ------------
> 2 files changed, 44 insertions(+), 25 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> delete mode 100644 Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
>
> diff --git a/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> new file mode 100644
> index 000000000000..1c8c8b55e8cd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> @@ -0,0 +1,44 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/timer/st,stm32-timer-trigger.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: STMicroelectronics STM32 Timers IIO timer bindings
> +
> +maintainers:
> + - Benjamin Gaignard <[email protected]>
> + - Fabrice Gasnier <[email protected]>
> +
> +properties:
> + $nodemane:

nodename?

> + pattern: "^timer@[0-9]+$"
> + type: object
> +
> + description:
> + must be a sub-node of an STM32 Timer device tree node
> +
> + properties:
> + compatible:
> + oneOf:

enum is I think preferred for these.

> + - const: st,stm32-timer-trigger
> + - const: st,stm32h7-timer-trigger
> +
> + reg: true

Normally some info for what the reg value is..

> +
> + required:
> + - compatible
> + - reg
> +
> +examples:
> + - |
> + timers2: timer@40000000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + timer@0 {
> + compatible = "st,stm32-timer-trigger";
> + reg = <0>;
> + };
> + };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt b/Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
> deleted file mode 100644
> index b8e8c769d434..000000000000
> --- a/Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -STMicroelectronics STM32 Timers IIO timer bindings
> -
> -Must be a sub-node of an STM32 Timers device tree node.
> -See ../mfd/stm32-timers.txt for details about the parent node.
> -
> -Required parameters:
> -- compatible: Must be one of:
> - "st,stm32-timer-trigger"
> - "st,stm32h7-timer-trigger"
> -- reg: Identify trigger hardware block.
> -
> -Example:
> - timers@40010000 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> - compatible = "st,stm32-timers";
> - reg = <0x40010000 0x400>;
> - clocks = <&rcc 0 160>;
> - clock-names = "int";
> -
> - timer@0 {
> - compatible = "st,stm32-timer-trigger";
> - reg = <0>;
> - };
> - };

2019-11-05 10:08:37

by Benjamin Gaignard

[permalink] [raw]
Subject: Re: [PATCH 2/4] dt-bindings: iio: timer: Convert stm32 IIO trigger bindings to json-schema

Le dim. 3 nov. 2019 à 12:08, Jonathan Cameron <[email protected]> a écrit :
>
> On Thu, 31 Oct 2019 13:30:38 +0100
> Benjamin Gaignard <[email protected]> wrote:
>
> > Convert the STM32 IIO trigger binding to DT schema format using json-schema
> >
> > Signed-off-by: Benjamin Gaignard <[email protected]>
> I'm far from great on these as still haven't taken the time I should to learn
> the yaml syntax properly. A few comments inline however based mostly on this
> doesn't quite look like other ones I've seen recently.
>
> Thanks,
>
> Jonathan
>
> > ---
> > .../bindings/iio/timer/st,stm32-timer-trigger.yaml | 44 ++++++++++++++++++++++
> > .../bindings/iio/timer/stm32-timer-trigger.txt | 25 ------------
> > 2 files changed, 44 insertions(+), 25 deletions(-)
> > create mode 100644 Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> > delete mode 100644 Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
> >
> > diff --git a/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> > new file mode 100644
> > index 000000000000..1c8c8b55e8cd
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> > @@ -0,0 +1,44 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/iio/timer/st,stm32-timer-trigger.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: STMicroelectronics STM32 Timers IIO timer bindings
> > +
> > +maintainers:
> > + - Benjamin Gaignard <[email protected]>
> > + - Fabrice Gasnier <[email protected]>
> > +
> > +properties:
> > + $nodemane:
>
> nodename?

That will be in v2

>
> > + pattern: "^timer@[0-9]+$"
> > + type: object
> > +
> > + description:
> > + must be a sub-node of an STM32 Timer device tree node
> > +
> > + properties:
> > + compatible:
> > + oneOf:
>
> enum is I think preferred for these.

as you like it will be in v2

>
> > + - const: st,stm32-timer-trigger
> > + - const: st,stm32h7-timer-trigger
> > +
> > + reg: true
>
> Normally some info for what the reg value is..
I can't put "description" on this field because the syntax doesn't allow it.
I will add a comment in v2 to explain what reg is.

Thanks for your review.
Benjamin
>
> > +
> > + required:
> > + - compatible
> > + - reg
> > +
> > +examples:
> > + - |
> > + timers2: timer@40000000 {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + timer@0 {
> > + compatible = "st,stm32-timer-trigger";
> > + reg = <0>;
> > + };
> > + };
> > +
> > +...
> > diff --git a/Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt b/Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
> > deleted file mode 100644
> > index b8e8c769d434..000000000000
> > --- a/Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
> > +++ /dev/null
> > @@ -1,25 +0,0 @@
> > -STMicroelectronics STM32 Timers IIO timer bindings
> > -
> > -Must be a sub-node of an STM32 Timers device tree node.
> > -See ../mfd/stm32-timers.txt for details about the parent node.
> > -
> > -Required parameters:
> > -- compatible: Must be one of:
> > - "st,stm32-timer-trigger"
> > - "st,stm32h7-timer-trigger"
> > -- reg: Identify trigger hardware block.
> > -
> > -Example:
> > - timers@40010000 {
> > - #address-cells = <1>;
> > - #size-cells = <0>;
> > - compatible = "st,stm32-timers";
> > - reg = <0x40010000 0x400>;
> > - clocks = <&rcc 0 160>;
> > - clock-names = "int";
> > -
> > - timer@0 {
> > - compatible = "st,stm32-timer-trigger";
> > - reg = <0>;
> > - };
> > - };
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

2019-11-06 04:10:09

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 2/4] dt-bindings: iio: timer: Convert stm32 IIO trigger bindings to json-schema

On Tue, Nov 05, 2019 at 11:07:16AM +0100, Benjamin Gaignard wrote:
> Le dim. 3 nov. 2019 ? 12:08, Jonathan Cameron <[email protected]> a ?crit :
> >
> > On Thu, 31 Oct 2019 13:30:38 +0100
> > Benjamin Gaignard <[email protected]> wrote:
> >
> > > Convert the STM32 IIO trigger binding to DT schema format using json-schema
> > >
> > > Signed-off-by: Benjamin Gaignard <[email protected]>
> > I'm far from great on these as still haven't taken the time I should to learn
> > the yaml syntax properly. A few comments inline however based mostly on this
> > doesn't quite look like other ones I've seen recently.
> >
> > Thanks,
> >
> > Jonathan
> >
> > > ---
> > > .../bindings/iio/timer/st,stm32-timer-trigger.yaml | 44 ++++++++++++++++++++++
> > > .../bindings/iio/timer/stm32-timer-trigger.txt | 25 ------------
> > > 2 files changed, 44 insertions(+), 25 deletions(-)
> > > create mode 100644 Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> > > delete mode 100644 Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
> > >
> > > diff --git a/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> > > new file mode 100644
> > > index 000000000000..1c8c8b55e8cd
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> > > @@ -0,0 +1,44 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/iio/timer/st,stm32-timer-trigger.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: STMicroelectronics STM32 Timers IIO timer bindings
> > > +
> > > +maintainers:
> > > + - Benjamin Gaignard <[email protected]>
> > > + - Fabrice Gasnier <[email protected]>
> > > +
> > > +properties:
> > > + $nodemane:
> >
> > nodename?
>
> That will be in v2

No, $nodename is correct. The '$' signifies something we generate and
add in. IOW, not a real property. I guess we could have used 'name' here
and stuck with traditional OpenFirmware.

>
> >
> > > + pattern: "^timer@[0-9]+$"
> > > + type: object
> > > +
> > > + description:
> > > + must be a sub-node of an STM32 Timer device tree node
> > > +
> > > + properties:
> > > + compatible:
> > > + oneOf:
> >
> > enum is I think preferred for these.
>
> as you like it will be in v2
>
> >
> > > + - const: st,stm32-timer-trigger
> > > + - const: st,stm32h7-timer-trigger
> > > +
> > > + reg: true
> >
> > Normally some info for what the reg value is..
> I can't put "description" on this field because the syntax doesn't allow it.
> I will add a comment in v2 to explain what reg is.

items:
- maximum: <max timer number>

Rob

2019-11-06 04:11:31

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 1/4] dt-bindings: counter: Convert stm32 counter bindings to json-schema

On Thu, Oct 31, 2019 at 01:30:37PM +0100, Benjamin Gaignard wrote:
> Convert the STM32 counter binding to DT schema format using json-schema

Probably this should all be 1 file instead.

> Signed-off-by: Benjamin Gaignard <[email protected]>
> ---
> .../bindings/counter/st,stm32-timer-cnt.yaml | 38 ++++++++++++++++++++++
> .../bindings/counter/stm32-timer-cnt.txt | 31 ------------------
> 2 files changed, 38 insertions(+), 31 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/counter/st,stm32-timer-cnt.yaml
> delete mode 100644 Documentation/devicetree/bindings/counter/stm32-timer-cnt.txt
>
> diff --git a/Documentation/devicetree/bindings/counter/st,stm32-timer-cnt.yaml b/Documentation/devicetree/bindings/counter/st,stm32-timer-cnt.yaml
> new file mode 100644
> index 000000000000..56192d613601
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/counter/st,stm32-timer-cnt.yaml
> @@ -0,0 +1,38 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/counter/st,stm32-timer-cnt.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: STMicroelectronics STM32 Timers quadrature bindings
> +
> +description:
> + STM32 Timer provides quadrature encoder to detect angular position
> + and direction of rotary elements, from IN1 and IN2 input signals.
> +
> +maintainers:
> + - Benjamin Gaignard <[email protected]>
> + - Fabrice Gasnier <[email protected]>
> +
> +properties:
> + counter:
> + type: object
> +
> + description:
> + must be a sub-node of an STM32 Timer device tree node
> +
> + properties:
> + compatible:
> + const: st,stm32-timer-counter
> +
> + required:
> + - compatible
> +
> +examples:
> + - |
> + counter {
> + compatible = "st,stm32-timer-counter";
> + };
> +
> +...
> +
> diff --git a/Documentation/devicetree/bindings/counter/stm32-timer-cnt.txt b/Documentation/devicetree/bindings/counter/stm32-timer-cnt.txt
> deleted file mode 100644
> index c52fcdd4bf6c..000000000000
> --- a/Documentation/devicetree/bindings/counter/stm32-timer-cnt.txt
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -STMicroelectronics STM32 Timer quadrature encoder
> -
> -STM32 Timer provides quadrature encoder to detect
> -angular position and direction of rotary elements,
> -from IN1 and IN2 input signals.
> -
> -Must be a sub-node of an STM32 Timer device tree node.
> -See ../mfd/stm32-timers.txt for details about the parent node.
> -
> -Required properties:
> -- compatible: Must be "st,stm32-timer-counter".
> -- pinctrl-names: Set to "default".
> -- pinctrl-0: List of phandles pointing to pin configuration nodes,
> - to set CH1/CH2 pins in mode of operation for STM32
> - Timer input on external pin.
> -
> -Example:
> - timers@40010000 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> - compatible = "st,stm32-timers";
> - reg = <0x40010000 0x400>;
> - clocks = <&rcc 0 160>;
> - clock-names = "int";
> -
> - counter {
> - compatible = "st,stm32-timer-counter";
> - pinctrl-names = "default";
> - pinctrl-0 = <&tim1_in_pins>;
> - };
> - };
> --
> 2.15.0
>

2019-11-06 04:16:26

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 4/4] dt-bindings: mfd: Convert stm32 timers bindings to json-schema

On Thu, Oct 31, 2019 at 01:30:40PM +0100, Benjamin Gaignard wrote:
> Convert the STM32 timers binding to DT schema format using json-schema
>
> Signed-off-by: Benjamin Gaignard <[email protected]>
> ---
> .../devicetree/bindings/mfd/st,stm32-timers.yaml | 91 ++++++++++++++++++++++
> .../devicetree/bindings/mfd/stm32-timers.txt | 73 -----------------
> 2 files changed, 91 insertions(+), 73 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
> delete mode 100644 Documentation/devicetree/bindings/mfd/stm32-timers.txt
>
> diff --git a/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
> new file mode 100644
> index 000000000000..3f0a65fb2bc0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
> @@ -0,0 +1,91 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/st,stm32-timers.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: STMicroelectronics STM32 Timers bindings
> +
> +description: |
> + This hardware block provides 3 types of timer along with PWM functionality: \

Don't need the \

> + - advanced-control timers consist of a 16-bit auto-reload counter driven by a programmable \
> + prescaler, break input feature, PWM outputs and complementary PWM ouputs channels. \
> + - general-purpose timers consist of a 16-bit or 32-bit auto-reload counter driven by a \
> + programmable prescaler and PWM outputs.\
> + - basic timers consist of a 16-bit auto-reload counter driven by a programmable prescaler.
> +
> +maintainers:
> + - Benjamin Gaignard <[email protected]>
> + - Fabrice Gasnier <[email protected]>
> +
> +allOf:
> + - $ref: "../pwm/st,stm32-pwm.yaml#"
> + - $ref: "../iio/timer/st,stm32-timer-trigger.yaml#"
> + - $ref: "../counter/st,stm32-timer-cnt.yaml#"

This works, but I prefer the child node names be listed under properties
here with a ref:

counter:
$ref: "../counter/st,stm32-timer-cnt.yaml#"

> +
> +properties:
> + compatible:
> + const: st,stm32-timers
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> +
> + clock-names:
> + items:
> + - const: int
> +
> + reset:
> + maxItems: 1
> +
> + dmas: true

How many?

> +
> + dma-names: true

What are the names?

> +
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 0
> +
> +required:
> + - "#address-cells"
> + - "#size-cells"
> + - compatible
> + - reg
> + - clocks
> + - clock-names
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/stm32mp1-clks.h>
> + timers2: timer@40000000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "st,stm32-timers";
> + reg = <0x40000000 0x400>;
> + clocks = <&rcc TIM2_K>;
> + clock-names = "int";
> + dmas = <&dmamux1 18 0x400 0x1>,
> + <&dmamux1 19 0x400 0x1>,
> + <&dmamux1 20 0x400 0x1>,
> + <&dmamux1 21 0x400 0x1>,
> + <&dmamux1 22 0x400 0x1>;
> + dma-names = "ch1", "ch2", "ch3", "ch4", "up";
> + pwm {
> + compatible = "st,stm32-pwm";
> + #pwm-cells = <3>;
> + st,breakinput = <0 1 5>;
> + };
> + timer@0 {
> + compatible = "st,stm32-timer-trigger";
> + reg = <0>;
> + };
> + counter {
> + compatible = "st,stm32-timer-counter";
> + };
> + };
> +
> +...

2019-11-06 04:17:25

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 1/4] dt-bindings: counter: Convert stm32 counter bindings to json-schema

On Tue, Nov 05, 2019 at 10:10:23PM -0600, Rob Herring wrote:
> On Thu, Oct 31, 2019 at 01:30:37PM +0100, Benjamin Gaignard wrote:
> > Convert the STM32 counter binding to DT schema format using json-schema
>
> Probably this should all be 1 file instead.

Also, checkpatch reports trailing whitespace in several of your patches.

Rob

2019-11-06 19:53:32

by Benjamin GAIGNARD

[permalink] [raw]
Subject: Re: [PATCH 2/4] dt-bindings: iio: timer: Convert stm32 IIO trigger bindings to json-schema


On 11/6/19 5:06 AM, Rob Herring wrote:
> On Tue, Nov 05, 2019 at 11:07:16AM +0100, Benjamin Gaignard wrote:
>> Le dim. 3 nov. 2019 à 12:08, Jonathan Cameron <[email protected]> a écrit :
>>> On Thu, 31 Oct 2019 13:30:38 +0100
>>> Benjamin Gaignard <[email protected]> wrote:
>>>
>>>> Convert the STM32 IIO trigger binding to DT schema format using json-schema
>>>>
>>>> Signed-off-by: Benjamin Gaignard <[email protected]>
>>> I'm far from great on these as still haven't taken the time I should to learn
>>> the yaml syntax properly. A few comments inline however based mostly on this
>>> doesn't quite look like other ones I've seen recently.
>>>
>>> Thanks,
>>>
>>> Jonathan
>>>
>>>> ---
>>>> .../bindings/iio/timer/st,stm32-timer-trigger.yaml | 44 ++++++++++++++++++++++
>>>> .../bindings/iio/timer/stm32-timer-trigger.txt | 25 ------------
>>>> 2 files changed, 44 insertions(+), 25 deletions(-)
>>>> create mode 100644 Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
>>>> delete mode 100644 Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
>>>> new file mode 100644
>>>> index 000000000000..1c8c8b55e8cd
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
>>>> @@ -0,0 +1,44 @@
>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>>> +%YAML 1.2
>>>> +---
>>>> +$id: http://devicetree.org/schemas/iio/timer/st,stm32-timer-trigger.yaml#
>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>> +
>>>> +title: STMicroelectronics STM32 Timers IIO timer bindings
>>>> +
>>>> +maintainers:
>>>> + - Benjamin Gaignard <[email protected]>
>>>> + - Fabrice Gasnier <[email protected]>
>>>> +
>>>> +properties:
>>>> + $nodemane:
>>> nodename?
>> That will be in v2
> No, $nodename is correct. The '$' signifies something we generate and
> add in. IOW, not a real property. I guess we could have used 'name' here
> and stuck with traditional OpenFirmware.
let's go for $name
>>>> + pattern: "^timer@[0-9]+$"
>>>> + type: object
>>>> +
>>>> + description:
>>>> + must be a sub-node of an STM32 Timer device tree node
>>>> +
>>>> + properties:
>>>> + compatible:
>>>> + oneOf:
>>> enum is I think preferred for these.
>> as you like it will be in v2
>>
>>>> + - const: st,stm32-timer-trigger
>>>> + - const: st,stm32h7-timer-trigger
>>>> +
>>>> + reg: true
>>> Normally some info for what the reg value is..
>> I can't put "description" on this field because the syntax doesn't allow it.
>> I will add a comment in v2 to explain what reg is.
> items:
> - maximum: <max timer number>

reg is an index from 0 up to X, I will try with your syntax.

Thanks,

Benjamin

>
> Rob

2019-11-06 20:00:10

by Benjamin GAIGNARD

[permalink] [raw]
Subject: Re: [PATCH 4/4] dt-bindings: mfd: Convert stm32 timers bindings to json-schema


On 11/6/19 5:15 AM, Rob Herring wrote:
> On Thu, Oct 31, 2019 at 01:30:40PM +0100, Benjamin Gaignard wrote:
>> Convert the STM32 timers binding to DT schema format using json-schema
>>
>> Signed-off-by: Benjamin Gaignard <[email protected]>
>> ---
>> .../devicetree/bindings/mfd/st,stm32-timers.yaml | 91 ++++++++++++++++++++++
>> .../devicetree/bindings/mfd/stm32-timers.txt | 73 -----------------
>> 2 files changed, 91 insertions(+), 73 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
>> delete mode 100644 Documentation/devicetree/bindings/mfd/stm32-timers.txt
>>
>> diff --git a/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
>> new file mode 100644
>> index 000000000000..3f0a65fb2bc0
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
>> @@ -0,0 +1,91 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/mfd/st,stm32-timers.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: STMicroelectronics STM32 Timers bindings
>> +
>> +description: |
>> + This hardware block provides 3 types of timer along with PWM functionality: \
> Don't need the \
ok
>
>> + - advanced-control timers consist of a 16-bit auto-reload counter driven by a programmable \
>> + prescaler, break input feature, PWM outputs and complementary PWM ouputs channels. \
>> + - general-purpose timers consist of a 16-bit or 32-bit auto-reload counter driven by a \
>> + programmable prescaler and PWM outputs.\
>> + - basic timers consist of a 16-bit auto-reload counter driven by a programmable prescaler.
>> +
>> +maintainers:
>> + - Benjamin Gaignard <[email protected]>
>> + - Fabrice Gasnier <[email protected]>
>> +
>> +allOf:
>> + - $ref: "../pwm/st,stm32-pwm.yaml#"
>> + - $ref: "../iio/timer/st,stm32-timer-trigger.yaml#"
>> + - $ref: "../counter/st,stm32-timer-cnt.yaml#"
> This works, but I prefer the child node names be listed under properties
> here with a ref:
>
> counter:
> $ref: "../counter/st,stm32-timer-cnt.yaml#"
If I wrote everything in one file I guess what won't be needed anymore
>
>> +
>> +properties:
>> + compatible:
>> + const: st,stm32-timers
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + clocks:
>> + maxItems: 1
>> +
>> + clock-names:
>> + items:
>> + - const: int
>> +
>> + reset:
>> + maxItems: 1
>> +
>> + dmas: true
> How many?

from 0 up to 8, but I don't know the syntax for that. minItems = 0 isn't
accepted.

Any hints for me ?

>
>> +
>> + dma-names: true
> What are the names?

it could be ch1 ... ch8, "trig" or "up" in any order.

Again I haven't be able to find a syntax that allow to list the names
and use them in any orders.

Benjamin

>
>> +
>> + "#address-cells":
>> + const: 1
>> +
>> + "#size-cells":
>> + const: 0
>> +
>> +required:
>> + - "#address-cells"
>> + - "#size-cells"
>> + - compatible
>> + - reg
>> + - clocks
>> + - clock-names
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/clock/stm32mp1-clks.h>
>> + timers2: timer@40000000 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + compatible = "st,stm32-timers";
>> + reg = <0x40000000 0x400>;
>> + clocks = <&rcc TIM2_K>;
>> + clock-names = "int";
>> + dmas = <&dmamux1 18 0x400 0x1>,
>> + <&dmamux1 19 0x400 0x1>,
>> + <&dmamux1 20 0x400 0x1>,
>> + <&dmamux1 21 0x400 0x1>,
>> + <&dmamux1 22 0x400 0x1>;
>> + dma-names = "ch1", "ch2", "ch3", "ch4", "up";
>> + pwm {
>> + compatible = "st,stm32-pwm";
>> + #pwm-cells = <3>;
>> + st,breakinput = <0 1 5>;
>> + };
>> + timer@0 {
>> + compatible = "st,stm32-timer-trigger";
>> + reg = <0>;
>> + };
>> + counter {
>> + compatible = "st,stm32-timer-counter";
>> + };
>> + };
>> +
>> +...

2019-11-06 20:04:40

by Benjamin GAIGNARD

[permalink] [raw]
Subject: Re: [PATCH 1/4] dt-bindings: counter: Convert stm32 counter bindings to json-schema


On 11/6/19 5:16 AM, Rob Herring wrote:
> On Tue, Nov 05, 2019 at 10:10:23PM -0600, Rob Herring wrote:
>> On Thu, Oct 31, 2019 at 01:30:37PM +0100, Benjamin Gaignard wrote:
>>> Convert the STM32 counter binding to DT schema format using json-schema
>> Probably this should all be 1 file instead.
> Also, checkpatch reports trailing whitespace in several of your patches.

I will write all in one file and fix trailing whitespace in v2

Thanks for your review

Benjamin

> .
>
> Rob

2019-11-06 23:36:45

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 4/4] dt-bindings: mfd: Convert stm32 timers bindings to json-schema

On Wed, Nov 6, 2019 at 1:57 PM Benjamin GAIGNARD
<[email protected]> wrote:
>
>
> On 11/6/19 5:15 AM, Rob Herring wrote:
> > On Thu, Oct 31, 2019 at 01:30:40PM +0100, Benjamin Gaignard wrote:
> >> Convert the STM32 timers binding to DT schema format using json-schema
> >>
> >> Signed-off-by: Benjamin Gaignard <[email protected]>
> >> ---
> >> .../devicetree/bindings/mfd/st,stm32-timers.yaml | 91 ++++++++++++++++++++++
> >> .../devicetree/bindings/mfd/stm32-timers.txt | 73 -----------------
> >> 2 files changed, 91 insertions(+), 73 deletions(-)
> >> create mode 100644 Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
> >> delete mode 100644 Documentation/devicetree/bindings/mfd/stm32-timers.txt
> >>
> >> diff --git a/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
> >> new file mode 100644
> >> index 000000000000..3f0a65fb2bc0
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
> >> @@ -0,0 +1,91 @@
> >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> >> +%YAML 1.2
> >> +---
> >> +$id: http://devicetree.org/schemas/mfd/st,stm32-timers.yaml#
> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> +
> >> +title: STMicroelectronics STM32 Timers bindings
> >> +
> >> +description: |
> >> + This hardware block provides 3 types of timer along with PWM functionality: \
> > Don't need the \
> ok
> >
> >> + - advanced-control timers consist of a 16-bit auto-reload counter driven by a programmable \
> >> + prescaler, break input feature, PWM outputs and complementary PWM ouputs channels. \
> >> + - general-purpose timers consist of a 16-bit or 32-bit auto-reload counter driven by a \
> >> + programmable prescaler and PWM outputs.\
> >> + - basic timers consist of a 16-bit auto-reload counter driven by a programmable prescaler.
> >> +
> >> +maintainers:
> >> + - Benjamin Gaignard <[email protected]>
> >> + - Fabrice Gasnier <[email protected]>
> >> +
> >> +allOf:
> >> + - $ref: "../pwm/st,stm32-pwm.yaml#"
> >> + - $ref: "../iio/timer/st,stm32-timer-trigger.yaml#"
> >> + - $ref: "../counter/st,stm32-timer-cnt.yaml#"
> > This works, but I prefer the child node names be listed under properties
> > here with a ref:
> >
> > counter:
> > $ref: "../counter/st,stm32-timer-cnt.yaml#"
> If I wrote everything in one file I guess what won't be needed anymore
> >
> >> +
> >> +properties:
> >> + compatible:
> >> + const: st,stm32-timers
> >> +
> >> + reg:
> >> + maxItems: 1
> >> +
> >> + clocks:
> >> + maxItems: 1
> >> +
> >> + clock-names:
> >> + items:
> >> + - const: int
> >> +
> >> + reset:
> >> + maxItems: 1
> >> +
> >> + dmas: true
> > How many?
>
> from 0 up to 8, but I don't know the syntax for that. minItems = 0 isn't
> accepted.
>
> Any hints for me ?

0 is not accepted because the property is never 0 items. 0 is not
present. So just:

minItems: 1
maxItems: 8


> >> +
> >> + dma-names: true
> > What are the names?
>
> it could be ch1 ... ch8, "trig" or "up" in any order.

Why does it need to be in any order? Normally we don't want to have that.

>
> Again I haven't be able to find a syntax that allow to list the names
> and use them in any orders.

dma-names:
items:
enum: [ ch1, ch2, ..., trig, up ]

Rob

2019-11-06 23:38:51

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 2/4] dt-bindings: iio: timer: Convert stm32 IIO trigger bindings to json-schema

On Wed, Nov 6, 2019 at 1:52 PM Benjamin GAIGNARD
<[email protected]> wrote:
>
>
> On 11/6/19 5:06 AM, Rob Herring wrote:
> > On Tue, Nov 05, 2019 at 11:07:16AM +0100, Benjamin Gaignard wrote:
> >> Le dim. 3 nov. 2019 à 12:08, Jonathan Cameron <[email protected]> a écrit :
> >>> On Thu, 31 Oct 2019 13:30:38 +0100
> >>> Benjamin Gaignard <[email protected]> wrote:
> >>>
> >>>> Convert the STM32 IIO trigger binding to DT schema format using json-schema
> >>>>
> >>>> Signed-off-by: Benjamin Gaignard <[email protected]>
> >>> I'm far from great on these as still haven't taken the time I should to learn
> >>> the yaml syntax properly. A few comments inline however based mostly on this
> >>> doesn't quite look like other ones I've seen recently.
> >>>
> >>> Thanks,
> >>>
> >>> Jonathan
> >>>
> >>>> ---
> >>>> .../bindings/iio/timer/st,stm32-timer-trigger.yaml | 44 ++++++++++++++++++++++
> >>>> .../bindings/iio/timer/stm32-timer-trigger.txt | 25 ------------
> >>>> 2 files changed, 44 insertions(+), 25 deletions(-)
> >>>> create mode 100644 Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> >>>> delete mode 100644 Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
> >>>>
> >>>> diff --git a/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> >>>> new file mode 100644
> >>>> index 000000000000..1c8c8b55e8cd
> >>>> --- /dev/null
> >>>> +++ b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> >>>> @@ -0,0 +1,44 @@
> >>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> >>>> +%YAML 1.2
> >>>> +---
> >>>> +$id: http://devicetree.org/schemas/iio/timer/st,stm32-timer-trigger.yaml#
> >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>>> +
> >>>> +title: STMicroelectronics STM32 Timers IIO timer bindings
> >>>> +
> >>>> +maintainers:
> >>>> + - Benjamin Gaignard <[email protected]>
> >>>> + - Fabrice Gasnier <[email protected]>
> >>>> +
> >>>> +properties:
> >>>> + $nodemane:
> >>> nodename?
> >> That will be in v2
> > No, $nodename is correct. The '$' signifies something we generate and
> > add in. IOW, not a real property. I guess we could have used 'name' here
> > and stuck with traditional OpenFirmware.
> let's go for $name

No, $nodename is correct. You don't have a choice. That is what the
tooling generates.

Rob

2019-11-09 12:44:02

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH 2/4] dt-bindings: iio: timer: Convert stm32 IIO trigger bindings to json-schema

On Wed, 6 Nov 2019 17:35:20 -0600
Rob Herring <[email protected]> wrote:

> On Wed, Nov 6, 2019 at 1:52 PM Benjamin GAIGNARD
> <[email protected]> wrote:
> >
> >
> > On 11/6/19 5:06 AM, Rob Herring wrote:
> > > On Tue, Nov 05, 2019 at 11:07:16AM +0100, Benjamin Gaignard wrote:
> > >> Le dim. 3 nov. 2019 à 12:08, Jonathan Cameron <[email protected]> a écrit :
> > >>> On Thu, 31 Oct 2019 13:30:38 +0100
> > >>> Benjamin Gaignard <[email protected]> wrote:
> > >>>
> > >>>> Convert the STM32 IIO trigger binding to DT schema format using json-schema
> > >>>>
> > >>>> Signed-off-by: Benjamin Gaignard <[email protected]>
> > >>> I'm far from great on these as still haven't taken the time I should to learn
> > >>> the yaml syntax properly. A few comments inline however based mostly on this
> > >>> doesn't quite look like other ones I've seen recently.
> > >>>
> > >>> Thanks,
> > >>>
> > >>> Jonathan
> > >>>
> > >>>> ---
> > >>>> .../bindings/iio/timer/st,stm32-timer-trigger.yaml | 44 ++++++++++++++++++++++
> > >>>> .../bindings/iio/timer/stm32-timer-trigger.txt | 25 ------------
> > >>>> 2 files changed, 44 insertions(+), 25 deletions(-)
> > >>>> create mode 100644 Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> > >>>> delete mode 100644 Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt
> > >>>>
> > >>>> diff --git a/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> > >>>> new file mode 100644
> > >>>> index 000000000000..1c8c8b55e8cd
> > >>>> --- /dev/null
> > >>>> +++ b/Documentation/devicetree/bindings/iio/timer/st,stm32-timer-trigger.yaml
> > >>>> @@ -0,0 +1,44 @@
> > >>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > >>>> +%YAML 1.2
> > >>>> +---
> > >>>> +$id: http://devicetree.org/schemas/iio/timer/st,stm32-timer-trigger.yaml#
> > >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > >>>> +
> > >>>> +title: STMicroelectronics STM32 Timers IIO timer bindings
> > >>>> +
> > >>>> +maintainers:
> > >>>> + - Benjamin Gaignard <[email protected]>
> > >>>> + - Fabrice Gasnier <[email protected]>
> > >>>> +
> > >>>> +properties:
> > >>>> + $nodemane:
> > >>> nodename?
> > >> That will be in v2
> > > No, $nodename is correct. The '$' signifies something we generate and
> > > add in. IOW, not a real property. I guess we could have used 'name' here
> > > and stuck with traditional OpenFirmware.
> > let's go for $name
>
> No, $nodename is correct. You don't have a choice. That is what the
> tooling generates.

Sorry all, I caused confusion here. Was just trying to point out the typo!
$node_m_ane

:)

>
> Rob