On Sun, 7 Oct 2018 16:18:08 +0100
Jonathan Cameron <[email protected]> wrote:

> On Tue,  2 Oct 2018 22:38:11 +0800
> Song Qiang <[email protected]> wrote:
> 
> > Signed-off-by: Song Qiang <[email protected]>
> > ---
> >  .../bindings/iio/magnetometer/pni,rm3100.txt  | 20 +++++++++++++++++++
> >  1 file changed, 20 insertions(+)
> >  create mode 100644 
> > Documentation/devicetree/bindings/iio/magnetometer/pni,rm3100.txt
> > 
> > diff --git 
> > a/Documentation/devicetree/bindings/iio/magnetometer/pni,rm3100.txt 
> > b/Documentation/devicetree/bindings/iio/magnetometer/pni,rm3100.txt
> > new file mode 100644
> > index 000000000000..4677690fc5d0
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/iio/magnetometer/pni,rm3100.txt
> > @@ -0,0 +1,20 @@
> > +* PNI RM3100 3-axis magnetometer sensor
> > +
> > +Required properties:
> > +
> > +- compatible : should be "pni,rm3100"
> > +- reg : the I2C address or SPI chip select number of the sensor.
> > +
> > +Optional properties:
> > +
> > +- interrupts: data ready (DRDY) from the chip.
> > +  The interrupts can be triggered on rising edges.  
> From Phil's response this appears to be incorrect and
> it's actually a level sensitive interrupt.
> I haven't checked the data sheet to confirm this.
> 
> That'll bring all sorts of pain if you have a host that can only
> do edge sensitive so I'm hoping that's not true for you
> (edge sensitive only interrupts on hosts are pretty unusual
> though it cause me a lot of problems when I started out
> with IIO years ago :(
> 
> The docs aren't super clear on this.  The subtlety is
> whether there is a guaranteed 'low' time between reading the
> data and it going high again due to another reading.  This usually
> only matters if you are running very quickly though so may be
> fine here.
> 
> This will only become relevant with continuous mode if you
> add support for that later (I think!)
I realised just after I sent this that I was being unclear.

If you aren't doing continuous mode and hence have a fairly
strong guarantee of a decent gap between reads, you may be
able to get away with supporting either LEVEL or EDGE
interrupts.  In continuous mode, it is necessary to have
a minimum low time for EDGE interrupts to work.

Jonathan
> 
> Jonathan
> 
> > +
> > +Example:
> > +
> > +rm3100: rm3100@20 {
> > +   compatible = "pni,rm3100";
> > +   reg = <0x20>;
> > +   interrupt-parent = <&gpio0>;
> > +   interrupts = <4 IRQ_TYPE_EDGE_RISING>;
> > +};  
> 

Reply via email to