[PATCH v4 0/4] Add support for AK09918

Barnabás Czémán
2024-08-18T22:29:48Z

Add support for AK09918 which is register and scaling compatible with
AK09912.

It was tested in Xiaomi Redmi 5 Plus (vince).

magnetometer@c {
compatible = "asahi-kasei,ak09918", "asahi-kasei,ak09912";
reg = <0x0c>;
vdd-supply = <&pm8953_l6>;
mount-matrix = "1", "0", "0",
"0", "1", "0",
"0", "0", "1";
};

Add a fix for data reading according to datasheet [1] (9.4.3.2.)
ST2 register have to be read out after read measurment data as third step
because ST2 will realasing the lock on the measurment data. Without it
the next reading will fail.

[1] https://www.akm.com/content/dam/documents/products/electronic-compass/ak09918c/ak09918c-en-datasheet.pdf

Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
---
Changes in v4:
- Fix commit title.
- Add Fixes tag.
- Add more comments inline.
- Rebase on latest next.
- Link to v3: https://lore.kernel.org/r/20240809-ak09918-v3-0-6b036db4d5ec@mainlining.org

Changes in v3:
- Relax failure on unknown device id
for support more register compatible variants.
- Change to fallback compatible.
- Make ST2 to be always read after measuremnt read.
- Reword fix commit with more explanation.
- Link to v2: https://lore.kernel.org/r/20240806-ak09918-v2-0-c300da66c198@mainlining.org

Changes in v2:
- Remove unnecessary ak09918 compatbile.
- Link to v1: https://lore.kernel.org/r/20240805-ak09918-v1-0-70837eebd7d8@mainlining.org

---
Barnabás Czémán (2):
iio: magnetometer: ak8975: Relax failure on unknown id
iio: magnetometer: ak8975: Fix reading for ak099xx sensors

Danila Tikhonov (2):
dt-bindings: iio: magnetometer: Add ak09118
iio: magnetometer: ak8975: Add AK09118 support

.../iio/magnetometer/asahi-kasei,ak8975.yaml | 4 ++
drivers/iio/magnetometer/Kconfig | 2 +-
drivers/iio/magnetometer/ak8975.c | 78 ++++++++++++++++------
3 files changed, 64 insertions(+), 20 deletions(-)
---
base-commit: 367b5c3d53e57d51a5878816804652963da90950
change-id: 20240805-ak09918-4a6cfef91c32

Best regards,
--
Barnabás Czémán <barnabas.czeman@mainlining.org>