On Fri, Oct 11, 2019 at 6:58 AM Rob Herring <robh@xxxxxxxxxx> wrote: > > On Thu, Oct 10, 2019 at 10:56:47AM -0700, Robert Jones wrote: > > This adds documentation for the Freescale FXOS8700 Inertial Measurement Unit > > device-tree bindings. > > > > Signed-off-by: Robert Jones <rjones@xxxxxxxxxxxxx> > > --- > > .../devicetree/bindings/iio/imu/nxp,fxos8700.yaml | 69 ++++++++++++++++++++++ > > 1 file changed, 69 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/iio/imu/nxp,fxos8700.yaml > > > > diff --git a/Documentation/devicetree/bindings/iio/imu/nxp,fxos8700.yaml b/Documentation/devicetree/bindings/iio/imu/nxp,fxos8700.yaml > > new file mode 100644 > > index 0000000..d33a1cc > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/iio/imu/nxp,fxos8700.yaml > > @@ -0,0 +1,69 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/iio/imu/fxos8700.yaml# > > Documentation/devicetree/bindings/iio/imu/nxp,fxos8700.yaml: $id: > path/filename 'iio/imu/fxos8700.yaml' doesn't match actual filename > > Test your binding with 'make dt_binding_check'. Sorry about that, I had tried running that check previously but was struggling through some python environment/set-up problems. Additionally I did not realize that my path was incomplete until I read your github's readme line "Ensure ~/.local/bin is in the PATH". I don't utilize the python install on my machine frequently so I'm not sure if that should be obvious. It might be helpful to have that line in the Documentation/devicetree/writing-schema.md as well. Anyways I've got it running now. > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Freescale FXOS8700 Inertial Measurement Unit > > + > > +maintainers: > > + - Robert Jones <rjones@xxxxxxxxxxxxx> > > + > > +description: | > > + Accelerometer and magnetometer combo device with an i2c and SPI interface. > > + https://www.nxp.com/products/sensors/motion-sensors/6-axis/digital-motion-sensor-3d-accelerometer-2g-4g-8g-plus-3d-magnetometer:FXOS8700CQ > > + > > +properties: > > + compatible: > > + enum: > > + - nxp,fxos8700 > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 2 > > + > > + interrupt-names: > > + maxItems: 2 > > + items: > > + - const: INT1 > > + - const: INT2 > > This doesn't match the example now. You need 'minItems: 1' if you need > to support 1 or 2 interrupts. If it can be either one, then you need: > > items: > enum: [ INT1, INT2 ] I'm trying to compare against other .yaml examples in the tree but without scouring datasheets to find a device with similar interrupt capabilities I'm just guessing at how this should be defined. The device has 2 interrupt pins as you've read (INT1 and INT2), and 0-2 of them can be used depending on what's been configured. Given what you've explained so far would this be the proper definition?: interrupts: minItems: 1 maxItems: 2 interrupt-names: minItems: 1 maxItems: 2 items: enum: - INT1 - INT2 Thanks > > > + > > + drive-open-drain: > > + type: boolean > > + > > +required: > > + - compatible > > + - reg > > + > > +examples: > > + - | > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + fxos8700@1e { > > + compatible = "nxp,fxos8700"; > > + reg = <0x1e>; > > + > > + interrupt-parent = <&gpio2>; > > + interrupts = <7 IRQ_TYPE_EDGE_RISING>; > > + interrupt-names = "INT1"; > > + }; > > + }; > > + - | > > + spi { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + fxos8700@1e { > > + compatible = "nxp,fxos8700"; > > + reg = <0x1e>; > > I guess you could have SPI chip select # 30... Absolutely, and definitely not a hasty copy and paste error :) > > > + > > + interrupt-parent = <&gpio2>; > > + spi-max-frequency = <1000000> > > + interrupts = <7 IRQ_TYPE_EDGE_RISING>; > > + interrupt-names = "INT1"; > > + }; > > + }; > > -- > > 2.9.2 > >