* [PATCH v2 0/3] lis302dl/lis3lv02d: fix click thresholds and add legacy YAML binding
@ 2026-06-11 15:41 Md Shofiqul Islam
2026-06-11 15:41 ` [PATCH v2 1/3] misc: lis3lv02d: set default click detection thresholds Md Shofiqul Islam
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Md Shofiqul Islam @ 2026-06-11 15:41 UTC (permalink / raw)
To: linux-iio, devicetree
Cc: jic23, robh, krzk+dt, conor+dt, linusw, linux-kernel,
Md Shofiqul Islam
This series addresses the review feedback on v1 of the lis302 binding
conversion.
During the audit of upstream board DTS files I found 11 ARM boards
referencing st,lis302dl or st,lis3lv02d. This led to two additional
findings that the v1 patch missed:
1. A longstanding driver bug: the driver reads st,click-threshold-x/y/z
but 5 upstream boards use st,click-thresh-x/y/z (the name from the
old .txt documentation). Those boards have had silent click detection
failures for years because the driver ignores the misspelled property.
Patch 1 fixes this by setting a sensible default of 10 in the driver.
2. Three different compatible strings are used as the primary binding
for different boards: st,lis302dl (Nokia N900), st,lis3lv02d (Nokia
N950/N9, AM335x Pepper), and st,lis302dl-spi (PXA300 Raumfeld).
The v1 patch only included st,lis302dl-spi and st,lis3lv02d.
Changes from v1:
- New patch 1: fix driver click threshold defaults
- New patch 2: remove st,lis302dl-spi and st,lis3lv02d from the
deprecated section of st,st-sensors.yaml (duplicate resolution)
- Patch 3 (binding, formerly the only patch):
- Add prominent WARNING at top of description
- Add st,lis302dl compatible (Nokia N900)
- Document both supply naming conventions (Vdd-supply/Vdd_IO-supply
and vdd-supply/vddio-supply used by N900)
- Add mount-matrix (Nokia N900)
- Mark all click/irq/wakeup/filter properties as deprecated=true
- Add st,click-thresh-x/y/z as deprecated with a note explaining
the misspelling situation
- Remove Jonathan Cameron as maintainer (declined); use Linus Walleij
- Remove driver path reference from description
- Add schema range constraints for axis remapping properties
- Update example to use Nokia N900 (minimal, modern node)
Md Shofiqul Islam (3):
misc: lis3lv02d: set default click detection thresholds
dt-bindings: iio: st,st-sensors: remove lis302dl and lis3lv02d from
deprecated list
dt-bindings: iio: accel: convert lis302 binding to YAML schema (v2)
.../devicetree/bindings/iio/accel/lis302.txt | 119 -------
.../bindings/iio/accel/st,lis302dl.yaml | 320 ++++++++++++++++++
.../bindings/iio/st,st-sensors.yaml | 6 -
drivers/misc/lis3lv02d/lis3lv02d.c | 8 +
4 files changed, 328 insertions(+), 125 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/iio/accel/lis302.txt
create mode 100644 Documentation/devicetree/bindings/iio/accel/st,lis302dl.yaml
--
2.51.1
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH v2 1/3] misc: lis3lv02d: set default click detection thresholds 2026-06-11 15:41 [PATCH v2 0/3] lis302dl/lis3lv02d: fix click thresholds and add legacy YAML binding Md Shofiqul Islam @ 2026-06-11 15:41 ` Md Shofiqul Islam 2026-06-11 15:52 ` sashiko-bot 2026-06-11 15:41 ` [PATCH v2 2/3] dt-bindings: iio: st,st-sensors: remove lis302dl and lis3lv02d from deprecated list Md Shofiqul Islam 2026-06-11 15:41 ` [PATCH v2 3/3] dt-bindings: iio: accel: convert lis302 binding to YAML schema (v2) Md Shofiqul Islam 2 siblings, 1 reply; 7+ messages in thread From: Md Shofiqul Islam @ 2026-06-11 15:41 UTC (permalink / raw) To: linux-iio, devicetree Cc: jic23, robh, krzk+dt, conor+dt, linusw, linux-kernel, Md Shofiqul Islam Several upstream board DTS files use st,click-thresh-x/y/z (the name documented in the old lis302.txt binding), but the driver reads st,click-threshold-x/y/z. As a result those boards have had click detection silently broken since the DT properties were added. Set a default threshold of 10 for all three axes immediately after the platform data allocation so those boards get working click detection without requiring a DT change. The DT reads for st,click-threshold-x/y/z are unchanged so boards using the correct name can still override the default. Fixes: 6a7740c7f5b2 ("lis3lv02d: add device-tree support") Signed-off-by: Md Shofiqul Islam <shofiqtest@gmail.com> --- drivers/misc/lis3lv02d/lis3lv02d.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c index 21e8ad0a7444..6a028c1bf866 100644 --- a/drivers/misc/lis3lv02d/lis3lv02d.c +++ b/drivers/misc/lis3lv02d/lis3lv02d.c @@ -956,6 +956,14 @@ int lis3lv02d_init_dt(struct lis3lv02d *lis3) if (!pdata) return -ENOMEM; + /* Set sensible click threshold defaults. Several upstream board DTS + * files use the misspelled property "st,click-thresh-*" which the + * driver never reads, leaving these at zero. Default to 10 so those + * boards get working click detection without a DT change. */ + pdata->click_thresh_x = 10; + pdata->click_thresh_y = 10; + pdata->click_thresh_z = 10; + if (of_property_read_bool(np, "st,click-single-x")) pdata->click_flags |= LIS3_CLICK_SINGLE_X; if (of_property_read_bool(np, "st,click-double-x")) -- 2.51.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/3] misc: lis3lv02d: set default click detection thresholds 2026-06-11 15:41 ` [PATCH v2 1/3] misc: lis3lv02d: set default click detection thresholds Md Shofiqul Islam @ 2026-06-11 15:52 ` sashiko-bot 0 siblings, 0 replies; 7+ messages in thread From: sashiko-bot @ 2026-06-11 15:52 UTC (permalink / raw) To: Md Shofiqul Islam; +Cc: robh, conor+dt, devicetree Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider: New issues: - [High] The patch hardcodes a default click threshold instead of parsing the documented legacy DT property `st,click-thresh-*`, incorrectly overriding explicitly configured board values. Pre-existing issues: - [High] The dynamically allocated `struct lis3lv02d_platform_data` is leaked on probe error paths and device unbind. - [High] The return value of `lis3lv02d_add_fs` is ignored, leading to an invalid pointer address generation and a kernel crash if device creation fails. - [High] Sysfs hardware access occurs with a runtime PM usage count of zero, risking a race condition with device suspend. -- commit e23e0f8c271ea91f741e5d3559287f33c9596b0d Author: Md Shofiqul Islam <shofiqtest@gmail.com> misc: lis3lv02d: set default click detection thresholds This commit works around an issue where several upstream board DTS files use an undocumented property name for click thresholds. It hardcodes a default value of 10 during the driver's device tree initialization to compensate for the driver reading a misspelled property name. > diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c > index 6957091ab6dee..245bb6249033b 100644 > --- a/drivers/misc/lis3lv02d/lis3lv02d.c > +++ b/drivers/misc/lis3lv02d/lis3lv02d.c > @@ -958,6 +958,14 @@ int lis3lv02d_init_dt(struct lis3lv02d *lis3) > if (!pdata) > return -ENOMEM; [Severity: High] This is a pre-existing issue, but does this code leak the allocated platform data? When pdata is dynamically allocated via kzalloc() earlier in lis3lv02d_init_dt() and assigned to lis3_dev.pdata, there appears to be no corresponding kfree() in the error teardown paths. For example, if the bus probe fails in lis3lv02d_i2c_probe() due to -EPROBE_DEFER, the allocated memory is never freed: drivers/misc/lis3lv02d/lis3lv02d_i2c.c:lis3lv02d_i2c_probe() { ... fail: if (pdata && pdata->release_resources) pdata->release_resources(); return ret; } Since lis3_dev is a static global variable, repeatedly probing and deferring or unbinding and rebinding the driver could continuously leak memory. > > + /* Set sensible click threshold defaults. Several upstream board DTS > + * files use the misspelled property "st,click-thresh-*" which the > + * driver never reads, leaving these at zero. Default to 10 so those > + * boards get working click detection without a DT change. */ > + pdata->click_thresh_x = 10; > + pdata->click_thresh_y = 10; > + pdata->click_thresh_z = 10; [Severity: High] Can hardcoding these defaults override explicitly configured board values? The device tree binding documents st,click-thresh-x/y/z, but the driver erroneously parses st,click-threshold-x/y/z. Instead of updating the driver to parse both properties to respect the DT ABI, this applies an arbitrary default of 10. If a board correctly configures a different threshold, such as st,click-thresh-x = <8>, will this explicit configuration be ignored and silently forced to 10? [ ... ] [Severity: High] This is a pre-existing issue, but will the lack of a return value check cause a kernel crash if device creation fails? In lis3lv02d_init_device(), lis3lv02d_add_fs() is called without checking its return value: drivers/misc/lis3lv02d/lis3lv02d.c:lis3lv02d_init_device() { ... lis3lv02d_add_fs(lis3); err = lis3lv02d_poweron(lis3); ... } If faux_device_create_with_groups() fails and returns NULL, lis3->fdev remains NULL. When the code later calls lis3lv02d_joystick_enable(), it computes &lis3->fdev->dev and assigns it to input_dev->dev.parent. The offset calculation from a NULL pointer yields an invalid pointer, leading to a NULL pointer dereference when the input subsystem accesses the parent device. [Severity: High] This is a pre-existing issue, but is sysfs hardware accessed with a runtime PM usage count of zero? In sysfs attribute handlers like lis3lv02d_position_show(), lis3lv02d_sysfs_poweron() is called before accessing the hardware: drivers/misc/lis3lv02d/lis3lv02d.c:lis3lv02d_position_show() { ... lis3lv02d_sysfs_poweron(lis3); mutex_lock(&lis3->mutex); lis3lv02d_get_xyz(lis3, &x, &y, &z); ... } However, lis3lv02d_sysfs_poweron() calls pm_runtime_get_sync(), but then immediately drops the usage count via pm_runtime_put_noidle(): drivers/misc/lis3lv02d/lis3lv02d.c:lis3lv02d_sysfs_poweron() { ... pm_runtime_put_noidle(lis3->pm_dev); pm_schedule_suspend(lis3->pm_dev, LIS3_SYSFS_POWERDOWN_DELAY); } This drops the runtime PM usage count to 0 while the I2C/SPI registers are actively being read. Could a concurrent system sleep physically power off the device while communication is occurring, leading to bus lockups or a kernel oops? -- Sashiko AI review · https://sashiko.dev/#/patchset/20260611154105.3727-1-shofiqtest@gmail.com?part=1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 2/3] dt-bindings: iio: st,st-sensors: remove lis302dl and lis3lv02d from deprecated list 2026-06-11 15:41 [PATCH v2 0/3] lis302dl/lis3lv02d: fix click thresholds and add legacy YAML binding Md Shofiqul Islam 2026-06-11 15:41 ` [PATCH v2 1/3] misc: lis3lv02d: set default click detection thresholds Md Shofiqul Islam @ 2026-06-11 15:41 ` Md Shofiqul Islam 2026-06-11 15:41 ` [PATCH v2 3/3] dt-bindings: iio: accel: convert lis302 binding to YAML schema (v2) Md Shofiqul Islam 2 siblings, 0 replies; 7+ messages in thread From: Md Shofiqul Islam @ 2026-06-11 15:41 UTC (permalink / raw) To: linux-iio, devicetree Cc: jic23, robh, krzk+dt, conor+dt, linusw, linux-kernel, Md Shofiqul Islam st,lis302dl-spi and st,lis3lv02d are being given their own binding in Documentation/devicetree/bindings/iio/accel/st,lis302dl.yaml. Remove them from the deprecated section of st,st-sensors.yaml to eliminate the duplicate compatible string warnings reported by the kernel test robot. Signed-off-by: Md Shofiqul Islam <shofiqtest@gmail.com> --- Documentation/devicetree/bindings/iio/st,st-sensors.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Documentation/devicetree/bindings/iio/st,st-sensors.yaml b/Documentation/devicetree/bindings/iio/st,st-sensors.yaml index a1a958215cdb..ebe9041f6326 100644 --- a/Documentation/devicetree/bindings/iio/st,st-sensors.yaml +++ b/Documentation/devicetree/bindings/iio/st,st-sensors.yaml @@ -88,12 +88,6 @@ properties: enum: - st,lsm303d-imu - st,lsm9ds0-imu - - description: Deprecated bindings - enum: - - st,lis302dl-spi - - st,lis3lv02d - deprecated: true - reg: maxItems: 1 -- 2.51.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 3/3] dt-bindings: iio: accel: convert lis302 binding to YAML schema (v2) 2026-06-11 15:41 [PATCH v2 0/3] lis302dl/lis3lv02d: fix click thresholds and add legacy YAML binding Md Shofiqul Islam 2026-06-11 15:41 ` [PATCH v2 1/3] misc: lis3lv02d: set default click detection thresholds Md Shofiqul Islam 2026-06-11 15:41 ` [PATCH v2 2/3] dt-bindings: iio: st,st-sensors: remove lis302dl and lis3lv02d from deprecated list Md Shofiqul Islam @ 2026-06-11 15:41 ` Md Shofiqul Islam 2026-06-11 15:52 ` sashiko-bot 2026-06-11 17:10 ` Conor Dooley 2 siblings, 2 replies; 7+ messages in thread From: Md Shofiqul Islam @ 2026-06-11 15:41 UTC (permalink / raw) To: linux-iio, devicetree Cc: jic23, robh, krzk+dt, conor+dt, linusw, linux-kernel, Md Shofiqul Islam Replace the plain text lis302.txt with a YAML schema for the LIS302DL/LIS3LV02D accelerometer family. Key changes from v1: - Add a prominent WARNING in the description that this is a legacy binding and must not be copied for new devices - Add st,lis302dl compatible (used by Nokia N900 / omap3-n900.dts) in addition to st,lis302dl-spi and st,lis3lv02d - Document both supply naming conventions: Vdd-supply/Vdd_IO-supply (legacy uppercase, used by most boards) and vdd-supply/vddio-supply (modern lowercase, used by Nokia N900) - Add mount-matrix support (used by Nokia N900) - Add self-test limit properties st,min-limit-x/y/z and st,max-limit-x/y/z (these legitimately belong in DT as they encode per-board hardware tolerances) - Mark all click/irq/wakeup/filter properties as deprecated=true. They configure run-time driver behaviour, not hardware, and should not appear in DT for new boards - Add st,click-thresh-x/y/z as deprecated with an explicit note that this is a misspelling present in several upstream boards; the driver reads st,click-threshold-x/y/z and never reads the short form - Remove driver path reference from description - Use schema constraints (minimum/maximum) for axis remapping range - Remove Jonathan Cameron as maintainer; use Linus Walleij who already maintains the related st,st-sensors binding - Use example based on actual upstream board (Nokia N900) Boards using this as primary binding: st,lis302dl: omap3-n900.dts st,lis3lv02d: omap3-n950-n9.dtsi, am335x-pepper.dts st,lis302dl-spi: pxa300-raumfeld-controller.dts Signed-off-by: Md Shofiqul Islam <shofiqtest@gmail.com> --- .../devicetree/bindings/iio/accel/lis302.txt | 119 ------- .../bindings/iio/accel/st,lis302dl.yaml | 320 ++++++++++++++++++ 2 files changed, 320 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..8a19aa108521 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/accel/st,lis302dl.yaml @@ -0,0 +1,320 @@ +# 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 (Legacy Binding) + +description: | + WARNING: This is a legacy binding for hardware that predates modern DT + practices. It is documented as-found in upstream board files. Do NOT use + this as a template for new drivers or bindings. + + The driver lives in drivers/misc/lis3lv02d, not in IIO. Many properties + listed here represent run-time driver configuration that would normally not + appear in device tree. They are documented here only because existing + upstream board DTS files use them. + + Compatibles st,lis302dl-spi and st,lis3lv02d were previously listed as + deprecated in st,st-sensors.yaml. They are moved here with their actual + hardware configuration so validation works correctly. + +maintainers: + - Linus Walleij <linus.walleij@linaro.org> + +properties: + compatible: + oneOf: + - description: I2C variant (original part) + const: st,lis302dl + - description: I2C variant (larger range) + const: st,lis3lv02d + - description: SPI variant; including the bus type in the compatible + string is a legacy naming error, do not copy for new bindings + const: st,lis302dl-spi + + reg: + maxItems: 1 + + interrupts: + minItems: 1 + maxItems: 2 + + Vdd-supply: + description: Main power supply (legacy uppercase name used by most boards). + + Vdd_IO-supply: + description: I/O power supply (legacy uppercase name used by most boards). + + vdd-supply: + description: Main power supply (modern lowercase name, used by omap3-n900). + + vddio-supply: + description: I/O power supply (modern lowercase name, used by omap3-n900). + + mount-matrix: + description: 3x3 mounting rotation matrix. + + st,min-limit-x: + $ref: /schemas/types.yaml#/definitions/int32 + description: Minimum acceptable self-test delta for X axis. + + st,min-limit-y: + $ref: /schemas/types.yaml#/definitions/int32 + description: Minimum acceptable self-test delta for Y axis. + + st,min-limit-z: + $ref: /schemas/types.yaml#/definitions/int32 + description: Minimum acceptable self-test delta for Z axis. + + st,max-limit-x: + $ref: /schemas/types.yaml#/definitions/int32 + description: Maximum acceptable self-test delta for X axis. + + st,max-limit-y: + $ref: /schemas/types.yaml#/definitions/int32 + description: Maximum acceptable self-test delta for Y axis. + + st,max-limit-z: + $ref: /schemas/types.yaml#/definitions/int32 + description: Maximum acceptable self-test delta for Z axis. + + # The following properties configure run-time driver behaviour and do not + # describe hardware. They are deprecated. Documented here only so that + # existing upstream board DTS files pass dt_binding_check. + + st,click-single-x: + type: boolean + deprecated: true + description: Enable single-click detection on X axis. + + st,click-single-y: + type: boolean + deprecated: true + description: Enable single-click detection on Y axis. + + st,click-single-z: + type: boolean + deprecated: true + description: Enable single-click detection on Z axis. + + st,click-threshold-x: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + description: Click threshold X axis. Driver default is used if absent. + + st,click-threshold-y: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + description: Click threshold Y axis. Driver default is used if absent. + + st,click-threshold-z: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + description: Click threshold Z axis. Driver default is used if absent. + + st,click-thresh-x: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + description: | + Misspelling of st,click-threshold-x present in several upstream board + files. The driver does not read this property; it is silently ignored. + Documented here only to avoid dt_binding_check failures on those boards. + + st,click-thresh-y: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + description: See st,click-thresh-x. + + st,click-thresh-z: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + description: See st,click-thresh-x. + + st,click-time-limit: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + description: Click time limit in 0.5ms steps (0-127). + + st,click-latency: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + description: Click latency in 1ms steps (0-255). + + st,click-window: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + + st,irq1-click: + type: boolean + deprecated: true + st,irq2-click: + type: boolean + deprecated: true + st,irq1-ff-wu-1: + type: boolean + deprecated: true + st,irq1-ff-wu-2: + type: boolean + deprecated: true + st,irq2-ff-wu-1: + type: boolean + deprecated: true + st,irq2-ff-wu-2: + type: boolean + deprecated: true + st,irq1-data-ready: + type: boolean + deprecated: true + st,irq2-data-ready: + type: boolean + deprecated: true + st,irq1-disable: + type: boolean + deprecated: true + st,irq2-disable: + type: boolean + deprecated: true + st,irq-open-drain: + type: boolean + deprecated: true + st,irq-active-low: + type: boolean + deprecated: true + + st,wakeup-x-lo: + type: boolean + deprecated: true + st,wakeup-x-hi: + type: boolean + deprecated: true + st,wakeup-y-lo: + type: boolean + deprecated: true + st,wakeup-y-hi: + type: boolean + deprecated: true + st,wakeup-z-lo: + type: boolean + deprecated: true + st,wakeup-z-hi: + type: boolean + deprecated: true + st,wakeup-threshold: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + + st,wakeup2-x-lo: + type: boolean + deprecated: true + st,wakeup2-x-hi: + type: boolean + deprecated: true + st,wakeup2-y-lo: + type: boolean + deprecated: true + st,wakeup2-y-hi: + type: boolean + deprecated: true + st,wakeup2-z-lo: + type: boolean + deprecated: true + st,wakeup2-z-hi: + type: boolean + deprecated: true + st,wakeup2-threshold: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + + st,wu-duration-1: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + st,wu-duration-2: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + + st,highpass-cutoff-hz: + enum: [1, 2, 4, 8] + deprecated: true + st,hipass1-disable: + type: boolean + deprecated: true + st,hipass2-disable: + type: boolean + deprecated: true + + st,default-rate: + $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true + + st,axis-x: + $ref: /schemas/types.yaml#/definitions/int32 + minimum: -3 + maximum: 3 + deprecated: true + description: Axis remapping. Replaced by mount-matrix. + + st,axis-y: + $ref: /schemas/types.yaml#/definitions/int32 + minimum: -3 + maximum: 3 + deprecated: true + description: Axis remapping. Replaced by mount-matrix. + + st,axis-z: + $ref: /schemas/types.yaml#/definitions/int32 + minimum: -3 + maximum: 3 + deprecated: true + description: Axis remapping. Replaced by mount-matrix. + +required: + - compatible + - reg + +allOf: + - $ref: /schemas/spi/spi-peripheral-props.yaml# + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + i2c { + #address-cells = <1>; + #size-cells = <0>; + + accelerometer@1d { + compatible = "st,lis302dl"; + reg = <0x1d>; + vdd-supply = <&vaux1>; + vddio-supply = <&vio>; + interrupt-parent = <&gpio6>; + interrupts = <21 IRQ_TYPE_EDGE_RISING>, + <20 IRQ_TYPE_EDGE_RISING>; + mount-matrix = "-1", "0", "0", + "0", "1", "0", + "0", "0", "-1"; + }; + }; + - | + #include <dt-bindings/interrupt-controller/irq.h> + spi { + #address-cells = <1>; + #size-cells = <0>; + + accelerometer@1 { + compatible = "st,lis302dl-spi"; + reg = <1>; + spi-max-frequency = <1000000>; + interrupt-parent = <&gpio>; + interrupts = <104 IRQ_TYPE_EDGE_FALLING>; + st,click-single-x; + st,click-single-y; + st,click-single-z; + st,irq1-click; + st,irq2-click; + }; + }; +... -- 2.51.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 3/3] dt-bindings: iio: accel: convert lis302 binding to YAML schema (v2) 2026-06-11 15:41 ` [PATCH v2 3/3] dt-bindings: iio: accel: convert lis302 binding to YAML schema (v2) Md Shofiqul Islam @ 2026-06-11 15:52 ` sashiko-bot 2026-06-11 17:10 ` Conor Dooley 1 sibling, 0 replies; 7+ messages in thread From: sashiko-bot @ 2026-06-11 15:52 UTC (permalink / raw) To: Md Shofiqul Islam; +Cc: robh, conor+dt, devicetree Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider: - [Medium] The `st,lis302dl` compatible string causes a dual-schema validation conflict. - [Medium] The properties `st,click-double-{x,y,z}` were incorrectly omitted during the YAML schema conversion. - [Medium] The schema fails to document the upstream legacy typo `st,click-click-time-limit`, causing validation failures. - [Medium] The `compatible` property incorrectly rejects upstream fallback combinations by strictly requiring a single exact match. -- commit a5b5cff978006324100603bf6453cf1d3ceba157 Author: Md Shofiqul Islam <shofiqtest@gmail.com> dt-bindings: iio: accel: convert lis302 binding to YAML schema (v2) Replace the plain text lis302.txt with a YAML schema for the LIS302DL/LIS3LV02D accelerometer family. > 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 0000000000000..8a19aa1085215 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/accel/st,lis302dl.yaml > @@ -0,0 +1,320 @@ [ ... ] > +properties: > + compatible: > + oneOf: > + - description: I2C variant (original part) > + const: st,lis302dl [Severity: Medium] Since this compatible string is also present in the existing Documentation/devicetree/bindings/iio/st,st-sensors.yaml, does adding it here cause a dual-schema validation conflict? If device tree nodes use st,lis302dl and include the legacy properties introduced in this new schema, they might fail dt_binding_check validation against st,st-sensors.yaml because that schema strictly restricts properties. > + - description: I2C variant (larger range) > + const: st,lis3lv02d > + - description: SPI variant; including the bus type in the compatible > + string is a legacy naming error, do not copy for new bindings > + const: st,lis302dl-spi [Severity: Medium] Will this strict oneOf and const definition incorrectly reject valid upstream device trees that use a multiple-string fallback array? Numerous upstream device trees (e.g., am335x-evm.dts, omap3-gta04a3.dts) use a fallback array like: compatible = "st,lis331dlh", "st,lis3lv02d"; A const rule fails against an array, which will cause these boards to fail schema validation. Should this be rewritten to support items lists? [ ... ] > + st,click-single-x: > + type: boolean > + deprecated: true > + description: Enable single-click detection on X axis. > + > + st,click-single-y: > + type: boolean > + deprecated: true > + description: Enable single-click detection on Y axis. > + > + st,click-single-z: > + type: boolean > + deprecated: true > + description: Enable single-click detection on Z axis. [Severity: Medium] Were the properties st,click-double-{x,y,z} omitted from this conversion? The original lis302.txt binding defined these properties, and the driver at drivers/misc/lis3lv02d/lis3lv02d.c actively parses them via of_property_read_bool(). Since the new schema specifies unevaluatedProperties: false, any device tree correctly utilizing the double-click properties will now fail schema validation. [ ... ] > + st,click-thresh-y: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + description: See st,click-thresh-x. > + > + st,click-thresh-z: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + description: See st,click-thresh-x. > + > + st,click-time-limit: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + description: Click time limit in 0.5ms steps (0-127). [Severity: Medium] Does the schema need to document the legacy typo st,click-click-time-limit to prevent validation failures? The conversion correctly maps this to st,click-time-limit, but upstream device trees (e.g., arch/arm/boot/dts/ti/omap/omap3-gta04a3.dts) still use the misspelled property. Because unevaluatedProperties is set to false, dt_binding_check will now fail for those boards. Should this typo be accommodated similarly to how the st,click-thresh-x typo was handled? -- Sashiko AI review · https://sashiko.dev/#/patchset/20260611154105.3727-1-shofiqtest@gmail.com?part=3 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 3/3] dt-bindings: iio: accel: convert lis302 binding to YAML schema (v2) 2026-06-11 15:41 ` [PATCH v2 3/3] dt-bindings: iio: accel: convert lis302 binding to YAML schema (v2) Md Shofiqul Islam 2026-06-11 15:52 ` sashiko-bot @ 2026-06-11 17:10 ` Conor Dooley 1 sibling, 0 replies; 7+ messages in thread From: Conor Dooley @ 2026-06-11 17:10 UTC (permalink / raw) To: Md Shofiqul Islam Cc: linux-iio, devicetree, jic23, robh, krzk+dt, conor+dt, linusw, linux-kernel [-- Attachment #1: Type: text/plain, Size: 17001 bytes --] On Thu, Jun 11, 2026 at 06:41:05PM +0300, Md Shofiqul Islam wrote: > Replace the plain text lis302.txt with a YAML schema for the > LIS302DL/LIS3LV02D accelerometer family. > > Key changes from v1: > - Add a prominent WARNING in the description that this is a legacy > binding and must not be copied for new devices > - Add st,lis302dl compatible (used by Nokia N900 / omap3-n900.dts) > in addition to st,lis302dl-spi and st,lis3lv02d > - Document both supply naming conventions: Vdd-supply/Vdd_IO-supply > (legacy uppercase, used by most boards) and vdd-supply/vddio-supply > (modern lowercase, used by Nokia N900) > - Add mount-matrix support (used by Nokia N900) > - Add self-test limit properties st,min-limit-x/y/z and > st,max-limit-x/y/z (these legitimately belong in DT as they > encode per-board hardware tolerances) > - Mark all click/irq/wakeup/filter properties as deprecated=true. > They configure run-time driver behaviour, not hardware, and should > not appear in DT for new boards > - Add st,click-thresh-x/y/z as deprecated with an explicit note that > this is a misspelling present in several upstream boards; the driver > reads st,click-threshold-x/y/z and never reads the short form > - Remove driver path reference from description > - Use schema constraints (minimum/maximum) for axis remapping range > - Remove Jonathan Cameron as maintainer; use Linus Walleij who > already maintains the related st,st-sensors binding > - Use example based on actual upstream board (Nokia N900) This whole section should be under the --- line. Please do not send additional versions while discussion is still ongoing on your most recent. Thanks, Conor. > > Boards using this as primary binding: > st,lis302dl: omap3-n900.dts > st,lis3lv02d: omap3-n950-n9.dtsi, am335x-pepper.dts > st,lis302dl-spi: pxa300-raumfeld-controller.dts > > Signed-off-by: Md Shofiqul Islam <shofiqtest@gmail.com> > --- > .../devicetree/bindings/iio/accel/lis302.txt | 119 ------- > .../bindings/iio/accel/st,lis302dl.yaml | 320 ++++++++++++++++++ > 2 files changed, 320 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..8a19aa108521 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/accel/st,lis302dl.yaml > @@ -0,0 +1,320 @@ > +# 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 (Legacy Binding) > + > +description: | > + WARNING: This is a legacy binding for hardware that predates modern DT > + practices. It is documented as-found in upstream board files. Do NOT use > + this as a template for new drivers or bindings. > + > + The driver lives in drivers/misc/lis3lv02d, not in IIO. Many properties > + listed here represent run-time driver configuration that would normally not > + appear in device tree. They are documented here only because existing > + upstream board DTS files use them. > + > + Compatibles st,lis302dl-spi and st,lis3lv02d were previously listed as > + deprecated in st,st-sensors.yaml. They are moved here with their actual > + hardware configuration so validation works correctly. > + > +maintainers: > + - Linus Walleij <linus.walleij@linaro.org> > + > +properties: > + compatible: > + oneOf: > + - description: I2C variant (original part) > + const: st,lis302dl > + - description: I2C variant (larger range) > + const: st,lis3lv02d > + - description: SPI variant; including the bus type in the compatible > + string is a legacy naming error, do not copy for new bindings > + const: st,lis302dl-spi > + > + reg: > + maxItems: 1 > + > + interrupts: > + minItems: 1 > + maxItems: 2 > + > + Vdd-supply: > + description: Main power supply (legacy uppercase name used by most boards). > + > + Vdd_IO-supply: > + description: I/O power supply (legacy uppercase name used by most boards). > + > + vdd-supply: > + description: Main power supply (modern lowercase name, used by omap3-n900). > + > + vddio-supply: > + description: I/O power supply (modern lowercase name, used by omap3-n900). > + > + mount-matrix: > + description: 3x3 mounting rotation matrix. > + > + st,min-limit-x: > + $ref: /schemas/types.yaml#/definitions/int32 > + description: Minimum acceptable self-test delta for X axis. > + > + st,min-limit-y: > + $ref: /schemas/types.yaml#/definitions/int32 > + description: Minimum acceptable self-test delta for Y axis. > + > + st,min-limit-z: > + $ref: /schemas/types.yaml#/definitions/int32 > + description: Minimum acceptable self-test delta for Z axis. > + > + st,max-limit-x: > + $ref: /schemas/types.yaml#/definitions/int32 > + description: Maximum acceptable self-test delta for X axis. > + > + st,max-limit-y: > + $ref: /schemas/types.yaml#/definitions/int32 > + description: Maximum acceptable self-test delta for Y axis. > + > + st,max-limit-z: > + $ref: /schemas/types.yaml#/definitions/int32 > + description: Maximum acceptable self-test delta for Z axis. > + > + # The following properties configure run-time driver behaviour and do not > + # describe hardware. They are deprecated. Documented here only so that > + # existing upstream board DTS files pass dt_binding_check. > + > + st,click-single-x: > + type: boolean > + deprecated: true > + description: Enable single-click detection on X axis. > + > + st,click-single-y: > + type: boolean > + deprecated: true > + description: Enable single-click detection on Y axis. > + > + st,click-single-z: > + type: boolean > + deprecated: true > + description: Enable single-click detection on Z axis. > + > + st,click-threshold-x: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + description: Click threshold X axis. Driver default is used if absent. > + > + st,click-threshold-y: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + description: Click threshold Y axis. Driver default is used if absent. > + > + st,click-threshold-z: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + description: Click threshold Z axis. Driver default is used if absent. > + > + st,click-thresh-x: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + description: | > + Misspelling of st,click-threshold-x present in several upstream board > + files. The driver does not read this property; it is silently ignored. > + Documented here only to avoid dt_binding_check failures on those boards. > + > + st,click-thresh-y: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + description: See st,click-thresh-x. > + > + st,click-thresh-z: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + description: See st,click-thresh-x. > + > + st,click-time-limit: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + description: Click time limit in 0.5ms steps (0-127). > + > + st,click-latency: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + description: Click latency in 1ms steps (0-255). > + > + st,click-window: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + > + st,irq1-click: > + type: boolean > + deprecated: true > + st,irq2-click: > + type: boolean > + deprecated: true > + st,irq1-ff-wu-1: > + type: boolean > + deprecated: true > + st,irq1-ff-wu-2: > + type: boolean > + deprecated: true > + st,irq2-ff-wu-1: > + type: boolean > + deprecated: true > + st,irq2-ff-wu-2: > + type: boolean > + deprecated: true > + st,irq1-data-ready: > + type: boolean > + deprecated: true > + st,irq2-data-ready: > + type: boolean > + deprecated: true > + st,irq1-disable: > + type: boolean > + deprecated: true > + st,irq2-disable: > + type: boolean > + deprecated: true > + st,irq-open-drain: > + type: boolean > + deprecated: true > + st,irq-active-low: > + type: boolean > + deprecated: true > + > + st,wakeup-x-lo: > + type: boolean > + deprecated: true > + st,wakeup-x-hi: > + type: boolean > + deprecated: true > + st,wakeup-y-lo: > + type: boolean > + deprecated: true > + st,wakeup-y-hi: > + type: boolean > + deprecated: true > + st,wakeup-z-lo: > + type: boolean > + deprecated: true > + st,wakeup-z-hi: > + type: boolean > + deprecated: true > + st,wakeup-threshold: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + > + st,wakeup2-x-lo: > + type: boolean > + deprecated: true > + st,wakeup2-x-hi: > + type: boolean > + deprecated: true > + st,wakeup2-y-lo: > + type: boolean > + deprecated: true > + st,wakeup2-y-hi: > + type: boolean > + deprecated: true > + st,wakeup2-z-lo: > + type: boolean > + deprecated: true > + st,wakeup2-z-hi: > + type: boolean > + deprecated: true > + st,wakeup2-threshold: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + > + st,wu-duration-1: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + st,wu-duration-2: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + > + st,highpass-cutoff-hz: > + enum: [1, 2, 4, 8] > + deprecated: true > + st,hipass1-disable: > + type: boolean > + deprecated: true > + st,hipass2-disable: > + type: boolean > + deprecated: true > + > + st,default-rate: > + $ref: /schemas/types.yaml#/definitions/uint32 > + deprecated: true > + > + st,axis-x: > + $ref: /schemas/types.yaml#/definitions/int32 > + minimum: -3 > + maximum: 3 > + deprecated: true > + description: Axis remapping. Replaced by mount-matrix. > + > + st,axis-y: > + $ref: /schemas/types.yaml#/definitions/int32 > + minimum: -3 > + maximum: 3 > + deprecated: true > + description: Axis remapping. Replaced by mount-matrix. > + > + st,axis-z: > + $ref: /schemas/types.yaml#/definitions/int32 > + minimum: -3 > + maximum: 3 > + deprecated: true > + description: Axis remapping. Replaced by mount-matrix. > + > +required: > + - compatible > + - reg > + > +allOf: > + - $ref: /schemas/spi/spi-peripheral-props.yaml# > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + accelerometer@1d { > + compatible = "st,lis302dl"; > + reg = <0x1d>; > + vdd-supply = <&vaux1>; > + vddio-supply = <&vio>; > + interrupt-parent = <&gpio6>; > + interrupts = <21 IRQ_TYPE_EDGE_RISING>, > + <20 IRQ_TYPE_EDGE_RISING>; > + mount-matrix = "-1", "0", "0", > + "0", "1", "0", > + "0", "0", "-1"; > + }; > + }; > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + spi { > + #address-cells = <1>; > + #size-cells = <0>; > + > + accelerometer@1 { > + compatible = "st,lis302dl-spi"; > + reg = <1>; > + spi-max-frequency = <1000000>; > + interrupt-parent = <&gpio>; > + interrupts = <104 IRQ_TYPE_EDGE_FALLING>; > + st,click-single-x; > + st,click-single-y; > + st,click-single-z; > + st,irq1-click; > + st,irq2-click; > + }; > + }; > +... > -- > 2.51.1 > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-06-11 17:10 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-11 15:41 [PATCH v2 0/3] lis302dl/lis3lv02d: fix click thresholds and add legacy YAML binding Md Shofiqul Islam 2026-06-11 15:41 ` [PATCH v2 1/3] misc: lis3lv02d: set default click detection thresholds Md Shofiqul Islam 2026-06-11 15:52 ` sashiko-bot 2026-06-11 15:41 ` [PATCH v2 2/3] dt-bindings: iio: st,st-sensors: remove lis302dl and lis3lv02d from deprecated list Md Shofiqul Islam 2026-06-11 15:41 ` [PATCH v2 3/3] dt-bindings: iio: accel: convert lis302 binding to YAML schema (v2) Md Shofiqul Islam 2026-06-11 15:52 ` sashiko-bot 2026-06-11 17:10 ` Conor Dooley
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox