From: Rob Herring <robh@kernel.org>
To: Md Shofiqul Islam <shofiqtest@gmail.com>
Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com,
andy@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
krzk@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] dt-bindings: iio: accel: Convert lis302 binding to YAML schema
Date: Wed, 10 Jun 2026 14:20:34 -0500 [thread overview]
Message-ID: <20260610192034.GA626285-robh@kernel.org> (raw)
In-Reply-To: <20260610110051.1228-1-shofiqtest@gmail.com>
On Wed, Jun 10, 2026 at 02:00:51PM +0300, Md Shofiqul Islam wrote:
> Convert the STMicroelectronics LIS302DL/LIS3LV02D accelerometer device
> tree binding from plain text format to YAML schema format.
>
> The binding covers two variants matched via their respective bus drivers:
> - SPI: st,lis302dl-spi (drivers/misc/lis3lv02d/lis3lv02d_spi.c)
> - I2C: st,lis3lv02d (drivers/misc/lis3lv02d/lis3lv02d_i2c.c)
>
> Document all vendor-specific properties read by the driver via
> of_property_read_*(), including click detection, IRQ routing, free-fall/
> wake-up engines, high-pass filtering, axis remapping, output data rate,
> and self-test limits.
>
> Also correct the click threshold property names: the driver reads
> "st,click-threshold-{x,y,z}" but the old .txt documented them as
> "st,click-thresh-{x,y,z}".
>
> Validated with: make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/iio/accel/st,lis302dl.yaml
>
> Signed-off-by: Md Shofiqul Islam <shofiqtest@gmail.com>
> ---
> .../devicetree/bindings/iio/accel/lis302.txt | 119 ------
> .../bindings/iio/accel/st,lis302dl.yaml | 343 ++++++++++++++++++
> 2 files changed, 343 insertions(+), 119 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/iio/accel/lis302.txt
> create mode 100644 Documentation/devicetree/bindings/iio/accel/st,lis302dl.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/accel/lis302.txt b/Documentation/devicetree/bindings/iio/accel/lis302.txt
> deleted file mode 100644
> index 457539647f36..000000000000
> --- a/Documentation/devicetree/bindings/iio/accel/lis302.txt
> +++ /dev/null
> @@ -1,119 +0,0 @@
> -LIS302 accelerometer devicetree bindings
> -
> -This device is matched via its bus drivers, and has a number of properties
> -that apply in on the generic device (independent from the bus).
> -
> -
> -Required properties for the SPI bindings:
> - - compatible: should be set to "st,lis3lv02d-spi"
> - - reg: the chipselect index
> - - spi-max-frequency: maximal bus speed, should be set to 1000000 unless
> - constrained by external circuitry
> - - interrupts: the interrupt generated by the device
> -
> -Required properties for the I2C bindings:
> - - compatible: should be set to "st,lis3lv02d"
> - - reg: i2c slave address
> - - Vdd-supply: The input supply for Vdd
> - - Vdd_IO-supply: The input supply for Vdd_IO
> -
> -
> -Optional properties for all bus drivers:
> -
> - - st,click-single-{x,y,z}: if present, tells the device to issue an
> - interrupt on single click events on the
> - x/y/z axis.
> - - st,click-double-{x,y,z}: if present, tells the device to issue an
> - interrupt on double click events on the
> - x/y/z axis.
> - - st,click-thresh-{x,y,z}: set the x/y/z axis threshold
> - - st,click-click-time-limit: click time limit, from 0 to 127.5msec
> - with step of 0.5 msec
> - - st,click-latency: click latency, from 0 to 255 msec with
> - step of 1 msec.
> - - st,click-window: click window, from 0 to 255 msec with
> - step of 1 msec.
> - - st,irq{1,2}-disable: disable IRQ 1/2
> - - st,irq{1,2}-ff-wu-1: raise IRQ 1/2 on FF_WU_1 condition
> - - st,irq{1,2}-ff-wu-2: raise IRQ 1/2 on FF_WU_2 condition
> - - st,irq{1,2}-data-ready: raise IRQ 1/2 on data ready condition
> - - st,irq{1,2}-click: raise IRQ 1/2 on click condition
> - - st,irq-open-drain: consider IRQ lines open-drain
> - - st,irq-active-low: make IRQ lines active low
> - - st,wu-duration-1: duration register for Free-Fall/Wake-Up
> - interrupt 1
> - - st,wu-duration-2: duration register for Free-Fall/Wake-Up
> - interrupt 2
> - - st,wakeup-{x,y,z}-{lo,hi}: set wakeup condition on x/y/z axis for
> - upper/lower limit
> - - st,wakeup-threshold: set wakeup threshold
> - - st,wakeup2-{x,y,z}-{lo,hi}: set wakeup condition on x/y/z axis for
> - upper/lower limit for second wakeup
> - engine.
> - - st,wakeup2-threshold: set wakeup threshold for second wakeup
> - engine.
> - - st,highpass-cutoff-hz=: 1, 2, 4 or 8 for 1Hz, 2Hz, 4Hz or 8Hz of
> - highpass cut-off frequency
> - - st,hipass{1,2}-disable: disable highpass 1/2.
> - - st,default-rate=: set the default rate
> - - st,axis-{x,y,z}=: set the axis to map to the three coordinates.
> - Negative values can be used for inverted axis.
> - - st,{min,max}-limit-{x,y,z} set the min/max limits for x/y/z axis
> - (used by self-test)
> -
> -
> -Example for a SPI device node:
> -
> - accelerometer@0 {
> - compatible = "st,lis302dl-spi";
> - reg = <0>;
> - spi-max-frequency = <1000000>;
> - interrupt-parent = <&gpio>;
> - interrupts = <104 0>;
> -
> - st,click-single-x;
> - st,click-single-y;
> - st,click-single-z;
> - st,click-thresh-x = <10>;
> - st,click-thresh-y = <10>;
> - st,click-thresh-z = <10>;
> - st,irq1-click;
> - st,irq2-click;
> - st,wakeup-x-lo;
> - st,wakeup-x-hi;
> - st,wakeup-y-lo;
> - st,wakeup-y-hi;
> - st,wakeup-z-lo;
> - st,wakeup-z-hi;
> - };
> -
> -Example for a I2C device node:
> -
> - lis331dlh: accelerometer@18 {
> - compatible = "st,lis331dlh", "st,lis3lv02d";
> - reg = <0x18>;
> - Vdd-supply = <&lis3_reg>;
> - Vdd_IO-supply = <&lis3_reg>;
> -
> - st,click-single-x;
> - st,click-single-y;
> - st,click-single-z;
> - st,click-thresh-x = <10>;
> - st,click-thresh-y = <10>;
> - st,click-thresh-z = <10>;
> - st,irq1-click;
> - st,irq2-click;
> - st,wakeup-x-lo;
> - st,wakeup-x-hi;
> - st,wakeup-y-lo;
> - st,wakeup-y-hi;
> - st,wakeup-z-lo;
> - st,wakeup-z-hi;
> - st,min-limit-x = <120>;
> - st,min-limit-y = <120>;
> - st,min-limit-z = <140>;
> - st,max-limit-x = <550>;
> - st,max-limit-y = <550>;
> - st,max-limit-z = <750>;
> - };
> -
> diff --git a/Documentation/devicetree/bindings/iio/accel/st,lis302dl.yaml b/Documentation/devicetree/bindings/iio/accel/st,lis302dl.yaml
> new file mode 100644
> index 000000000000..befc419f7f39
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/accel/st,lis302dl.yaml
> @@ -0,0 +1,343 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/accel/st,lis302dl.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: STMicroelectronics LIS302DL/LIS3LV02D 3-Axis Accelerometer
> +
> +maintainers:
> + - Jonathan Cameron <jic23@kernel.org>
> +
> +description: |
> + STMicroelectronics LIS302DL (SPI) and LIS3LV02D (I2C) 3-axis MEMS
> + accelerometers. Supports click detection, free-fall/wake-up interrupts,
> + high-pass filtering, axis remapping, and self-test functions.
> +
> + Driver located at drivers/misc/lis3lv02d/.
Bindings are independent from a driver, so drop this.
> +
> +properties:
> + compatible:
> + enum:
> + - st,lis302dl-spi
> + - st,lis3lv02d
These compatibles are already present in st,st-sensors.yaml. The long
list of properties are not. Probably need to drop them from
st,st-sensors.yaml.
I would suggest you remove anything here (compatibles and
properties) that is not used on the 1 platform using this binding. If
there's no platform using I2C interface, then that could be removed from
the driver too.
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + Vdd-supply:
> + description: Main power supply regulator (I2C variant).
> +
> + Vdd_IO-supply:
> + description: I/O power supply regulator (I2C variant).
> +
> + st,click-single-x:
> + type: boolean
> + description: Enable single-click detection on X axis.
> +
> + st,click-double-x:
> + type: boolean
> + description: Enable double-click detection on X axis.
> +
> + st,click-single-y:
> + type: boolean
> + description: Enable single-click detection on Y axis.
> +
> + st,click-double-y:
> + type: boolean
> + description: Enable double-click detection on Y axis.
> +
> + st,click-single-z:
> + type: boolean
> + description: Enable single-click detection on Z axis.
> +
> + st,click-double-z:
> + type: boolean
> + description: Enable double-click detection on Z axis.
> +
> + st,click-threshold-x:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Click detection threshold for X axis.
> +
> + st,click-threshold-y:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Click detection threshold for Y axis.
> +
> + st,click-threshold-z:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Click detection threshold for Z axis.
> +
> + st,click-time-limit:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Click time limit, 0 to 127.5 ms in 0.5 ms steps.
> +
> + st,click-latency:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Click latency, 0 to 255 ms in 1 ms steps.
> +
> + st,click-window:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Click window, 0 to 255 ms in 1 ms steps.
> +
> + st,irq1-disable:
> + type: boolean
> + description: Disable IRQ1 pin.
> +
> + st,irq1-ff-wu-1:
> + type: boolean
> + description: Route free-fall/wake-up 1 event to IRQ1 pin.
> +
> + st,irq1-ff-wu-2:
> + type: boolean
> + description: Route free-fall/wake-up 2 event to IRQ1 pin.
> +
> + st,irq1-data-ready:
> + type: boolean
> + description: Route data-ready event to IRQ1 pin.
> +
> + st,irq1-click:
> + type: boolean
> + description: Route click event to IRQ1 pin.
> +
> + st,irq2-disable:
> + type: boolean
> + description: Disable IRQ2 pin.
> +
> + st,irq2-ff-wu-1:
> + type: boolean
> + description: Route free-fall/wake-up 1 event to IRQ2 pin.
> +
> + st,irq2-ff-wu-2:
> + type: boolean
> + description: Route free-fall/wake-up 2 event to IRQ2 pin.
> +
> + st,irq2-data-ready:
> + type: boolean
> + description: Route data-ready event to IRQ2 pin.
> +
> + st,irq2-click:
> + type: boolean
> + description: Route click event to IRQ2 pin.
> +
> + st,irq-open-drain:
> + type: boolean
> + description: Configure IRQ lines as open-drain.
> +
> + st,irq-active-low:
> + type: boolean
> + description: Configure IRQ lines as active-low.
> +
> + st,wu-duration-1:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Duration register for free-fall/wake-up interrupt 1.
> +
> + st,wu-duration-2:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Duration register for free-fall/wake-up interrupt 2.
> +
> + st,wakeup-x-lo:
> + type: boolean
> + description: Enable wake-up on X axis lower threshold crossing.
> +
> + st,wakeup-x-hi:
> + type: boolean
> + description: Enable wake-up on X axis upper threshold crossing.
> +
> + st,wakeup-y-lo:
> + type: boolean
> + description: Enable wake-up on Y axis lower threshold crossing.
> +
> + st,wakeup-y-hi:
> + type: boolean
> + description: Enable wake-up on Y axis upper threshold crossing.
> +
> + st,wakeup-z-lo:
> + type: boolean
> + description: Enable wake-up on Z axis lower threshold crossing.
> +
> + st,wakeup-z-hi:
> + type: boolean
> + description: Enable wake-up on Z axis upper threshold crossing.
> +
> + st,wakeup-threshold:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Threshold for wake-up engine 1.
> +
> + st,wakeup2-x-lo:
> + type: boolean
> + description: Enable wake-up engine 2 on X axis lower threshold.
> +
> + st,wakeup2-x-hi:
> + type: boolean
> + description: Enable wake-up engine 2 on X axis upper threshold.
> +
> + st,wakeup2-y-lo:
> + type: boolean
> + description: Enable wake-up engine 2 on Y axis lower threshold.
> +
> + st,wakeup2-y-hi:
> + type: boolean
> + description: Enable wake-up engine 2 on Y axis upper threshold.
> +
> + st,wakeup2-z-lo:
> + type: boolean
> + description: Enable wake-up engine 2 on Z axis lower threshold.
> +
> + st,wakeup2-z-hi:
> + type: boolean
> + description: Enable wake-up engine 2 on Z axis upper threshold.
> +
> + st,wakeup2-threshold:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Threshold for wake-up engine 2.
> +
> + st,highpass-cutoff-hz:
> + enum: [1, 2, 4, 8]
> + description: High-pass filter cut-off frequency in Hz.
> +
> + st,hipass1-disable:
> + type: boolean
> + description: Disable high-pass filter 1.
> +
> + st,hipass2-disable:
> + type: boolean
> + description: Disable high-pass filter 2.
> +
> + st,axis-x:
> + $ref: /schemas/types.yaml#/definitions/int32
> + description: |
Don't need '|'.
> + Map physical X axis. Negative values invert the direction.
> + Valid range -3 to 3, excluding 0.
Define the range with schema, not free form text.
Rob
next prev parent reply other threads:[~2026-06-10 19:20 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-10 11:00 [PATCH] dt-bindings: iio: accel: Convert lis302 binding to YAML schema Md Shofiqul Islam
2026-06-10 11:16 ` sashiko-bot
2026-06-10 15:56 ` Jonathan Cameron
2026-06-10 16:40 ` Conor Dooley
2026-06-10 19:23 ` Rob Herring
2026-06-10 19:20 ` Rob Herring [this message]
2026-06-11 0:33 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260610192034.GA626285-robh@kernel.org \
--to=robh@kernel.org \
--cc=andy@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=shofiqtest@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox