2022-08-05 08:14:48

by Krzysztof Kozlowski

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

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 <[email protected]>

---

Changes since v1:
1. Accept also INT2 as one interrupt (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
--
2.34.1



2022-08-06 14:33:11

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v2] dt-bindings: iio: gyroscope: bosch,bmg160: correct number of pins

On Fri, 5 Aug 2022 09:55:03 +0200
Krzysztof Kozlowski <[email protected]> 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 <[email protected]>
>
> ---
>
> 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

2022-08-08 06:11:50

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2] dt-bindings: iio: gyroscope: bosch,bmg160: correct number of pins

On 06/08/2022 16:32, Jonathan Cameron wrote:
> On Fri, 5 Aug 2022 09:55:03 +0200
> Krzysztof Kozlowski <[email protected]> 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 <[email protected]>
>>
>> ---
>>
>> 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

2022-08-13 16:00:37

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v2] dt-bindings: iio: gyroscope: bosch,bmg160: correct number of pins

On Mon, 8 Aug 2022 07:48:31 +0200
Krzysztof Kozlowski <[email protected]> wrote:

> On 06/08/2022 16:32, Jonathan Cameron wrote:
> > On Fri, 5 Aug 2022 09:55:03 +0200
> > Krzysztof Kozlowski <[email protected]> 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 <[email protected]>
> >>
> >> ---
> >>
> >> 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