2023-05-30 09:18:47

by Claudiu Beznea

[permalink] [raw]
Subject: [PATCH v3 0/3] dt-bindings: timer: Microchip AT91 convert to YAML

Hi,

Series converts Microchip AT91 timers DT bindings to YAML. Along with it the
atmel,at91rm9200-wdt has been converted and introduced in this series
as it is referenced by atmel,at91rm9200-st.

Thank you,
Claudiu Beznea

Changes in v3:
- removed patch 1/4 from v2
- in patch 1/3 keep interrupt description only for PIT case (not for PIT64b)
and updated interrupt description to emphasize blocks part of the system
controller; note that system controller components may be different b/w
different Microchip AT91 SoCs;
- in patch 3/3 updated interrupt description to emphasize blocks part of the
system controller; also, corrected Alexandre's email address
- collected tags.

Changes in v2:
- fixed compilation errors (sorry for that in v1)
- moved DTS patch as the 1st patch in series
- squash PIT and PIT64B into the same documentation file
- use Microchip in titles, descriptions and commit message
- in patch 4/4 remove oneOf from compatible section

Claudiu Beznea (3):
dt-bindings: timer: atmel,at91sam9260-pit: convert to yaml
dt-bindings: watchdog: atmel,at91rm9200-wdt: convert to yaml
dt-bindings: timer: atmel,at91rm9200-st: convert to yaml

.../devicetree/bindings/arm/atmel-sysregs.txt | 21 ----
.../bindings/timer/atmel,at91rm9200-st.yaml | 66 +++++++++++++
.../bindings/timer/atmel,at91sam9260-pit.yaml | 99 +++++++++++++++++++
.../watchdog/atmel,at91rm9200-wdt.yaml | 29 ++++++
.../watchdog/atmel-at91rm9200-wdt.txt | 9 --
5 files changed, 194 insertions(+), 30 deletions(-)
create mode 100644 Documentation/devicetree/bindings/timer/atmel,at91rm9200-st.yaml
create mode 100644 Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/atmel,at91rm9200-wdt.yaml
delete mode 100644 Documentation/devicetree/bindings/watchdog/atmel-at91rm9200-wdt.txt

--
2.34.1



2023-05-30 09:25:04

by Claudiu Beznea

[permalink] [raw]
Subject: [PATCH v3 1/3] dt-bindings: timer: atmel,at91sam9260-pit: convert to yaml

Convert Microchip AT91 PIT bindings to YAML. Along with it clocks and
clock-names bindings were added as the drivers needs it to ensure proper
hardware functionality.

Signed-off-by: Claudiu Beznea <[email protected]>
---
.../devicetree/bindings/arm/atmel-sysregs.txt | 12 ---
.../bindings/timer/atmel,at91sam9260-pit.yaml | 99 +++++++++++++++++++
2 files changed, 99 insertions(+), 12 deletions(-)
create mode 100644 Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml

diff --git a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
index 67a66bf74895..54d3f586403e 100644
--- a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
+++ b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
@@ -4,18 +4,6 @@ Chipid required properties:
- compatible: Should be "atmel,sama5d2-chipid" or "microchip,sama7g5-chipid"
- reg : Should contain registers location and length

