2022-02-04 14:09:07

by Eugen Hristev

[permalink] [raw]
Subject: [PATCH] dt-bindings: microchip: atmel,at91rm9200-tcb: remove mandatory interrupts property

The timer block can be used only to be read and to measure time in a polling
fashion. This can be used by Linux like this for example, or it can be used
by different projects which do not have interrupt controllers, or do not
wish to enable them (e.g. U-boot).
As DT is ABI, the binding should relate to all possible use cases and describe
the hardware and the requirements.
The interrupt is not a hard requirement for the timer to function in a
specific way.
Thus, choose to remove the interrupts property from the mandatory list of
properties.

Signed-off-by: Eugen Hristev <[email protected]>
---
.../devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml | 1 -
1 file changed, 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml b/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
index 597d67fba92f..27f78459b892 100644
--- a/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
+++ b/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
@@ -134,7 +134,6 @@ allOf:
required:
- compatible
- reg
- - interrupts
- clocks
- clock-names
- '#address-cells'
--
2.25.1


2022-02-04 20:56:22

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: microchip: atmel,at91rm9200-tcb: remove mandatory interrupts property

On 04/02/2022 10:14:46+0200, Eugen Hristev wrote:
> The timer block can be used only to be read and to measure time in a polling
> fashion. This can be used by Linux like this for example, or it can be used
> by different projects which do not have interrupt controllers, or do not
> wish to enable them (e.g. U-boot).
> As DT is ABI, the binding should relate to all possible use cases and describe
> the hardware and the requirements.
> The interrupt is not a hard requirement for the timer to function in a
> specific way.
> Thus, choose to remove the interrupts property from the mandatory list of
> properties.
>

The correct hardware description is that the interrupt is present on the
IP. Having software behave differently depending on the presence of that
property is configuration, not hardware description.

> Signed-off-by: Eugen Hristev <[email protected]>
> ---
> .../devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml b/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
> index 597d67fba92f..27f78459b892 100644
> --- a/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
> +++ b/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
> @@ -134,7 +134,6 @@ allOf:
> required:
> - compatible
> - reg
> - - interrupts
> - clocks
> - clock-names
> - '#address-cells'
> --
> 2.25.1
>

--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

2022-02-04 22:58:45

by Eugen Hristev

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: microchip: atmel,at91rm9200-tcb: remove mandatory interrupts property

On 2/4/22 11:46 AM, Alexandre Belloni wrote:
> On 04/02/2022 10:14:46+0200, Eugen Hristev wrote:
>> The timer block can be used only to be read and to measure time in a polling
>> fashion. This can be used by Linux like this for example, or it can be used
>> by different projects which do not have interrupt controllers, or do not
>> wish to enable them (e.g. U-boot).
>> As DT is ABI, the binding should relate to all possible use cases and describe
>> the hardware and the requirements.
>> The interrupt is not a hard requirement for the timer to function in a
>> specific way.
>> Thus, choose to remove the interrupts property from the mandatory list of
>> properties.
>>
>
> The correct hardware description is that the interrupt is present on the
> IP. Having software behave differently depending on the presence of that
> property is configuration, not hardware description.

I agree. The interrupt is present on the IP, thus the property exists
and it's described.
However, the interrupt is not mandatory for IP operations. Thus it
should not be in the list of mandatory properties.

>
>> Signed-off-by: Eugen Hristev <[email protected]>
>> ---
>> .../devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml | 1 -
>> 1 file changed, 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml b/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
>> index 597d67fba92f..27f78459b892 100644
>> --- a/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
>> +++ b/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
>> @@ -134,7 +134,6 @@ allOf:
>> required:
>> - compatible
>> - reg
>> - - interrupts
>> - clocks
>> - clock-names
>> - '#address-cells'
>> --
>> 2.25.1
>>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>

2022-02-09 06:42:58

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: microchip: atmel,at91rm9200-tcb: remove mandatory interrupts property

On 04/02/2022 10:28:43+0000, [email protected] wrote:
> On 2/4/22 11:46 AM, Alexandre Belloni wrote:
> > On 04/02/2022 10:14:46+0200, Eugen Hristev wrote:
> >> The timer block can be used only to be read and to measure time in a polling
> >> fashion. This can be used by Linux like this for example, or it can be used
> >> by different projects which do not have interrupt controllers, or do not
> >> wish to enable them (e.g. U-boot).
> >> As DT is ABI, the binding should relate to all possible use cases and describe
> >> the hardware and the requirements.
> >> The interrupt is not a hard requirement for the timer to function in a
> >> specific way.
> >> Thus, choose to remove the interrupts property from the mandatory list of
> >> properties.
> >>
> >
> > The correct hardware description is that the interrupt is present on the
> > IP. Having software behave differently depending on the presence of that
> > property is configuration, not hardware description.
>
> I agree. The interrupt is present on the IP, thus the property exists
> and it's described.
> However, the interrupt is not mandatory for IP operations. Thus it
> should not be in the list of mandatory properties.
>

If the interrupt is always present, it is mandatory, it doesn't matter
whether is is used or necessary to get the IP to work.



> >
> >> Signed-off-by: Eugen Hristev <[email protected]>
> >> ---
> >> .../devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml | 1 -
> >> 1 file changed, 1 deletion(-)
> >>
> >> diff --git a/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml b/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
> >> index 597d67fba92f..27f78459b892 100644
> >> --- a/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
> >> +++ b/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
> >> @@ -134,7 +134,6 @@ allOf:
> >> required:
> >> - compatible
> >> - reg
> >> - - interrupts
> >> - clocks
> >> - clock-names
> >> - '#address-cells'
> >> --
> >> 2.25.1
> >>
> >
> > --
> > Alexandre Belloni, co-owner and COO, Bootlin
> > Embedded Linux and Kernel engineering
> > https://bootlin.com
> >
>

--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

2022-02-12 00:29:23

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: microchip: atmel,at91rm9200-tcb: remove mandatory interrupts property

On Fri, Feb 04, 2022 at 11:36:02AM +0100, Alexandre Belloni wrote:
> On 04/02/2022 10:28:43+0000, [email protected] wrote:
> > On 2/4/22 11:46 AM, Alexandre Belloni wrote:
> > > On 04/02/2022 10:14:46+0200, Eugen Hristev wrote:
> > >> The timer block can be used only to be read and to measure time in a polling
> > >> fashion. This can be used by Linux like this for example, or it can be used
> > >> by different projects which do not have interrupt controllers, or do not
> > >> wish to enable them (e.g. U-boot).
> > >> As DT is ABI, the binding should relate to all possible use cases and describe
> > >> the hardware and the requirements.
> > >> The interrupt is not a hard requirement for the timer to function in a
> > >> specific way.
> > >> Thus, choose to remove the interrupts property from the mandatory list of
> > >> properties.
> > >>
> > >
> > > The correct hardware description is that the interrupt is present on the
> > > IP. Having software behave differently depending on the presence of that
> > > property is configuration, not hardware description.
> >
> > I agree. The interrupt is present on the IP, thus the property exists
> > and it's described.
> > However, the interrupt is not mandatory for IP operations. Thus it
> > should not be in the list of mandatory properties.
> >
>
> If the interrupt is always present, it is mandatory, it doesn't matter
> whether is is used or necessary to get the IP to work.

Agreed.