Message ID | 20210719112156.27087-3-stephan@gerhold.net |
---|---|
State | Superseded |
Headers | show |
Series | iio: accel: bmc150: Add support for INT2 and BMC156 | expand |
On Mon, 19 Jul 2021 13:21:54 +0200 Stephan Gerhold <stephan@gerhold.net> wrote: > BMC156 is very smilar to BMC150, but it has only one accelerometer > interrupt pin. It would make sense if only INT1 was exposed but someone > at Bosch was crazy and decided to only have an INT2 pin. > > In this case, it does not make sense if the first interrupt pin is > treated as INT1 (since that pin does not exist). Add a note to the > bindings that the first interrupt pin is treated as INT2 for BMC156. > > Signed-off-by: Stephan Gerhold <stephan@gerhold.net> > --- > .../bindings/iio/accel/bosch,bma255.yaml | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml b/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml > index 897a1d808ef5..f7848e4a7b29 100644 > --- a/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml > +++ b/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml > @@ -26,6 +26,7 @@ properties: > - bosch,bma255 > - bosch,bma280 > - bosch,bmc150_accel > + - bosch,bmc156_accel > - bosch,bmi055_accel > > # bma180 driver in Linux > @@ -49,6 +50,9 @@ properties: > the second (optional) interrupt listed must be the one connected to the > INT2 pin (if available). The type should be IRQ_TYPE_EDGE_RISING. > > + BMC156 does not have an INT1 pin, therefore the first interrupt pin is > + always treated as INT2. We 'could' enforce any name present for the bmc156 to be INT2, but we probably still want the fallback you have in the driver to handle the case of not interrupt-name provided. Rob, do you think it's worth the complexity for this corner case? Jonathan > + > interrupt-names: > minItems: 1 > maxItems: 2 > @@ -84,6 +88,20 @@ examples: > interrupt-names = "INT1"; > }; > }; > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + accelerometer@10 { > + compatible = "bosch,bmc156_accel"; > + reg = <0x10>; > + vddio-supply = <&vddio>; > + vdd-supply = <&vdd>; > + interrupts = <116 IRQ_TYPE_EDGE_RISING>; > + interrupt-names = "INT2"; > + }; > + }; > - | > # include <dt-bindings/interrupt-controller/irq.h> > spi {
On Sat, Jul 24, 2021 at 05:03:18PM +0100, Jonathan Cameron wrote: > On Mon, 19 Jul 2021 13:21:54 +0200 > Stephan Gerhold <stephan@gerhold.net> wrote: > > > BMC156 is very smilar to BMC150, but it has only one accelerometer > > interrupt pin. It would make sense if only INT1 was exposed but someone > > at Bosch was crazy and decided to only have an INT2 pin. > > > > In this case, it does not make sense if the first interrupt pin is > > treated as INT1 (since that pin does not exist). Add a note to the > > bindings that the first interrupt pin is treated as INT2 for BMC156. > > > > Signed-off-by: Stephan Gerhold <stephan@gerhold.net> > > --- > > .../bindings/iio/accel/bosch,bma255.yaml | 18 ++++++++++++++++++ > > 1 file changed, 18 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml b/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml > > index 897a1d808ef5..f7848e4a7b29 100644 > > --- a/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml > > +++ b/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml > > @@ -26,6 +26,7 @@ properties: > > - bosch,bma255 > > - bosch,bma280 > > - bosch,bmc150_accel > > + - bosch,bmc156_accel > > - bosch,bmi055_accel > > > > # bma180 driver in Linux > > @@ -49,6 +50,9 @@ properties: > > the second (optional) interrupt listed must be the one connected to the > > INT2 pin (if available). The type should be IRQ_TYPE_EDGE_RISING. > > > > + BMC156 does not have an INT1 pin, therefore the first interrupt pin is > > + always treated as INT2. > > We 'could' enforce any name present for the bmc156 to be INT2, but we probably > still want the fallback you have in the driver to handle the case of > not interrupt-name provided. > > Rob, do you think it's worth the complexity for this corner case? No. Rob
On Mon, 19 Jul 2021 13:21:54 +0200, Stephan Gerhold wrote: > BMC156 is very smilar to BMC150, but it has only one accelerometer > interrupt pin. It would make sense if only INT1 was exposed but someone > at Bosch was crazy and decided to only have an INT2 pin. > > In this case, it does not make sense if the first interrupt pin is > treated as INT1 (since that pin does not exist). Add a note to the > bindings that the first interrupt pin is treated as INT2 for BMC156. > > Signed-off-by: Stephan Gerhold <stephan@gerhold.net> > --- > .../bindings/iio/accel/bosch,bma255.yaml | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > Reviewed-by: Rob Herring <robh@kernel.org>
diff --git a/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml b/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml index 897a1d808ef5..f7848e4a7b29 100644 --- a/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml +++ b/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml @@ -26,6 +26,7 @@ properties: - bosch,bma255 - bosch,bma280 - bosch,bmc150_accel + - bosch,bmc156_accel - bosch,bmi055_accel # bma180 driver in Linux @@ -49,6 +50,9 @@ properties: the second (optional) interrupt listed must be the one connected to the INT2 pin (if available). The type should be IRQ_TYPE_EDGE_RISING. + BMC156 does not have an INT1 pin, therefore the first interrupt pin is + always treated as INT2. + interrupt-names: minItems: 1 maxItems: 2 @@ -84,6 +88,20 @@ examples: interrupt-names = "INT1"; }; }; + - | + #include <dt-bindings/interrupt-controller/irq.h> + i2c { + #address-cells = <1>; + #size-cells = <0>; + accelerometer@10 { + compatible = "bosch,bmc156_accel"; + reg = <0x10>; + vddio-supply = <&vddio>; + vdd-supply = <&vdd>; + interrupts = <116 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "INT2"; + }; + }; - | # include <dt-bindings/interrupt-controller/irq.h> spi {
BMC156 is very smilar to BMC150, but it has only one accelerometer interrupt pin. It would make sense if only INT1 was exposed but someone at Bosch was crazy and decided to only have an INT2 pin. In this case, it does not make sense if the first interrupt pin is treated as INT1 (since that pin does not exist). Add a note to the bindings that the first interrupt pin is treated as INT2 for BMC156. Signed-off-by: Stephan Gerhold <stephan@gerhold.net> --- .../bindings/iio/accel/bosch,bma255.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)