-PIT Timer required properties:
-- compatible: Should be "atmel,at91sam9260-pit"
-- reg: Should contain registers location and length
-- interrupts: Should contain interrupt for the PIT which is the IRQ line
- shared across all System Controller members.
-
-PIT64B Timer required properties:
-- compatible: Should be "microchip,sam9x60-pit64b"
-- reg: Should contain registers location and length
-- interrupts: Should contain interrupt for PIT64B timer
-- clocks: Should contain the available clock sources for PIT64B timer.
-
System Timer (ST) required properties:
- compatible: Should be "atmel,at91rm9200-st", "syscon", "simple-mfd"
- reg: Should contain registers location and length
diff --git a/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml b/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
new file mode 100644
index 000000000000..d0f3f80db4cb
--- /dev/null
+++ b/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
@@ -0,0 +1,99 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/timer/atmel,at91sam9260-pit.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip AT91 Periodic Interval Timer (PIT)
+
+maintainers:
+ - Claudiu Beznea <[email protected]>
+
+description:
+ Microchip AT91 periodic interval timer provides the operating system scheduler
+ interrupt. It is designed to offer maximum accuracy and efficient management,
+ even for systems with long response time.
+
+properties:
+ compatible:
+ oneOf:
+ - items:
+ - const: microchip,sama7g5-pit64b
+ - const: microchip,sam9x60-pit64b
+ - items:
+ enum:
+ - atmel,at91sam9260-pit
+ - microchip,sam9x60-pit64b
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ minItems: 1
+ maxItems: 2
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: atmel,at91sam9260-pit
+ then:
+ properties:
+ interrupts:
+ description:
+ Shared interrupt between all system controller members (power management
+ controller, watchdog, PIT, reset controller, real-time timer, real-time
+ clock, memory controller, debug unit, system timer).
+ clocks:
+ maxItems: 1
+
+ else:
+ properties:
+ clocks:
+ minItems: 2
+ clock-names:
+ items:
+ - const: pclk
+ - const: gclk
+ required:
+ - clock-names
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ /* AT91RM9200 */
+ #include <dt-bindings/clock/at91.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ pit: timer@fffffe40 {
+ compatible = "atmel,at91sam9260-pit";
+ reg = <0xfffffe40 0x10>;
+ interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
+ clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
+ };
+
+ - |
+ /* SAM9X60 */
+ #include <dt-bindings/clock/at91.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ pit64b: timer@f0028000 {
+ compatible = "microchip,sam9x60-pit64b";
+ reg = <0xf0028000 0x100>;
+ interrupts = <37 IRQ_TYPE_LEVEL_HIGH 7>;
+ clocks = <&pmc PMC_TYPE_PERIPHERAL 37>, <&pmc PMC_TYPE_GCK 37>;
+ clock-names = "pclk", "gclk";
+ };
+
+...
--
2.34.1


2023-05-30 09:25:59

by Claudiu Beznea

[permalink] [raw]
Subject: [PATCH v3 2/3] dt-bindings: watchdog: atmel,at91rm9200-wdt: convert to yaml

Convert Microchip AT91RM9200 system timer watchdog bindings to YAML.

Signed-off-by: Claudiu Beznea <[email protected]>
Reviewed-by: Conor Dooley <[email protected]>
---
.../watchdog/atmel,at91rm9200-wdt.yaml | 29 +++++++++++++++++++
.../watchdog/atmel-at91rm9200-wdt.txt | 9 ------
2 files changed, 29 insertions(+), 9 deletions(-)
create mode 100644 Documentation/devicetree/bindings/watchdog/atmel,at91rm9200-wdt.yaml
delete mode 100644 Documentation/devicetree/bindings/watchdog/atmel-at91rm9200-wdt.txt

diff --git a/Documentation/devicetree/bindings/watchdog/atmel,at91rm9200-wdt.yaml b/Documentation/devicetree/bindings/watchdog/atmel,at91rm9200-wdt.yaml
new file mode 100644
index 000000000000..592e797df4c2
--- /dev/null
+++ b/Documentation/devicetree/bindings/watchdog/atmel,at91rm9200-wdt.yaml
@@ -0,0 +1,29 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/atmel,at91rm9200-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip AT91RM9200 System Timer Watchdog
+
+maintainers:
+ - Nicolas Ferre <[email protected]>
+ - Alexandre Belloni <[email protected]>
+ - Claudiu Beznea <[email protected]>
+
+properties:
+ compatible:
+ const: atmel,at91rm9200-wdt
+
+required:
+ - compatible
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ watchdog {
+ compatible = "atmel,at91rm9200-wdt";
+ };
+
+...
diff --git a/Documentation/devicetree/bindings/watchdog/atmel-at91rm9200-wdt.txt b/Documentation/devicetree/bindings/watchdog/atmel-at91rm9200-wdt.txt
deleted file mode 100644
index d4d86cf8f9eb..000000000000
--- a/Documentation/devicetree/bindings/watchdog/atmel-at91rm9200-wdt.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Atmel AT91RM9200 System Timer Watchdog
-
-Required properties:
-- compatible: must be "atmel,at91sam9260-wdt".
-
-Example:
- watchdog@fffffd00 {
- compatible = "atmel,at91rm9200-wdt";
- };
--
2.34.1


