linux-stable/drivers/iio
Stephan Gerhold c630c17685 iio: accel: kxcjk-1013: Add support for KX023-1025
The KX023-1025 accelerometer [1] seems to be some mixture of
KXCJK and KXTF9. It has the motion interrupt functionality from KXCJK
but also the tap detection from KXTF9, and a lot more functionality.

The configuration register map seems fairly different at first,
but actually all register bits used by the kxcjk-1013 driver are
available at the same bit positions on KX023-1025. It's just quite
misleading because:

  1. The registers have entirely different names and are at different
     addresses, but the bits are mostly named the same (and mean the same).
  2. There are many more registers and bits used that are reserved on KXCJK
     to enable additional functionality.

Ignoring all additionally available functionality for now, the KX023
works just fine after setting up the struct with the correct register
addresses. The only difference that needs to be handled additionally
is that the KX023 supports two configurable interrupt lines (INT1/2).

For now only INT1 is supported so we route all interrupts used by
the driver there.

[1]: https://kionixfs.azureedge.net/en/datasheet/KX023-1025%20Specifications%20Rev%2012.0.pdf

Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2021-05-17 13:54:25 +01:00
..
accel iio: accel: kxcjk-1013: Add support for KX023-1025 2021-05-17 13:54:25 +01:00
adc iio: adc: Add missing MODULE_DEVICE_TABLE 2021-05-17 13:54:24 +01:00
afe iio: afe: iio-rescale: Simplify with dev_err_probe() 2020-09-03 19:40:50 +01:00
amplifiers iio: amplifiers: hmc425a: Simplify with dev_err_probe() 2020-09-03 19:40:50 +01:00
buffer iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
cdc iio:cdc:ad7150: Fix use of uninitialized ret 2021-04-07 08:36:39 +01:00
chemical iio: bme680_i2c: Remove acpi_device_id table 2021-05-17 13:54:23 +01:00
common iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
dac iio: dac: ad5766: Drop duplicate setting of iio_dev.dev.parent and of_node 2021-05-17 13:49:12 +01:00
dummy iio: dummy: iio_simple_dummy_buffer: use triggered buffer core calls 2021-03-11 20:47:05 +00:00
frequency iio: frequency: adf4350: Remove redundant null check before clk_disable_unprepare 2021-01-09 21:52:46 +00:00
gyro iio: st_sensors: Make accel, gyro, magn and pressure probe shared 2021-05-17 13:54:22 +01:00
health iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
humidity iio: am2315: Remove acpi_device_id table 2021-05-17 13:54:23 +01:00
imu iio: imu: st_lsm6dsx: correct ODR in header 2021-05-17 13:54:23 +01:00
light iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
magnetometer iio: st_sensors: Add lsm9ds0 IMU support 2021-05-17 13:54:22 +01:00
multiplexer iio: multiplexer: iio-mux: Simplify with dev_err_probe() 2020-09-03 19:40:51 +01:00
orientation iio: hid-sensors: select IIO_TRIGGERED_BUFFER under HID_SENSOR_IIO_TRIGGER 2021-05-10 14:01:48 +01:00
position iio: position: hid-sensor-custom-intel-hinge: Drop duplicate parent setting. 2021-05-17 13:49:12 +01:00
potentiometer iio: use getter/setter functions 2021-03-11 20:47:07 +00:00
potentiostat iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
pressure iio: st_sensors: Make accel, gyro, magn and pressure probe shared 2021-05-17 13:54:22 +01:00
proximity iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
resolver iio:resolver:ad2s1200: Drop of_match_ptr protection 2020-09-21 18:41:31 +01:00
temperature iio: temperature: add driver support for ti tmp117 2021-05-17 13:49:05 +01:00
test iio: Add basic unit test for iio_format_value() 2021-03-11 20:47:00 +00:00
trigger iio: trigger: stm32-timer: Convert sysfs sprintf/snprintf family to sysfs_emit 2021-05-17 13:49:05 +01:00
iio_core.h iio: buffer: fix use-after-free for attached_buffers array 2021-03-25 19:13:51 +00:00
iio_core_trigger.h iio: core-trigger: make iio_device_register_trigger_consumer() an int return 2021-03-11 20:47:02 +00:00
industrialio-buffer.c iio: core: move @info_exist_lock to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
industrialio-configfs.c
industrialio-core.c iio: core: move @clock_id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:54:21 +01:00
industrialio-event.c iio:event: Add timeout event info type 2021-04-07 08:36:36 +01:00
industrialio-sw-device.c
industrialio-sw-trigger.c
industrialio-trigger.c iio: core: move @trig_readonly from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
industrialio-triggered-event.c iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
inkern.c iio: core: move @info_exist_lock to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
Kconfig iio:cdc:ad7150: Move driver out of staging. 2021-04-07 08:36:37 +01:00
Makefile iio:cdc:ad7150: Move driver out of staging. 2021-04-07 08:36:37 +01:00
TODO iio: add a TODO 2020-03-08 17:28:53 +00:00