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 ACPI: button: Add missing device class clearing on probe failures 2026-05-25 09:52:34 +02:00
amba
android rust_binder: Avoid holding lock when dropping delivered_death 2026-05-22 11:55:48 +02:00
ata ata: libata-scsi: do not needlessly defer commands when using PMP with FBS 2026-05-18 12:26:51 +02:00
atm
auxdisplay auxdisplay: Kconfig: drop unneeded quotes in PANEL_BOOT_MESSAGE dep 2026-05-17 07:58:30 +02:00
base drivers/base/memory: set mem->altmap after successful device registration 2026-06-27 11:08:17 +01:00
bcma
block zram: fix use-after-free in zram_bvec_write_partial() 2026-06-03 16:25:50 -07:00
bluetooth Bluetooth: hci_qca: Use 100 ms SSR delay for rampatch and NVM loading 2026-05-27 16:44:02 -04:00
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 comedi: comedi_test: fix check for valid scan_begin_src in waveform_ai_cmdtest() 2026-05-21 10:34:04 +02:00
connector
counter
cpufreq amd-pstate fixes for 7.1 (2026-06-02) 2026-06-08 15:20:04 +02:00
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 dma-buf: fix UAF in dma_buf_fd() tracepoint 2026-05-28 20:05:43 +05:30
dpll dpll: zl3073x: make frequency monitor a per-device attribute 2026-05-28 14:05:29 +02:00
edac EDAC/versalnet: Fix device name memory leak 2026-05-05 14:49:48 +02:00
eisa
extcon
firewire
firmware Char/Misc driver fixes for 7.1-final 2026-06-12 09:00:28 -07:00
fpga
fsi
fwctl fwctl: pds: Validate RPC input size before parsing 2026-05-19 10:44:32 -03:00
gnss
gpib Revert "gpib: cb7210: Fix region leak when request_irq fails" 2026-05-30 12:25:36 +02:00
gpio gpiolib: handle gpio-hogs only once 2026-06-10 10:12:57 +02:00
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 mshv: support 1G hugepages by passing them as 2M-aligned chunks 2026-05-27 15:30:15 -07:00
hwmon hwmon: (pmbus/adm1266) serialize sequencer_state debugfs read with pmbus_lock 2026-05-21 07:00:39 -07:00
hwspinlock
hwtracing
i2c i2c: imx-lpi2c: fix resource leaks switching to devm_dma_request_chan() 2026-06-09 10:13:09 +02:00
i3c
idle
iio iio: magnetometer: add support for QST QMC6308 2026-07-14 22:17:49 +02:00
infiniband RDMA/srp: bound SRP_RSP sense copy by the received length 2026-06-08 13:43:23 -03:00
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 irqchip/renesas-rzt2h: Use pm_runtime_put_sync() in probe error path 2026-05-21 20:11:29 +02:00
leds
macintosh
mailbox
mcb
md - fix race condition in dm-cache-policy-smq 2026-06-01 19:55:30 -07:00
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 misc: fastrpc: fix use-after-free race in fastrpc_map_create 2026-06-05 17:20:51 +02:00
mmc MMC core: 2026-06-03 09:09:24 -07:00
most
mtd
mux
net octeontx2-af: fix IP fragment flag corruption on custom KPU profile load 2026-06-11 12:59:34 +02:00
nfc nfc: nxp-nci: i2c: use rising-edge IRQ on ACPI systems 2026-05-18 18:30:36 +02:00
ntb
nubus
nvdimm
nvme Including fixes from netfilter. 2026-05-28 13:13:48 -07:00
nvmem nvmem: core: fix use-after-free bugs in error paths 2026-06-05 17:18:58 +02:00
of
opp
parisc
parport parport: Fix race between port and client registration 2026-05-22 12:19:02 +02:00
pci pci-v7.1-fixes-2 2026-05-21 15:02:12 -07:00
pcmcia
peci
perf
phy phy: qcom: qmp-usbc: Fix out-of-bounds array access in dp swing config 2026-05-19 15:42:11 +05:30
pinctrl Revert "pinctrl-amd: enable IRQ for WACF2200 touchscreen on Lenovo Yoga 7 14AGP11" 2026-05-30 00:00:33 +02:00
platform platform-drivers-x86 for v7.1-4 2026-05-22 15:45:26 -07:00
pmdomain pmdomain: imx: fix OF node refcount 2026-06-03 11:49:37 +02:00
pnp
power
powercap
pps
ps3
ptp ptp: ocp: fix resource freeing order 2026-06-09 19:26:56 -07:00
pwm
rapidio
ras
regulator regulator: mt6363: select CONFIG_IRQ_DOMAIN 2026-05-26 15:17:16 +01:00
remoteproc
resctrl arm_mpam: Check whether the config array is allocated before destroying it 2026-05-14 09:52:05 +01:00
reset
rpmsg
rtc
s390 s390/cio: Restore GFP_DMA for CHSC allocation 2026-05-11 16:27:25 +02:00
sbus
scsi SCSI fixes on 20260531 2026-05-31 08:45:08 -07:00
sh
siox
slimbus slimbus: qcom-ngd-ctrl: Avoid ABBA on tx_lock/ctrl->lock 2026-06-05 17:19:51 +02:00
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 scsi: target: iscsi: Validate CHAP_R length before base64 decode 2026-05-22 23:06:00 -04:00
tc
tee QCOMTEE fix for v7.1 2026-05-28 15:31:48 +02:00
thermal
thunderbolt thunderbolt: Limit XDomain response copy to actual frame size 2026-05-26 15:18:31 +02:00
tty serial: 8250_dw: unregister 8250 port if clk_notifier_register() fails 2026-06-27 11:08:17 +01:00
ufs soc: fixes for 7.1, part 2 2026-06-02 10:54:11 -07:00
uio uio: uio_pci_generic_sva: fix double free of devm_kzalloc() memory 2026-05-22 12:19:02 +02:00
usb USB: serial: kl5kusb105: fix bulk-out buffer overflow 2026-06-08 13:43:10 +02:00
vdpa
vfio vfio/pci: Check BAR resources before exporting a DMABUF 2026-05-14 11:39:03 -06:00
vhost
video
virt virt: sev-guest: Explicitly leak pages in unknown state 2026-05-20 18:03:17 -07:00
virtio
w1
watchdog
xen ACPI: PAD: xen: Check ACPI_COMPANION() against NULL 2026-05-12 19:01:37 +02:00
zorro
Kconfig
Makefile