2023-05-30 09:28:35

by Claudiu Beznea

[permalink] [raw]
Subject: [PATCH v3 3/3] dt-bindings: timer: atmel,at91rm9200-st: convert to yaml

Convert Microchip AT91 system timer to YAML.

Signed-off-by: Claudiu Beznea <[email protected]>
Reviewed-by: Conor Dooley <[email protected]>
---
.../devicetree/bindings/arm/atmel-sysregs.txt | 9 ---
.../bindings/timer/atmel,at91rm9200-st.yaml | 66 +++++++++++++++++++
2 files changed, 66 insertions(+), 9 deletions(-)
create mode 100644 Documentation/devicetree/bindings/timer/atmel,at91rm9200-st.yaml

diff --git a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
index 54d3f586403e..68c0eacb01ac 100644
--- a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
+++ b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
@@ -4,15 +4,6 @@ Chipid required properties:
- compatible: Should be "atmel,sama5d2-chipid" or "microchip,sama7g5-chipid"
- reg : Should contain registers location and length

-System Timer (ST) required properties:
-- compatible: Should be "atmel,at91rm9200-st", "syscon", "simple-mfd"
-- reg: Should contain registers location and length
-- interrupts: Should contain interrupt for the ST which is the IRQ line
- shared across all System Controller members.
-- clocks: phandle to input clock.
-Its subnodes can be:
-- watchdog: compatible should be "atmel,at91rm9200-wdt"
-
RAMC SDRAM/DDR Controller required properties:
- compatible: Should be "atmel,at91rm9200-sdramc", "syscon"
"atmel,at91sam9260-sdramc",
diff --git a/Documentation/devicetree/bindings/timer/atmel,at91rm9200-st.yaml b/Documentation/devicetree/bindings/timer/atmel,at91rm9200-st.yaml
new file mode 100644
index 000000000000..12d0bb7bd0c8
--- /dev/null
+++ b/Documentation/devicetree/bindings/timer/atmel,at91rm9200-st.yaml
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/timer/atmel,at91rm9200-st.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip AT91 System Timer (ST)
+
+maintainers:
+ - Nicolas Ferre <[email protected]>
+ - Alexandre Belloni <[email protected]>
+ - Claudiu Beznea <[email protected]>
+
+description:
+ Microchip AT91 system timer integrates a period interval timer, a watchdog
+ timer and a real-time timer.
+
+properties:
+ compatible:
+ items:
+ - const: atmel,at91rm9200-st
+ - const: syscon
+ - const: simple-mfd
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ description:
+ Contain interrupt for the ST which is the IRQ line shared across all
+ system controller members (memory controller, debug unit, system timer,
+ real-time clock, power management controller).
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+
+ watchdog:
+ $ref: ../watchdog/atmel,at91rm9200-wdt.yaml
+ description:
+ Child node describing watchdog.
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ st: timer@fffffd00 {
+ compatible = "atmel,at91rm9200-st", "syscon", "simple-mfd";
+ reg = <0xfffffd00 0x100>;
+ interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
+ clocks = <&slow_xtal>;
+
+ watchdog {
+ compatible = "atmel,at91rm9200-wdt";
+ };
+ };
+
+...
--
2.34.1


2023-05-30 12:45:28

by Nicolas Ferre

[permalink] [raw]
Subject: Re: [PATCH v3 0/3] dt-bindings: timer: Microchip AT91 convert to YAML

