Message ID | 20191010175648.10830-2-rjones@gateworks.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio: imu: add support for FXOS8700 | expand |
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@gateworks.com> > --- > .../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'. > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Freescale FXOS8700 Inertial Measurement Unit > + > +maintainers: > + - Robert Jones <rjones@gateworks.com> > + > +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 ] > + > + 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... > + > + interrupt-parent = <&gpio2>; > + spi-max-frequency = <1000000> > + interrupts = <7 IRQ_TYPE_EDGE_RISING>; > + interrupt-names = "INT1"; > + }; > + }; > -- > 2.9.2 >
On Fri, Oct 11, 2019 at 6:58 AM Rob Herring <robh@kernel.org> 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@gateworks.com> > > --- > > .../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@gateworks.com> > > + > > +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 > >
On Fri, Oct 11, 2019 at 6:33 PM Bobby Jones <rjones@gateworks.com> wrote: > > On Fri, Oct 11, 2019 at 6:58 AM Rob Herring <robh@kernel.org> 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@gateworks.com> > > > --- > > > .../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. Thanks for the input, will add something. > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: Freescale FXOS8700 Inertial Measurement Unit > > > + > > > +maintainers: > > > + - Robert Jones <rjones@gateworks.com> > > > + > > > +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 Yes, that's good. Rob
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# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale FXOS8700 Inertial Measurement Unit + +maintainers: + - Robert Jones <rjones@gateworks.com> + +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 + + 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>; + + interrupt-parent = <&gpio2>; + spi-max-frequency = <1000000> + interrupts = <7 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "INT1"; + }; + };
This adds documentation for the Freescale FXOS8700 Inertial Measurement Unit device-tree bindings. Signed-off-by: Robert Jones <rjones@gateworks.com> --- .../devicetree/bindings/iio/imu/nxp,fxos8700.yaml | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/imu/nxp,fxos8700.yaml