Re: [PATCH v6 1/2] dt-bindings: iio: accel: Add DT binding doc for ADXL355

From: Jonathan Cameron
Date: Sat Jul 31 2021 - 11:05:33 EST


On Wed, 28 Jul 2021 12:04:29 +0530
Puranjay Mohan <puranjay12@xxxxxxxxx> wrote:

> Add devicetree binding document for ADXL355, a 3-Axis MEMS Accelerometer.
>
> Signed-off-by: Puranjay Mohan <puranjay12@xxxxxxxxx>
Hi Puranjay,

Biggest comment in here is we should look to make the interrupt description
more flexible. Board designers have an annoying habit of only wiring some
of the interrupts and not always the ones we would expect.

Jonathan

> ---
> .../bindings/iio/accel/adi,adxl355.yaml | 76 +++++++++++++++++++
> 1 file changed, 76 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..6e0652ce8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/accel/adi,adxl355.yaml
> @@ -0,0 +1,76 @@
> +# 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 <puranjay12@xxxxxxxxx>
> +
> +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
> + items:
> + - description: DRDY PIN
> + - description: INT1 PIN
> + - description: INT2 PIN

Given there are 3 interrupts, and the device can work fine with only a subset
actually wired up, the interrupt-names property should be used to allow
the driver to figure out which ones are specified and we should allow
any combination.

> +
> + 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>
> + i2c0 {
drop the 0 so just
i2c {

What we are doing is indicating it's an i2c bus but we don't care what i2c
bus as that's not the bit we are describing in this binding.

> + #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>;
> + };
> + };
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> + spi0 {

spi {

should be fine.

> + #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>;
> + };
> + };