diff mbox series

[v2] dt-bindings: iio: gyroscope: bosch,bmg160: correct number of pins

Message ID 20220805075503.16983-1-krzysztof.kozlowski@linaro.org (mailing list archive)
State Changes Requested
Headers show
Series [v2] dt-bindings: iio: gyroscope: bosch,bmg160: correct number of pins | expand

Commit Message

Krzysztof Kozlowski Aug. 5, 2022, 7:55 a.m. UTC
BMG160 has two interrupt pins to which interrupts can be freely mapped.
Correct the schema to express such case and fix warnings like:

  qcom/msm8916-alcatel-idol347.dtb: gyroscope@68: interrupts: [[97, 1], [98, 1]] is too long

However the basic issue still persists - the interrupts should come in a
defined order.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

---

Changes since v1:
1. Accept also INT2 as one interrupt (Jonathan).
---
 .../devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml         | 2 ++
 1 file changed, 2 insertions(+)

Comments

Jonathan Cameron Aug. 6, 2022, 2:32 p.m. UTC | #1
On Fri,  5 Aug 2022 09:55:03 +0200
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:

> BMG160 has two interrupt pins to which interrupts can be freely mapped.
> Correct the schema to express such case and fix warnings like:
> 
>   qcom/msm8916-alcatel-idol347.dtb: gyroscope@68: interrupts: [[97, 1], [98, 1]] is too long
> 
> However the basic issue still persists - the interrupts should come in a
> defined order.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 
> ---
> 
> Changes since v1:
> 1. Accept also INT2 as one interrupt (Jonathan).

This doesn't work. If we are going to support either interrupt, at the very least
we need to require interrupt-names if the first one isn't INT1.  So your fix
is right but not enough.

Driver may ignore interrupt-names for now (would be good to have a sanity check in driver
though so the driver explicitly checks for INT2 and doesn't use the interrupt if
it is INT2 - support for that being for a future 'feature' addition).

A hacky solution would be to require the first one to always be INT1 but that
gives us no (backwards compatible) path forwards if someone does have a board
where only INT2 is wired.

So minimum change I think will be to provide interrupt-names allowing any of
INT1 (default if not specified)
INT1, INT2
INT2

and your fix below.

Thanks,

Jonathan



> ---
>  .../devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml         | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml b/Documentation/devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml
> index b6bbc312a7cf..1414ba9977c1 100644
> --- a/Documentation/devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml
> +++ b/Documentation/devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml
> @@ -24,8 +24,10 @@ properties:
>  
>    interrupts:
>      minItems: 1
> +    maxItems: 2
>      description:
>        Should be configured with type IRQ_TYPE_EDGE_RISING.
> +      If two interrupts are provided, expected order is INT1 and INT2.
>  
>  required:
>    - compatible
Krzysztof Kozlowski Aug. 8, 2022, 5:48 a.m. UTC | #2
On 06/08/2022 16:32, Jonathan Cameron wrote:
> On Fri,  5 Aug 2022 09:55:03 +0200
> Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:
> 
>> BMG160 has two interrupt pins to which interrupts can be freely mapped.
>> Correct the schema to express such case and fix warnings like:
>>
>>   qcom/msm8916-alcatel-idol347.dtb: gyroscope@68: interrupts: [[97, 1], [98, 1]] is too long
>>
>> However the basic issue still persists - the interrupts should come in a
>> defined order.
>>
>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>>
>> ---
>>
>> Changes since v1:
>> 1. Accept also INT2 as one interrupt (Jonathan).
> 
> This doesn't work. If we are going to support either interrupt, at the very least
> we need to require interrupt-names if the first one isn't INT1.  So your fix
> is right but not enough.
> 
> Driver may ignore interrupt-names for now (would be good to have a sanity check in driver
> though so the driver explicitly checks for INT2 and doesn't use the interrupt if
> it is INT2 - support for that being for a future 'feature' addition).
> 
> A hacky solution would be to require the first one to always be INT1 but that
> gives us no (backwards compatible) path forwards if someone does have a board
> where only INT2 is wired.
> 
> So minimum change I think will be to provide interrupt-names allowing any of
> INT1 (default if not specified)
> INT1, INT2
> INT2

This is exactly what my fix is doing. What else do you need?
interrupt-names is just a helper which anyway driver does not use, so
enforcing it now does not change much.


Best regards,
Krzysztof
Jonathan Cameron Aug. 13, 2022, 3:53 p.m. UTC | #3
On Mon, 8 Aug 2022 07:48:31 +0200
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:

> On 06/08/2022 16:32, Jonathan Cameron wrote:
> > On Fri,  5 Aug 2022 09:55:03 +0200
> > Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:
> >   
> >> BMG160 has two interrupt pins to which interrupts can be freely mapped.
> >> Correct the schema to express such case and fix warnings like:
> >>
> >>   qcom/msm8916-alcatel-idol347.dtb: gyroscope@68: interrupts: [[97, 1], [98, 1]] is too long
> >>
> >> However the basic issue still persists - the interrupts should come in a
> >> defined order.
> >>
> >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >>
> >> ---
> >>
> >> Changes since v1:
> >> 1. Accept also INT2 as one interrupt (Jonathan).  
> > 
> > This doesn't work. If we are going to support either interrupt, at the very least
> > we need to require interrupt-names if the first one isn't INT1.  So your fix
> > is right but not enough.
> > 
> > Driver may ignore interrupt-names for now (would be good to have a sanity check in driver
> > though so the driver explicitly checks for INT2 and doesn't use the interrupt if
> > it is INT2 - support for that being for a future 'feature' addition).
> > 
> > A hacky solution would be to require the first one to always be INT1 but that
> > gives us no (backwards compatible) path forwards if someone does have a board
> > where only INT2 is wired.
> > 
> > So minimum change I think will be to provide interrupt-names allowing any of
> > INT1 (default if not specified)
> > INT1, INT2
> > INT2  
> 
> This is exactly what my fix is doing. What else do you need?
> interrupt-names is just a helper which anyway driver does not use, so
> enforcing it now does not change much.

Ok. I guess this sort of papers over it in a vague fashion and
avoids pointing out there that there is breakage in the one interrupt case
beyond a hint in the commit message.

Better than nothing but only a partial fix for the actual issue
(where that issue isn't a binding warning!)

Applied to the fixes-togreg branch of iio.git

Thanks,

Jonathan


> 
> 
> Best regards,
> Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml b/Documentation/devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml
index b6bbc312a7cf..1414ba9977c1 100644
--- a/Documentation/devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml
+++ b/Documentation/devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml
@@ -24,8 +24,10 @@  properties:
 
   interrupts:
     minItems: 1
+    maxItems: 2
     description:
       Should be configured with type IRQ_TYPE_EDGE_RISING.
+      If two interrupts are provided, expected order is INT1 and INT2.
 
 required:
   - compatible