2021-08-09 09:52:44

by Puranjay Mohan

[permalink] [raw]
Subject: [RESEND PATCH v9 0/2] iio: accel: add support for ADXL355

Add the dt-bindings and the driver for ADXL355 3-axis MEMS Accelerometer.

Changes since v8:
1. Make scale and offset defines inline and remove them.
2. Change dt-binding doc to state interrupt polarity only for DRDY pin.
3. Remove triggered buffer support from this patch series.

Changes since v7:
1. Update MAINTAINERS to show all driver files.
2. Set CONFIGS for buffered support in Kconfig.

Changes since v6:
1. Use interrupt-names property in device tree document.
2. Add triggered buffer support.
3. Use a static table for offset and data registers.
4. Fix coding style issues.
5. move defines from header to c file.

Changes since v5:
1. Used get_unaligned_be24() and get_unaligned_be16() to parse
acceleration and temperature data. This solves sparse errors and also
make the code more understandable.

Changes since v4:
1. Fix errors reported by sparse.

Changes since v3:
1. Fix errors in yaml DT doc.
2. Change SPDX-License-Identifier to GPL-2.0-only OR BSD-2-Clause

Changes since v2:
1. Add separate DT binding doc in yaml.
2. Use ____cacheline_aligned buffer for regmap_bulk_read/write calls.
3. Make code consistent by using same style in switch case.
4. Use FIELD_PREP in place of custom macros.
5. Make Kconfig description more informative.

Changes since v1:
1. Remove the declarations for static regmap structures from adxl355.h.
This was missed in the v1 and caused errors.
2. Make switch case statements consistent by directly returning from
each case rather than saving the return in a variable.
3. Some coding style changes.

Changes since v0:
1. Move adxl355_hpf_3db_table to adxl355_data structure. This is done to make
sure that each device gets its own table.
2. Make local regmap definitions private to adxl355_core.c.
3. Other minor coding style changes.

Puranjay Mohan (2):
dt-bindings: iio: accel: Add DT binding doc for ADXL355
iio: accel: Add driver support for ADXL355

.../bindings/iio/accel/adi,adxl355.yaml | 88 +++
MAINTAINERS | 10 +
drivers/iio/accel/Kconfig | 29 +
drivers/iio/accel/Makefile | 3 +
drivers/iio/accel/adxl355.h | 19 +
drivers/iio/accel/adxl355_core.c | 578 ++++++++++++++++++
drivers/iio/accel/adxl355_i2c.c | 64 ++
drivers/iio/accel/adxl355_spi.c | 67 ++
8 files changed, 858 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adxl355.yaml
create mode 100644 drivers/iio/accel/adxl355.h
create mode 100644 drivers/iio/accel/adxl355_core.c
create mode 100644 drivers/iio/accel/adxl355_i2c.c
create mode 100644 drivers/iio/accel/adxl355_spi.c

--
2.30.1


2021-08-09 09:52:52

by Puranjay Mohan

[permalink] [raw]
Subject: [RESEND PATCH v9 1/2] dt-bindings: iio: accel: Add DT binding doc for ADXL355

Add devicetree binding document for ADXL355, a 3-Axis MEMS Accelerometer.

Signed-off-by: Puranjay Mohan <[email protected]>
---
.../bindings/iio/accel/adi,adxl355.yaml | 88 +++++++++++++++++++
1 file changed, 88 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adxl355.yaml

diff --git a/Documentation/devicetree/bindings/iio/accel/adi,adxl355.yaml b/Documentation/devicetree/bindings/iio/accel/adi,adxl355.yaml
new file mode 100644
index 000000000..ba54d6998
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/accel/adi,adxl355.yaml
@@ -0,0 +1,88 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/accel/adi,adxl355.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices ADXL355 3-Axis, Low noise MEMS Accelerometer
+
+maintainers:
+ - Puranjay Mohan <[email protected]>
+
+description: |
+ Analog Devices ADXL355 3-Axis, Low noise MEMS Accelerometer that supports
+ both I2C & SPI interfaces
+ https://www.analog.com/en/products/adxl355.html
+
+properties:
+ compatible:
+ enum:
+ - adi,adxl355
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ minItems: 1
+ maxItems: 3
+ description: |
+ Type for DRDY should be IRQ_TYPE_EDGE_RISING.
+ Three configurable interrupt lines exist.
+
+ interrupt-names:
+ description: Specify which interrupt line is in use.
+ items:
+ enum:
+ - INT1
+ - INT2
+ - DRDY
+ minItems: 1
+ maxItems: 3
+
+ vdd-supply:
+ description: Regulator that provides power to the sensor
+
+ vddio-supply:
+ description: Regulator that provides power to the bus
+
+ spi-max-frequency: true
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* Example for a I2C device node */
+ accelerometer@1d {
+ compatible = "adi,adxl355";
+ reg = <0x1d>;
+ interrupt-parent = <&gpio>;
+ interrupts = <25 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "DRDY";
+ };
+ };
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ accelerometer@0 {
+ compatible = "adi,adxl355";
+ reg = <0>;
+ spi-max-frequency = <1000000>;
+ interrupt-parent = <&gpio>;
+ interrupts = <25 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "DRDY";
+ };
+ };
--
2.30.1

