linux/drivers/iio/magnetometer
Linus Walleij de8860b1ed iio: magnetometer: Add driver for Yamaha YAS530
This adds an IIO magnetometer driver for the Yamaha
YAS530 family of magnetometer/compass chips YAS530,
YAS532 and YAS533.

A quick survey of the source code released by different
vendors reveal that we have these variants in the family
with some deployments listed:

 * YAS529 MS-3C (2005 Samsung Aries)
 * YAS530 MS-3E (2011 Samsung Galaxy S Advance)
 * YAS532 MS-3R (2011 Samsung Galaxy S4)
 * YAS533 MS-3F (Vivo 1633, 1707, V3, Y21L)
 * (YAS534 is a magnetic switch)
 * YAS535 MS-6C
 * YAS536 MS-3W
 * YAS537 MS-3T (2015 Samsung Galaxy S6, Note 5)
 * YAS539 MS-3S (2018 Samsung Galaxy A7 SM-A750FN)

The YAS529 is so significantly different from the
YAS53x variants that it will require its own driver.
The YAS537 and YAS539 have slightly different register
sets but have strong similarities so a common driver
patching this one will probably be reasonable.

The source code for Samsung Galaxy A7's YAS539 is not
that is significantly different from the YAS530 in the
Galaxy S Advance, so I believe we will only need this
one driver with quirks to handle all of them.

The YAS539 is actively announced on Yamaha's devices
site:
https://device.yamaha.com/en/lsi/products/e_compass/

This is a driver written from scratch using buffered
IIO and runtime PM handling regulators and reset.

Thanks to Andy Shevchenko for great help in finding all
the special kernel infrastructure functions and quirks
during review of this driver.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: phone-devel@vger.kernel.org
Cc: Jonathan Bakker <xc-racer2@live.ca>
Link: https://lore.kernel.org/r/20201224120820.1120099-2-linus.walleij@linaro.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2021-01-09 21:52:46 +00:00
..
ak8974.c Second set of features and cleanups for IIO in 5.10 2020-09-22 09:45:11 +02:00
ak8975.c Second set of features and cleanups for IIO in 5.10 2020-09-22 09:45:11 +02:00
bmc150_magn_i2c.c iio: magnetometer: bmc150: Add proper compatible for BMM150 2020-07-07 20:24:07 +01:00
bmc150_magn_spi.c iio: magn: bmc150: Use vsprintf extension %pe for symbolic error name 2020-04-19 16:56:18 +01:00
bmc150_magn.c iio:trigger: rename try_reenable() to reenable() plus return void 2020-12-03 19:40:26 +00:00
bmc150_magn.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hid-sensor-magn-3d.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
hmc5843_core.c iio:magn:hmc5843: Fix passing true where iio_shared_by enum required. 2020-09-21 18:54:18 +01:00
hmc5843_i2c.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
hmc5843_spi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
hmc5843.h iio: magnetometer: hmc5843: 'hmc5843_pm_ops' is unused in 1 of 3 files including hmc5843_core.h 2020-07-20 09:03:14 +01:00
Kconfig iio: magnetometer: Add driver for Yamaha YAS530 2021-01-09 21:52:46 +00:00
mag3110.c iio:magnetometer:mag3110: Fix alignment and data leak issues. 2020-12-03 19:40:27 +00:00
Makefile iio: magnetometer: Add driver for Yamaha YAS530 2021-01-09 21:52:46 +00:00
mmc35240.c iio: magnetometer: mmc35240: Fix function header formatting 2020-07-20 09:03:08 +01:00
rm3100-core.c iio: Move attach/detach of the poll func to the core 2020-06-20 17:34:44 +01:00
rm3100-i2c.c iio: magnetometer: Add driver support for PNI RM3100 2018-11-16 18:32:31 +00:00
rm3100-spi.c iio: magnetometer: Add driver support for PNI RM3100 2018-11-16 18:32:31 +00:00
rm3100.h iio: magnetometer: Add driver support for PNI RM3100 2018-11-16 18:32:31 +00:00
st_magn_buffer.c iio: Move attach/detach of the poll func to the core 2020-06-20 17:34:44 +01:00
st_magn_core.c iio: st_sensors: Drop unneeded explicit castings 2020-03-21 10:26:21 +00:00
st_magn_i2c.c iio: st_sensors: Make use of device properties 2020-01-13 21:53:39 +00:00
st_magn_spi.c iio: st_sensors: Make use of device properties 2020-01-13 21:53:39 +00:00
st_magn.h iio:magn: introduce st_magn_get_settings() function 2019-07-27 22:52:05 +01:00
yamaha-yas530.c iio: magnetometer: Add driver for Yamaha YAS530 2021-01-09 21:52:46 +00:00