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

Benjamin GAIGNARD
2019-11-06T19:57:35Z

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";
>> + };
>> + };
>> +
>> +...