Thread (16 messages) 16 messages, 2 authors, 2021-06-11

Re: [PATCH v3 08/10] dt-bindings: iio: bma255: Allow multiple interrupts

From: Stephan Gerhold <stephan@gerhold.net>
Date: 2021-06-11 18:21:27
Also in: linux-iio

On Fri, Jun 11, 2021 at 06:59:41PM +0100, Jonathan Cameron wrote:
On Fri, 11 Jun 2021 10:09:01 +0200
Stephan Gerhold [off-list ref] wrote:
quoted
BMA253 has two interrupt pins (INT1 and INT2) that can be configured
independently. At the moment the bmc150-accel driver does not make use
of them but it might be able to in the future, so it's useful to already
specify all available interrupts in the device tree.

Set maxItems: 2 for interrupts to allow specifying a second one.
This is necessary as preparation to move the bosch,bma254 compatible
from bosch,bma180.yaml to bosch,bma255.yaml since bma180 allows two
interrupts, but BMA254 is better supported by the bmc150-accel driver.

Reviewed-by: Linus Walleij <redacted>
Reviewed-by: Hans de Goede <redacted>
Reviewed-by: Andy Shevchenko <redacted>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
---
 .../devicetree/bindings/iio/accel/bosch,bma255.yaml        | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml b/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml
index 8afb0fe8ef5c..65b299a5619b 100644
--- a/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml
+++ b/Documentation/devicetree/bindings/iio/accel/bosch,bma255.yaml
@@ -32,7 +32,12 @@ properties:
   vddio-supply: true
 
   interrupts:
-    maxItems: 1
+    minItems: 1
+    maxItems: 2
+    description: |
+      The first interrupt listed must be the one connected to the INT1 pin,
+      the second (optional) interrupt listed must be the one connected to the
+      INT2 pin (if available).
As this is a direct copy from the bma180 binding and we are moving devices
from one to the other, we need to support this as the default.
Longer term, from the bma253 datasheet, it look looks the two pins are equally
capable so if we get a board where only the int2 pin is connected then we will
need to use interrupt-names to distinguish the two (as we do in other drivers).
This kind of sounds like a strange board layout in general. But what's
worse is that for some reason even Bosch thought this is a "good" idea
so they released the BMC156 [1]. It works just like the BMC150 but has
only a single interrupt pin. One would expect that would be INT1,
but nope, it's INT2 of course. :-)

I have a device with BMC156 where this is the case, so I guess I need to
make bmc150-accel use INT2 somehow (without specifying INT1). It might
be easiest if we treat this the same way as the case that you mentioned,
i.e. everyone with BMC156 would specify the interrupt-names explicitly
to have a consistent meaning of the device tree.

[1]: https://www.mouser.de/datasheet/2/783/BST-BMC156-DS000-1509546.pdf
Another thing to note is that we don't have to have separate binding docs just
because we have separate drivers. At somepoint we might want to consider just
fusing the two docs.
 
Good point! I might do that together with the BMC156 changes. :)

Thanks!
Stephan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help