On 30/05/2023 at 11:07, Claudiu Beznea wrote:
> Hi,
>
> Series converts Microchip AT91 timers DT bindings to YAML. Along with it the
> atmel,at91rm9200-wdt has been converted and introduced in this series
> as it is referenced by atmel,at91rm9200-st.

For the whole series:
Acked-by: Nicolas Ferre <[email protected]>

Thanks Claudiu and Conor.
Best regards,
Nicolas

> Changes in v3:
> - removed patch 1/4 from v2
> - in patch 1/3 keep interrupt description only for PIT case (not for PIT64b)
> and updated interrupt description to emphasize blocks part of the system
> controller; note that system controller components may be different b/w
> different Microchip AT91 SoCs;
> - in patch 3/3 updated interrupt description to emphasize blocks part of the
> system controller; also, corrected Alexandre's email address
> - collected tags.
>
> Changes in v2:
> - fixed compilation errors (sorry for that in v1)
> - moved DTS patch as the 1st patch in series
> - squash PIT and PIT64B into the same documentation file
> - use Microchip in titles, descriptions and commit message
> - in patch 4/4 remove oneOf from compatible section
>
> Claudiu Beznea (3):
> dt-bindings: timer: atmel,at91sam9260-pit: convert to yaml
> dt-bindings: watchdog: atmel,at91rm9200-wdt: convert to yaml
> dt-bindings: timer: atmel,at91rm9200-st: convert to yaml
>
> .../devicetree/bindings/arm/atmel-sysregs.txt | 21 ----
> .../bindings/timer/atmel,at91rm9200-st.yaml | 66 +++++++++++++
> .../bindings/timer/atmel,at91sam9260-pit.yaml | 99 +++++++++++++++++++
> .../watchdog/atmel,at91rm9200-wdt.yaml | 29 ++++++
> .../watchdog/atmel-at91rm9200-wdt.txt | 9 --
> 5 files changed, 194 insertions(+), 30 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/timer/atmel,at91rm9200-st.yaml
> create mode 100644 Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
> create mode 100644 Documentation/devicetree/bindings/watchdog/atmel,at91rm9200-wdt.yaml
> delete mode 100644 Documentation/devicetree/bindings/watchdog/atmel-at91rm9200-wdt.txt
>

--
Nicolas Ferre


2023-05-31 09:03:24

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 2/3] dt-bindings: watchdog: atmel,at91rm9200-wdt: convert to yaml

On 30/05/2023 11:07, Claudiu Beznea wrote:
> Convert Microchip AT91RM9200 system timer watchdog bindings to YAML.
>
> Signed-off-by: Claudiu Beznea <[email protected]>
> Reviewed-by: Conor Dooley <[email protected]>
> ---
> .../watchdog/atmel,at91rm9200-wdt.yaml | 29 +++++++++++++++++++
> .../watchdog/atmel-at91rm9200-wdt.txt | 9 ------
> 2 files changed, 29 insertions(+), 9 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/watchdog/atmel,at91rm9200-wdt.yaml
> delete mode 100644 Documentation/devicetree/bindings/watchdog/atmel-at91rm9200-wdt.txt
>
> diff --git a/Documentation/devicetree/bindings/watchdog/atmel,at91rm9200-wdt.yaml b/Documentation/devicetree/bindings/watchdog/atmel,at91rm9200-wdt.yaml
> new file mode 100644
> index 000000000000..592e797df4c2
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/watchdog/atmel,at91rm9200-wdt.yaml
> @@ -0,0 +1,29 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/watchdog/atmel,at91rm9200-wdt.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Microchip AT91RM9200 System Timer Watchdog
> +
> +maintainers:
> + - Nicolas Ferre <[email protected]>
> + - Alexandre Belloni <[email protected]>
> + - Claudiu Beznea <[email protected]>
> +
> +properties:
> + compatible:
> + const: atmel,at91rm9200-wdt
> +
> +required:
> + - compatible
> +
> +unevaluatedProperties: false

Missing ref to watchdog. unevaluatedProps do not make sense with it.


Best regards,
Krzysztof


