From: Herman van Hazendonk <github.com@herrie.org>
To: jic23@kernel.org, linusw@kernel.org, denis.ciocca@st.com,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org
Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org,
sanjayembeddedse@gmail.com, maudspierings@gocontroll.com,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
Herman van Hazendonk <github.com@herrie.org>
Subject: [PATCH 2/3] dt-bindings: iio: st,st-sensors: add st,fullscale-mg
Date: Fri, 5 Jun 2026 12:08:42 +0200 [thread overview]
Message-ID: <e49aba850b1f48ea00089e7142c00584541001eb.1780652883.git.github.com@herrie.org> (raw)
In-Reply-To: <cover.1780652883.git.github.com@herrie.org>
Add an optional st,fullscale-mg property that selects the initial
full-scale range of an ST MEMS sensor at probe time, expressed in
milligauss for magnetometers (and analogous engineering units for
other ST sensor families that may grow this property in the future).
The property is purely additive: if absent, drivers fall back to
their existing chip default, and if present but unsupported by the
specific sensor the driver warns and falls back. No existing in-tree
DTS is affected.
The motivating case is the LSM303DLH magnetometer on the HP TouchPad
(apq8060 / tenderloin) where the kernel's chip-default +/-1.3 G range
saturates the X axis to the chip's 0xF000 overflow sentinel out of
probe, because the chip is mounted close to surrounding power planes
and picks up enough DC bias to exceed the smallest range. The driver
core hardcodes fs_avl[0] as the starting range, so userspace cannot
recover without racing the driver to write the in_magn_x_scale sysfs
attribute after probe. st,fullscale-mg lets the device tree declare
a wider initial range up-front and avoids the race entirely.
Signed-off-by: Herman van Hazendonk <github.com@herrie.org>
---
.../devicetree/bindings/iio/st,st-sensors.yaml | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/Documentation/devicetree/bindings/iio/st,st-sensors.yaml b/Documentation/devicetree/bindings/iio/st,st-sensors.yaml
index a1a958215cdb..335f38e9f78f 100644
--- a/Documentation/devicetree/bindings/iio/st,st-sensors.yaml
+++ b/Documentation/devicetree/bindings/iio/st,st-sensors.yaml
@@ -126,6 +126,24 @@ properties:
mount-matrix:
description: an optional 3x3 mounting rotation matrix.
+ st,fullscale-mg:
+ description: |
+ Selects the initial sensor full-scale at probe time, expressed in
+ milligauss for magnetometers (or analogous engineering units for
+ other sensor families that may grow this property in the future).
+ The value must match one of the sensor-specific full-scale ranges
+ supported by the chip; if the chip does not support the requested
+ range the driver falls back to its built-in default.
+
+ This is intended for boards where the magnetometer chip picks up
+ enough DC bias from nearby PCB structures (power planes, ferrous
+ shields, etc.) that the kernel's chip-default highest-sensitivity
+ range saturates one or more axes to the chip's overflow sentinel,
+ and userspace observes that axis as permanently stuck. Declaring
+ a wider initial range avoids the saturation at the cost of a
+ slightly coarser quantisation.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
allOf:
- if:
properties:
--
2.43.0
next prev parent reply other threads:[~2026-06-05 10:08 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-05 10:08 [PATCH 0/3] iio: lsm303dlh-magn: endianness + boot-time fullscale selection Herman van Hazendonk
2026-06-05 10:08 ` [PATCH 1/3] iio: common: st_sensors: honour channel endianness in read_axis_data Herman van Hazendonk
2026-06-05 17:47 ` Andy Shevchenko
2026-06-15 12:41 ` me
2026-06-14 18:39 ` Jonathan Cameron
2026-06-15 11:12 ` me
2026-06-05 10:08 ` Herman van Hazendonk [this message]
2026-06-05 16:07 ` [PATCH 2/3] dt-bindings: iio: st,st-sensors: add st,fullscale-mg Conor Dooley
2026-06-07 22:54 ` Linus Walleij
2026-06-14 18:44 ` Jonathan Cameron
2026-06-15 11:16 ` me
2026-06-21 12:41 ` Jonathan Cameron
2026-06-05 10:08 ` [PATCH 3/3] iio: magnetometer: st_magn: honour st,fullscale-mg DT property Herman van Hazendonk
2026-06-05 17:52 ` Andy Shevchenko
2026-06-15 12:40 ` me
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=e49aba850b1f48ea00089e7142c00584541001eb.1780652883.git.github.com@herrie.org \
--to=github.com@herrie.org \
--cc=andy@kernel.org \
--cc=conor+dt@kernel.org \
--cc=denis.ciocca@st.com \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maudspierings@gocontroll.com \
--cc=nuno.sa@analog.com \
--cc=robh@kernel.org \
--cc=sanjayembeddedse@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