diff mbox series

dt-bindings: microchip: atmel,at91rm9200-tcb: remove mandatory interrupts property

Message ID 20220204081446.474991-1-eugen.hristev@microchip.com
State Changes Requested, archived
Headers show
Series dt-bindings: microchip: atmel,at91rm9200-tcb: remove mandatory interrupts property | expand

Commit Message

Eugen Hristev Feb. 4, 2022, 8:14 a.m. UTC
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 <eugen.hristev@microchip.com>
---
 .../devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml  | 1 -
 1 file changed, 1 deletion(-)

Comments

Alexandre Belloni Feb. 4, 2022, 9:46 a.m. UTC | #1
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 <eugen.hristev@microchip.com>
> ---
>  .../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
>
Eugen Hristev Feb. 4, 2022, 10:28 a.m. UTC | #2
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 <eugen.hristev@microchip.com>
>> ---
>>   .../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 Feb. 4, 2022, 10:36 a.m. UTC | #3
On 04/02/2022 10:28:43+0000, Eugen.Hristev@microchip.com 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 <eugen.hristev@microchip.com>
> >> ---
> >>   .../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
> > 
>
Rob Herring Feb. 11, 2022, 2:21 p.m. UTC | #4
On Fri, Feb 04, 2022 at 11:36:02AM +0100, Alexandre Belloni wrote:
> On 04/02/2022 10:28:43+0000, Eugen.Hristev@microchip.com 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.
diff mbox series

Patch

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'