2023-05-31 09:08:59

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 3/3] dt-bindings: timer: atmel,at91rm9200-st: convert to yaml

On 30/05/2023 11:07, Claudiu Beznea wrote:
> Convert Microchip AT91 system timer to YAML.
>
> Signed-off-by: Claudiu Beznea <[email protected]>
> Reviewed-by: Conor Dooley <[email protected]>
> ---

Thank you for your patch. There is something to discuss/improve.

> +properties:
> + compatible:
> + items:
> + - const: atmel,at91rm9200-st
> + - const: syscon
> + - const: simple-mfd
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + description:
> + Contain interrupt for the ST which is the IRQ line shared across all
> + system controller members (memory controller, debug unit, system timer,
> + real-time clock, power management controller).
> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> +
> + watchdog:
> + $ref: ../watchdog/atmel,at91rm9200-wdt.yaml

Full path, so /schemas/watchdog/atmel....

> + description:
> + Child node describing watchdog.
> +


Best regards,
Krzysztof


2023-05-31 09:19:13

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] dt-bindings: timer: atmel,at91sam9260-pit: convert to yaml

On 30/05/2023 11:07, Claudiu Beznea wrote:
> Convert Microchip AT91 PIT bindings to YAML. Along with it clocks and
> clock-names bindings were added as the drivers needs it to ensure proper
> hardware functionality.
>
> Signed-off-by: Claudiu Beznea <[email protected]>
> ---
> .../devicetree/bindings/arm/atmel-sysregs.txt | 12 ---
> .../bindings/timer/atmel,at91sam9260-pit.yaml | 99 +++++++++++++++++++
> 2 files changed, 99 insertions(+), 12 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
>
> diff --git a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
> index 67a66bf74895..54d3f586403e 100644
> --- a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
> +++ b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
> @@ -4,18 +4,6 @@ Chipid required properties:
> - compatible: Should be "atmel,sama5d2-chipid" or "microchip,sama7g5-chipid"
> - reg : Should contain registers location and length
>
> -PIT Timer required properties:
> -- compatible: Should be "atmel,at91sam9260-pit"
> -- reg: Should contain registers location and length
> -- interrupts: Should contain interrupt for the PIT which is the IRQ line
> - shared across all System Controller members.
> -
> -PIT64B Timer required properties:
> -- compatible: Should be "microchip,sam9x60-pit64b"
> -- reg: Should contain registers location and length
> -- interrupts: Should contain interrupt for PIT64B timer
> -- clocks: Should contain the available clock sources for PIT64B timer.
> -
> System Timer (ST) required properties:
> - compatible: Should be "atmel,at91rm9200-st", "syscon", "simple-mfd"
> - reg: Should contain registers location and length
> diff --git a/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml b/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
> new file mode 100644
> index 000000000000..d0f3f80db4cb
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
> @@ -0,0 +1,99 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/timer/atmel,at91sam9260-pit.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Microchip AT91 Periodic Interval Timer (PIT)
> +
> +maintainers:
> + - Claudiu Beznea <[email protected]>
> +
> +description:
> + Microchip AT91 periodic interval timer provides the operating system scheduler
> + interrupt. It is designed to offer maximum accuracy and efficient management,
> + even for systems with long response time.
> +
> +properties:
> + compatible:
> + oneOf:
> + - items:
> + - const: microchip,sama7g5-pit64b

From where do you have this compatible? Wasn't in old binding and commit
msg does not explain it.


> + - const: microchip,sam9x60-pit64b
> + - items:
> + enum:

These are not items. Just enum.. Does it even work?

> + - atmel,at91sam9260-pit
> + - microchip,sam9x60-pit64b
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + clocks:
> + minItems: 1
> + maxItems: 2
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - clocks
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: atmel,at91sam9260-pit
> + then:
> + properties:
> + interrupts:
> + description:
> + Shared interrupt between all system controller members (power management
> + controller, watchdog, PIT, reset controller, real-time timer, real-time
> + clock, memory controller, debug unit, system timer).
> + clocks:
> + maxItems: 1
> +
> + else:
> + properties:
> + clocks:
> + minItems: 2
> + clock-names:
> + items:
> + - const: pclk
> + - const: gclk

