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 |
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
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
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 --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
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(+)