Re: [RFC 1/2] dt-bindings: iio: imu: Add DT binding doc for BMI323

From: Jonathan Cameron
Date: Tue Oct 10 2023 - 05:00:18 EST


On Sun, 8 Oct 2023 11:54:39 +0530
Jagath Jog J <jagathjog1996@xxxxxxxxx> wrote:

> Hi Jonathan,
>
> Few more questions before sending the next series.
>
> On Sat, Sep 30, 2023 at 9:35 PM Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
> >
> > On Thu, 28 Sep 2023 03:07:22 +0530
> > Jagath Jog J <jagathjog1996@xxxxxxxxx> wrote:
> >
> > > HI Jonathan,
> > >
> > > On Sun, Sep 24, 2023 at 7:07 PM Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
> > > >
> > > > On Mon, 18 Sep 2023 13:33:13 +0530
> > > > Jagath Jog J <jagathjog1996@xxxxxxxxx> wrote:
> > > >
> > > > > Add devicetree description document for Bosch BMI323, a 6-Axis IMU.
> > > > >
> > > > > Signed-off-by: Jagath Jog J <jagathjog1996@xxxxxxxxx>
>
> > > > > + interrupts:
> > > > > + maxItems: 1
> > > > > +
> > > > > + interrupt-names:
> > > > > + enum:
> > > > > + - INT1
> > > > > + - INT2
> > > > > + description: |
> > > > > + set to "INT1" if INT1 pin should be used as interrupt input, set
> > > > > + to "INT2" if INT2 pin should be used instead
> > > >
> > > > Why not both? Sure driver might elect to use only one, but the binding
> > > > describes the hardware not the driver and both might be wired.
> > >
> > > If both interrupt pins are wired, should the DTS file need to define
> > > both of the pins?
> >
> > Yes it should. + we need the names to know which is which.
> > You could rely on order, but it's more flexible to not do so, particularly
> > when you also need to support case where only one is wired.
>
> In the driver, I currently prioritize INT1 over INT2 when checking
> (bmi323_trigger_probe(..)) based on the interrupt-names defined
> in the device tree. However, I'm open to suggestions on the best
> way to ensure that the order doesn't affect the selection process
> when both interrupts are defined in the device tree.

If they are both present it is absolutely fine to pick one in preference
to the other.

>
> Each feature, such as data-ready, watermark, tap, and others, supports
> either INT1 or INT2. Based on the interrupt pin defined in the device tree,
> I configure the all the features accordingly.

That's an implementation choice to do them all based on one interrupt
pin so absolutely fine to do that in the Linux driver, but the dt binding
should allow for other choices as there are sometimes efficiency gains
in doing so.

>
> Regarding your earlier suggestion to have two different controls for
> drive-open-drain, do I need to define sensor-specific drive controls
> in bindings for both interrupt pins?
> for ex: bosch,irq{1,2}-open-drain

Hmm. We do have precedence for a single control e.g.
nxp,fxls8962af.yaml as drive-open-drain. So perhaps just go with that
and if anyone is needs different values we can figure it out later.
pin control (which is where that binding item comes from) seems to have
examples doing much the same. Sets of pins with a single drive-open-drain
entry.

Linus, any comments on this as you've dealt with far more similar cases
than me!

Jonathan

>
> Regards
> Jagath
> >
> >
> > Jonathan
> >
> >