On Tue, 7 Dec 2021 09:58:16 +0200 Cosmin Tanislav <demonsingur@xxxxxxxxx> wrote: > On 12/6/21 21:31, Cosmin Tanislav wrote: > > > > > > On 12/6/21 16:39, Jonathan Cameron wrote: > >> On Mon, 6 Dec 2021 12:54:02 +0200 > >> Cosmin Tanislav <demonsingur@xxxxxxxxx> wrote: > >> > >>> The ADXL367 is an ultralow power, 3-axis MEMS accelerometer. > >>> > >>> The ADXL367 does not alias input signals to achieve ultralow power > >>> consumption, it samples the full bandwidth of the sensor at all > >>> data rates. Measurement ranges of +-2g, +-4g, and +-8g are available, > >>> with a resolution of 0.25mg/LSB on the +-2 g range. > >>> > >>> In addition to its ultralow power consumption, the ADXL367 > >>> has many features to enable true system level power reduction. > >>> It includes a deep multimode output FIFO, a built-in micropower > >>> temperature sensor, and an internal ADC for synchronous conversion > >>> of an additional analog input. > >>> > >>> Signed-off-by: Cosmin Tanislav <cosmin.tanislav@xxxxxxxxxx> > >> > >> Hi Cosmin, > >> > >> Given how often we get patches later to add regulators for devices like > >> these I'd like them supported from the start. > >> > >> I'm guessing it needs power, but how many supplies? I'm not sure as > >> doesn't > >> seem to be a public datasheet yet. > > > > I'll add them. For the note, it has two supplies, one being the main one > > and another one for the io. > > > > One question I have is whether I should disable the regulators on system > suspend. If I do, I should also use a regmap cache so I can re-apply all > registers on resume... Ideally yes, but often first implementation just turns them off on probe / remove. Can add fancy stuff later :) Jonathan > > >> > >>> --- > >>> .../bindings/iio/accel/adi,adxl367.yaml | 79 +++++++++++++++++++ > >>> 1 file changed, 79 insertions(+) > >>> create mode 100644 > >>> Documentation/devicetree/bindings/iio/accel/adi,adxl367.yaml > >>> > >>> diff --git > >>> a/Documentation/devicetree/bindings/iio/accel/adi,adxl367.yaml > >>> b/Docu`mentation/devicetree/bindings/iio/accel/adi,adxl367.yaml > >>> new file mode 100644 > >>> index 000000000000..1bf9e1602480 > >>> --- /dev/null > >>> +++ b/Documentation/devicetree/bindings/iio/accel/adi,adxl367.yaml > >>> @@ -0,0 +1,79 @@ > >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > >>> +%YAML 1.2 > >>> +--- > >>> +$id: http://devicetree.org/schemas/iio/accel/adi,adxl367.yaml# > >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# > >>> + > >>> +title: Analog Devices ADXL367 3-Axis Digital Accelerometer > >>> + > >>> +maintainers: > >>> + - Cosmin Tanislav <cosmin.tanislav@xxxxxxxxxx> > >>> + > >>> +description: | > >>> + The ADXL367 is an ultralow power, 3-axis MEMS accelerometer. > >>> + > >>> + The ADXL367 does not alias input signals by to achieve ultralow power > >>> + consumption, it samples the full bandwidth of the sensor at all > >>> + data rates. Measurement ranges of +-2g, +-4g, and +-8g are available, > >>> + with a resolution of 0.25mg/LSB on the +-2 g range. > >>> + > >>> + In addition to its ultralow power consumption, the ADXL367 > >>> + has many features to enable true system level power reduction. > >>> + It includes a deep multimode output FIFO, a built-in micropower > >>> + temperature sensor, and an internal ADC for synchronous conversion > >>> + of an additional analog input. > >>> + https://www.analog.com/en/products/adxl367.html > >> > >> "We can't find that page". I guess this driver is running slightly ahead > >> of the datasheet being made public. > > > > Yeah, the datasheet and product page isn't out yet. > > > >> > >>> + > >>> +properties: > >>> + compatible: > >>> + enum: > >>> + - adi,adxl367 > >>> + > >>> + reg: > >>> + maxItems: 1 > >>> + > >>> + interrupts: > >>> + maxItems: 1 > >> > >> spi-max-frequency: true > >> > >> to fix the issue Rob's bot reported. > >> > >>> + > >>> +required: > >>> + - compatible > >>> + - reg > >>> + - interrupts > >>> + > >>> +additionalProperties: false > >>> + > >>> +examples: > >>> + - | > >>> + #include <dt-bindings/gpio/gpio.h> > >>> + #include <dt-bindings/interrupt-controller/irq.h> > >>> + > >>> + i2c { > >>> + #address-cells = <1>; > >>> + #size-cells = <0>; > >>> + > >>> + adxl367@53 { > >>> + compatible = "adi,adxl367"; > >>> + reg = <0x53>; > >>> + interrupt-parent = <&gpio>; > >>> + interrupts = <25 IRQ_TYPE_EDGE_RISING>; > >>> + }; > >>> + }; > >>> + - | > >>> + #include <dt-bindings/gpio/gpio.h> > >>> + #include <dt-bindings/interrupt-controller/irq.h> > >>> + > >>> + spi { > >>> + #address-cells = <1>; > >>> + #size-cells = <0>; > >>> + > >>> + cs-gpios = <&gpio 17 GPIO_ACTIVE_LOW>; > >>> + status = "okay"; > >> > >> We don't normally list status in example bindings. > >> Also, the cs-gpio is part of the spi master binding > >> so no need to have it here as we are showing how the > >> actual device binding works. > >> > >> That should let you drop the gpio.h header. > >> > > Interestingly, you forgot to say this for my AD74413R driver. > > > >> > >>> + > >>> + adxl367@0 { > >>> + compatible = "adi,adxl367"; > >>> + reg = <0>; > >>> + spi-max-frequency = <1000000>; > >>> + interrupt-parent = <&gpio>; > >>> + interrupts = <25 IRQ_TYPE_EDGE_RISING>; > >>> + }; > >>> + }; > >>