milos-linux/drivers
Jorijn van der Graaf 50cd4e823f iio: magnetometer: add support for QST QMC6308
The QST QMC6308 is a 3-axis AMR magnetometer on I2C, a single-supply
4-pin WLCSP part with no interrupt/DRDY pin, found e.g. in the
Fairphone 6. Its register map differs from the QMC5883L (chip ID at
0x00 instead of 0x0D, data at 0x01..0x06, and the range field living
in control register 2), so add a separate driver rather than extending
the QMC5883L driver.

Support raw X/Y/Z reads, output data rates 10/50/100/200 Hz, field
ranges +-30/12/8/2 Gauss, filter oversampling ratios (OSR1) 8/4/2/1,
the mount matrix, and runtime PM. The second-stage decimation filter
(OSR2) is left at its power-on default. The package has no DRDY pin,
so there is no trigger support.

Run measurements in the chip's periodic "normal" mode paced by the
DRDY flag rather than in its one-shot "single" mode: the datasheet
specifies no conversion time that could bound a one-shot wait, while
normal mode is paced by the specified output data rates, which also
keeps the sampling_frequency ABI meaningful.

Runtime PM puts the chip into its suspend mode after 500 ms without a
reading, dropping supply current from tens-to-hundreds of microamps to
2-3 uA (datasheet Table 2). The suspended chip retains its registers
and keeps responding on I2C, so resuming only rewrites the mode field
and discards one stale sample, and configuration changes can be
applied even while suspended. VDD is left enabled across runtime
suspend: the on-chip suspend draw is already negligible, and register
retention is what keeps the resume path trivial.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
2026-07-14 22:17:49 +02:00
..
accel accel/amdxdna: Fix mm_struct reference leak in aie2_populate_range() 2026-06-11 09:50:07 -07:00
accessibility
acpi
amba
android
ata
atm
auxdisplay
base drivers/base/memory: set mem->altmap after successful device registration 2026-06-27 11:08:17 +01:00
bcma
block
bluetooth
bus
cache
cdrom
cdx
char agp/amd64: Fix broken error propagation in agp_amd64_probe() 2026-06-27 11:08:17 +01:00
clk FROMLIST v2 clk: qcom: gxclkctl: Remove GX/GMxC rail votes to align with IFPC 2026-06-30 15:48:33 +02:00
clocksource
comedi
connector
counter
cpufreq
cpuidle
crypto crypto: qat - remove unused character device and IOCTLs 2026-06-27 11:08:17 +01:00
cxl
dax
dca
devfreq
dibs
dio
dma
dma-buf
dpll
edac
eisa
extcon
firewire
firmware Char/Misc driver fixes for 7.1-final 2026-06-12 09:00:28 -07:00
fpga
fsi
fwctl
gnss
gpib
gpio
gpu Revert "drm/panel: novatek-nt37705: Configure for 10-bit" 2026-06-30 15:48:36 +02:00
greybus
hid HID: Input: Add battery list cleanup with devm action 2026-06-19 13:50:58 +02:00
hsi
hte
hv
hwmon
hwspinlock
hwtracing
i2c
i3c
idle
iio iio: magnetometer: add support for QST QMC6308 2026-07-14 22:17:49 +02:00
infiniband
input Input: eswin_touch - Remove 10s probe delay 2026-06-30 15:48:37 +02:00
interconnect FROMGIT interconnect: Add devm_of_icc_get_by_index() as exported API for users 2026-06-30 15:48:20 +02:00
iommu dma-mapping fixes for Linux 7.1 2026-06-11 14:22:26 -07:00
ipack
irqchip
leds
macintosh
mailbox
mcb
md
media FROMLIST v2 media: iris: Add support for Milos (VPU v2.0) 2026-06-30 15:48:28 +02:00
memory
memstick
message
mfd
misc
mmc
most
mtd
mux
net
nfc
ntb
nubus
nvdimm
nvme
nvmem
of
opp
parisc
parport
pci
pcmcia
peci
perf
phy
pinctrl
platform
pmdomain
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
resctrl
reset
rpmsg
rtc
s390
sbus
scsi
sh
siox
slimbus
soc FROMLIST v2 soc: qcom: ubwc: Add config for Milos 2026-06-30 15:48:31 +02:00
soundwire
spi spi: Fixes for v7.1 2026-06-12 11:06:16 -07:00
spmi
ssb
staging Staging driver fixes for 7.1-final 2026-06-12 10:10:12 -07:00
target
tc
tee
thermal
thunderbolt
tty serial: 8250_dw: unregister 8250 port if clk_notifier_register() fails 2026-06-27 11:08:17 +01:00
ufs
uio
usb
vdpa
vfio
vhost
video
virt
virtio
w1
watchdog
xen
zorro
Kconfig
Makefile