2021-08-09 21:05:35

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [RESEND PATCH v9 0/2] iio: accel: add support for ADXL355

On Mon, 9 Aug 2021 13:37:27 +0530
Puranjay Mohan <[email protected]> wrote:

> Add the dt-bindings and the driver for ADXL355 3-axis MEMS Accelerometer.

Hi Puranjay,

So these both look fine to me (subject to that tiny cleanup in patch 2
that I'll do whilst applying). Now we need to give time for a device
tree review. It's in their patchwork instance and passing the tests
so Rob will get to it fairly soon.

https://patchwork.ozlabs.org/project/devicetree-bindings/patch/[email protected]/

Jonathan

>
> Changes since v8:
> 1. Make scale and offset defines inline and remove them.
> 2. Change dt-binding doc to state interrupt polarity only for DRDY pin.
> 3. Remove triggered buffer support from this patch series.
>
> Changes since v7:
> 1. Update MAINTAINERS to show all driver files.
> 2. Set CONFIGS for buffered support in Kconfig.
>
> Changes since v6:
> 1. Use interrupt-names property in device tree document.
> 2. Add triggered buffer support.
> 3. Use a static table for offset and data registers.
> 4. Fix coding style issues.
> 5. move defines from header to c file.
>
> Changes since v5:
> 1. Used get_unaligned_be24() and get_unaligned_be16() to parse
> acceleration and temperature data. This solves sparse errors and also
> make the code more understandable.
>
> Changes since v4:
> 1. Fix errors reported by sparse.
>
> Changes since v3:
> 1. Fix errors in yaml DT doc.
> 2. Change SPDX-License-Identifier to GPL-2.0-only OR BSD-2-Clause
>
> Changes since v2:
> 1. Add separate DT binding doc in yaml.
> 2. Use ____cacheline_aligned buffer for regmap_bulk_read/write calls.
> 3. Make code consistent by using same style in switch case.
> 4. Use FIELD_PREP in place of custom macros.
> 5. Make Kconfig description more informative.
>
> Changes since v1:
> 1. Remove the declarations for static regmap structures from adxl355.h.
> This was missed in the v1 and caused errors.
> 2. Make switch case statements consistent by directly returning from
> each case rather than saving the return in a variable.
> 3. Some coding style changes.
>
> Changes since v0:
> 1. Move adxl355_hpf_3db_table to adxl355_data structure. This is done to make
> sure that each device gets its own table.
> 2. Make local regmap definitions private to adxl355_core.c.
> 3. Other minor coding style changes.
>
> Puranjay Mohan (2):
> dt-bindings: iio: accel: Add DT binding doc for ADXL355
> iio: accel: Add driver support for ADXL355
>
> .../bindings/iio/accel/adi,adxl355.yaml | 88 +++
> MAINTAINERS | 10 +
> drivers/iio/accel/Kconfig | 29 +
> drivers/iio/accel/Makefile | 3 +
> drivers/iio/accel/adxl355.h | 19 +
> drivers/iio/accel/adxl355_core.c | 578 ++++++++++++++++++
> drivers/iio/accel/adxl355_i2c.c | 64 ++
> drivers/iio/accel/adxl355_spi.c | 67 ++
> 8 files changed, 858 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adxl355.yaml
> create mode 100644 drivers/iio/accel/adxl355.h
> create mode 100644 drivers/iio/accel/adxl355_core.c
> create mode 100644 drivers/iio/accel/adxl355_i2c.c
> create mode 100644 drivers/iio/accel/adxl355_spi.c
>