interrupts? They are still required, so why no description here?

> + required:
> + - clock-names
> +
> +unevaluatedProperties: false

additionalProperties:false instead

> +

Best regards,
Krzysztof


2023-06-09 10:59:23

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] dt-bindings: timer: atmel,at91sam9260-pit: convert to yaml

On 09/06/2023 12:22, [email protected] wrote:
> On 31.05.2023 11:55, Krzysztof Kozlowski wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>
>> On 30/05/2023 11:07, Claudiu Beznea wrote:
>>> Convert Microchip AT91 PIT bindings to YAML. Along with it clocks and
>>> clock-names bindings were added as the drivers needs it to ensure proper
>>> hardware functionality.
>>>
>>> Signed-off-by: Claudiu Beznea <[email protected]>
>>> ---
>>> .../devicetree/bindings/arm/atmel-sysregs.txt | 12 ---
>>> .../bindings/timer/atmel,at91sam9260-pit.yaml | 99 +++++++++++++++++++
>>> 2 files changed, 99 insertions(+), 12 deletions(-)
>>> create mode 100644 Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
>>> index 67a66bf74895..54d3f586403e 100644
>>> --- a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
>>> +++ b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
>>> @@ -4,18 +4,6 @@ Chipid required properties:
>>> - compatible: Should be "atmel,sama5d2-chipid" or "microchip,sama7g5-chipid"
>>> - reg : Should contain registers location and length
>>>
>>> -PIT Timer required properties:
>>> -- compatible: Should be "atmel,at91sam9260-pit"
>>> -- reg: Should contain registers location and length
>>> -- interrupts: Should contain interrupt for the PIT which is the IRQ line
>>> - shared across all System Controller members.
>>> -
>>> -PIT64B Timer required properties:
>>> -- compatible: Should be "microchip,sam9x60-pit64b"
>>> -- reg: Should contain registers location and length
>>> -- interrupts: Should contain interrupt for PIT64B timer
>>> -- clocks: Should contain the available clock sources for PIT64B timer.
>>> -
>>> System Timer (ST) required properties:
>>> - compatible: Should be "atmel,at91rm9200-st", "syscon", "simple-mfd"
>>> - reg: Should contain registers location and length
>>> diff --git a/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml b/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
>>> new file mode 100644
>>> index 000000000000..d0f3f80db4cb
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
>>> @@ -0,0 +1,99 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/timer/atmel,at91sam9260-pit.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Microchip AT91 Periodic Interval Timer (PIT)
>>> +
>>> +maintainers:
>>> + - Claudiu Beznea <[email protected]>
>>> +
>>> +description:
>>> + Microchip AT91 periodic interval timer provides the operating system scheduler
>>> + interrupt. It is designed to offer maximum accuracy and efficient management,
>>> + even for systems with long response time.
>>> +
>>> +properties:
>>> + compatible:
>>> + oneOf:
>>> + - items:
>>> + - const: microchip,sama7g5-pit64b
>>
>> >From where do you have this compatible? Wasn't in old binding and commit
>> msg does not explain it.
>
> ok, I'll update it in the commit message. It is from the available device
> trees.

Add them in next patch, so the conversion is only conversion.

>
>>
>>
>>> + - const: microchip,sam9x60-pit64b
>>> + - items:
>>> + enum:
>>
>> These are not items. Just enum.. Does it even work?
>
> Yes, it compiles w/o issues. I'll update it anyway.

Yeah, but does it work as intended? This should allow any order of below
compatibles - from 1 to 2, so totally not what you wanted.

>
>>
>>> + - atmel,at91sam9260-pit
>>> + - microchip,sam9x60-pit64b

