Message ID | 20191031123040.26316-5-benjamin.gaignard@st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Convert STM32 Timer mdf bindings to yaml | expand |
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 <benjamin.gaignard@st.com> > --- > .../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 <benjamin.gaignard@st.com> > + - Fabrice Gasnier <fabrice.gasnier@st.com> > + > +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"; > + }; > + }; > + > +...
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 <benjamin.gaignard@st.com> >> --- >> .../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 <benjamin.gaignard@st.com> >> + - Fabrice Gasnier <fabrice.gasnier@st.com> >> + >> +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"; >> + }; >> + }; >> + >> +...
On Wed, Nov 6, 2019 at 1:57 PM Benjamin GAIGNARD <benjamin.gaignard@st.com> 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 <benjamin.gaignard@st.com> > >> --- > >> .../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 <benjamin.gaignard@st.com> > >> + - Fabrice Gasnier <fabrice.gasnier@st.com> > >> + > >> +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
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 <benjamin.gaignard@st.com> + - Fabrice Gasnier <fabrice.gasnier@st.com> + +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... - };
Convert the STM32 timers binding to DT schema format using json-schema Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> --- .../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