>>> + properties:
>>> + clocks:
>>> + minItems: 2
>>> + clock-names:
>>> + items:
>>> + - const: pclk
>>> + - const: gclk
>>
>> interrupts? They are still required, so why no description here?
>
> It was here in the previous versions but Conor suggested to remove it as it
> was nothing specific about this description. For the if-then branch I kept
> it to specify that the interrupt is share with other devices. In this
> branch the interrupt is only for the timer itself. With this, would you
> still prefer to add it back?

I just don't understand why interrupts are in one arm of the if: and not
in the other.

>
>>
>>> + required:
>>> + - clock-names
>>> +
>>> +unevaluatedProperties: false
>>
>> additionalProperties:false instead
>
> Having additionalProperties:false instead of unevaluatedProperties: false
> thows the following error on make dt_binding_check and make dtbs_check:
>
> Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.example.dtb:
> timer@f0028000: 'clock-names' does not match any of the regexes:
> 'pinctrl-[0-9]+'

So it nicely points to something you need to fix in the binding.



Best regards,
Krzysztof


2023-06-09 11:03:34

by Claudiu Beznea

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] dt-bindings: timer: atmel,at91sam9260-pit: convert to yaml

On 31.05.2023 11:55, Krzysztof Kozlowski wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> On 30/05/2023 11:07, Claudiu Beznea wrote:
>> Convert Microchip AT91 PIT bindings to YAML. Along with it clocks and
>> clock-names bindings were added as the drivers needs it to ensure proper
>> hardware functionality.
>>
>> Signed-off-by: Claudiu Beznea <[email protected]>
>> ---
>> .../devicetree/bindings/arm/atmel-sysregs.txt | 12 ---
>> .../bindings/timer/atmel,at91sam9260-pit.yaml | 99 +++++++++++++++++++
>> 2 files changed, 99 insertions(+), 12 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
>> index 67a66bf74895..54d3f586403e 100644
>> --- a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
>> +++ b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
>> @@ -4,18 +4,6 @@ Chipid required properties:
>> - compatible: Should be "atmel,sama5d2-chipid" or "microchip,sama7g5-chipid"
>> - reg : Should contain registers location and length
>>
>> -PIT Timer required properties:
>> -- compatible: Should be "atmel,at91sam9260-pit"
>> -- reg: Should contain registers location and length
>> -- interrupts: Should contain interrupt for the PIT which is the IRQ line
>> - shared across all System Controller members.
>> -
>> -PIT64B Timer required properties:
>> -- compatible: Should be "microchip,sam9x60-pit64b"
>> -- reg: Should contain registers location and length
>> -- interrupts: Should contain interrupt for PIT64B timer
>> -- clocks: Should contain the available clock sources for PIT64B timer.
>> -
>> System Timer (ST) required properties:
>> - compatible: Should be "atmel,at91rm9200-st", "syscon", "simple-mfd"
>> - reg: Should contain registers location and length
>> diff --git a/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml b/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
>> new file mode 100644
>> index 000000000000..d0f3f80db4cb
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.yaml
>> @@ -0,0 +1,99 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/timer/atmel,at91sam9260-pit.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Microchip AT91 Periodic Interval Timer (PIT)
>> +
>> +maintainers:
>> + - Claudiu Beznea <[email protected]>
>> +
>> +description:
>> + Microchip AT91 periodic interval timer provides the operating system scheduler
>> + interrupt. It is designed to offer maximum accuracy and efficient management,
>> + even for systems with long response time.
>> +
>> +properties:
>> + compatible:
>> + oneOf:
>> + - items:
>> + - const: microchip,sama7g5-pit64b
>
>>From where do you have this compatible? Wasn't in old binding and commit
> msg does not explain it.

ok, I'll update it in the commit message. It is from the available device
trees.

>
>
>> + - const: microchip,sam9x60-pit64b
>> + - items:
>> + enum:
>
> These are not items. Just enum.. Does it even work?

Yes, it compiles w/o issues. I'll update it anyway.

>
>> + - atmel,at91sam9260-pit
>> + - microchip,sam9x60-pit64b
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + clocks:
>> + minItems: 1
>> + maxItems: 2
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - interrupts
>> + - clocks
>> +
>> +allOf:
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + const: atmel,at91sam9260-pit
>> + then:
>> + properties:
>> + interrupts:
>> + description:
>> + Shared interrupt between all system controller members (power management
>> + controller, watchdog, PIT, reset controller, real-time timer, real-time
>> + clock, memory controller, debug unit, system timer).
>> + clocks:
>> + maxItems: 1
>> +
>> + else:
>> + properties:
>> + clocks:
>> + minItems: 2
>> + clock-names:
>> + items:
>> + - const: pclk
>> + - const: gclk
>
> interrupts? They are still required, so why no description here?

It was here in the previous versions but Conor suggested to remove it as it
was nothing specific about this description. For the if-then branch I kept
it to specify that the interrupt is share with other devices. In this
branch the interrupt is only for the timer itself. With this, would you
still prefer to add it back?

>
>> + required:
>> + - clock-names
>> +
>> +unevaluatedProperties: false
>
> additionalProperties:false instead

Having additionalProperties:false instead of unevaluatedProperties: false
thows the following error on make dt_binding_check and make dtbs_check:

Documentation/devicetree/bindings/timer/atmel,at91sam9260-pit.example.dtb:
timer@f0028000: 'clock-names' does not match any of the regexes:
'pinctrl-[0-9]+'

>
>> +
>
> Best regards,
> Krzysztof
>

2023-06-09 12:31:11

by Claudiu Beznea

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] dt-bindings: timer: atmel,at91sam9260-pit: convert to yaml

On 09.06.2023 13:48, Krzysztof Kozlowski wrote:

[ ... ]

>
>>>> + properties:
>>>> + clocks:
>>>> + minItems: 2
>>>> + clock-names:
>>>> + items:
>>>> + - const: pclk
>>>> + - const: gclk
>>>
>>> interrupts? They are still required, so why no description here?
>>
>> It was here in the previous versions but Conor suggested to remove it as it
>> was nothing specific about this description. For the if-then branch I kept
>> it to specify that the interrupt is share with other devices. In this
>> branch the interrupt is only for the timer itself. With this, would you
>> still prefer to add it back?
>
> I just don't understand why interrupts are in one arm of the if: and not
> in the other.
>

As previously mentioned, Conor suggested to have it like this.

2023-06-09 12:32:02

by Claudiu Beznea

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] dt-bindings: timer: atmel,at91sam9260-pit: convert to yaml

On 09.06.2023 15:18, Krzysztof Kozlowski wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> On 09/06/2023 14:09, [email protected] wrote:
>>>>>
>>>>> interrupts? They are still required, so why no description here?
>>>>
>>>> It was here in the previous versions but Conor suggested to remove it as it
>>>> was nothing specific about this description. For the if-then branch I kept
>>>> it to specify that the interrupt is share with other devices. In this
>>>> branch the interrupt is only for the timer itself. With this, would you
>>>> still prefer to add it back?
>>>
>>> I just don't understand why interrupts are in one arm of the if: and not
>>> in the other.
>>>
>>
>> As previously mentioned, Conor suggested to have it like this.
>>
>
> ok

Would you still prefer to add back interrupt description on both branches
of if?

>
> Best regards,
> Krzysztof
>

2023-06-09 12:33:26

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] dt-bindings: timer: atmel,at91sam9260-pit: convert to yaml

On 09/06/2023 14:09, [email protected] wrote:
>>>>
>>>> interrupts? They are still required, so why no description here?
>>>
>>> It was here in the previous versions but Conor suggested to remove it as it
>>> was nothing specific about this description. For the if-then branch I kept
>>> it to specify that the interrupt is share with other devices. In this
>>> branch the interrupt is only for the timer itself. With this, would you
>>> still prefer to add it back?
>>
>> I just don't understand why interrupts are in one arm of the if: and not
>> in the other.
>>
>
> As previously mentioned, Conor suggested to have it like this.
>

ok

Best regards,
Krzysztof