linux/drivers/iio/accel
Hans de Goede addab6febc iio: accel: bmc150: Add support for DUAL250E ACPI DSM for setting the hinge angle
Some 360 degree hinges (yoga) style 2-in-1 devices use 2 bmc150 accels
to allow the OS to determine the angle between the display and the base
of the device, so that the OS can determine if the 2-in-1 is in laptop
or in tablet-mode.

On Windows both accelerometers are read (polled) by a special service
and this service calls the DSM (Device Specific Method), which in turn
translates the angles to one of laptop/tablet/tent/stand mode and then
notifies the EC about the new mode and the EC then enables or disables
the builtin keyboard and touchpad based in the mode.

When the 2-in-1 is powered-on or resumed folded in tablet mode the
EC senses this independent of the DSM by using a HALL effect sensor
which senses that the keyboard has been folded away behind the display.

At power-on or resume the EC disables the keyboard based on this and
the only way to get the keyboard to work after this is to call the
DSM to re-enable it.

Call the DSM on probe() and resume() to fix the keyboard not working
when powered-on / resumed in tablet-mode.

This patch was developed and tested on a Lenovo Yoga 300-IBR.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20210523170103.176958-8-hdegoede@redhat.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2021-06-09 20:53:15 +01:00
..
adis16201.c iio: adis: Cleanout unused headers 2021-06-04 09:28:10 +01:00
adis16209.c iio: adis: Cleanout unused headers 2021-06-04 09:28:10 +01:00
adxl345_core.c Replace HTTP links with HTTPS ones: drivers/iio 2020-07-13 15:05:59 +01:00
adxl345_i2c.c
adxl345_spi.c
adxl345.h
adxl372_i2c.c iio: adxl372_i2c: Add OF device ID table 2020-08-22 10:53:16 +01:00
adxl372_spi.c iio: adxl372_spi: change indentation for of_table 2020-08-22 10:53:15 +01:00
adxl372.c iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
adxl372.h
bma180.c iio: accel: bma180: Add missing 500 Hz / 1000 Hz bandwidth 2021-06-03 18:24:14 +01:00
bma220_spi.c iio: accel: bma220: Fix buffer alignment in iio_push_to_buffers_with_timestamp() 2021-05-17 13:54:28 +01:00
bma400_core.c iio: Drop Duplicated "mount-matrix" parameter 2021-06-03 18:24:13 +01:00
bma400_i2c.c iio: accel: Add driver for the BMA400 2019-12-29 15:20:02 +00:00
bma400_spi.c iio: accel: bma400: add support for bma400 spi 2020-06-14 11:49:16 +01:00
bma400.h iio: accel: bma400: basic regulator support 2019-12-29 15:20:02 +00:00
bmc150-accel-core.c iio: accel: bmc150: Add support for DUAL250E ACPI DSM for setting the hinge angle 2021-06-09 20:53:15 +01:00
bmc150-accel-i2c.c iio: accel: bmc150: Add support for DUAL250E ACPI DSM for setting the hinge angle 2021-06-09 20:53:15 +01:00
bmc150-accel-spi.c iio: accel: bmc150-accel: Add support for BMA222 2020-12-03 19:32:41 +00:00
bmc150-accel.h iio: accel: bmc150: Add support for DUAL250E ACPI DSM for setting the hinge angle 2021-06-09 20:53:15 +01:00
bmi088-accel-core.c iio: accel: bmi088: Balance runtime pm + use pm_runtime_resume_and_get() 2021-05-17 13:54:27 +01:00
bmi088-accel-spi.c iio: accel: Add support for the Bosch-Sensortec BMI088 2021-03-11 20:46:58 +00:00
bmi088-accel.h iio: accel: Add support for the Bosch-Sensortec BMI088 2021-03-11 20:46:58 +00:00
cros_ec_accel_legacy.c iio: cros: unify hw fifo attributes without API changes 2021-03-25 19:13:52 +00:00
da280.c iio: Remove kernel-doc keyword in file header comment 2021-03-25 19:13:49 +00:00
da311.c iio: Remove kernel-doc keyword in file header comment 2021-03-25 19:13:49 +00:00
dmard06.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
dmard09.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
dmard10.c iio: Remove kernel-doc keyword in file header comment 2021-03-25 19:13:49 +00:00
fxls8962af-core.c iio: Drop Duplicated "mount-matrix" parameter 2021-06-03 18:24:13 +01:00
fxls8962af-i2c.c iio: accel: add support for FXLS8962AF/FXLS8964AF accelerometers 2021-05-17 13:54:23 +01:00
fxls8962af-spi.c iio: accel: add support for FXLS8962AF/FXLS8964AF accelerometers 2021-05-17 13:54:23 +01:00
fxls8962af.h iio: accel: add support for FXLS8962AF/FXLS8964AF accelerometers 2021-05-17 13:54:23 +01:00
hid-sensor-accel-3d.c iio: accel: hid: Fix buffer alignment in iio_push_to_buffers_with_timestamp() 2021-05-17 13:54:28 +01:00
Kconfig iio: accel: add support for FXLS8962AF/FXLS8964AF accelerometers 2021-05-17 13:54:23 +01:00
kxcjk-1013.c iio: Drop Duplicated "mount-matrix" parameter 2021-06-03 18:24:13 +01:00
kxsd9-i2c.c iio: accel: kxsd9-i2c: Use mod_devicetable.h and drop of_match_ptr macro 2020-04-25 15:31:34 +01:00
kxsd9-spi.c
kxsd9.c iio: Drop Duplicated "mount-matrix" parameter 2021-06-03 18:24:13 +01:00
kxsd9.h
Makefile iio: accel: add support for FXLS8962AF/FXLS8964AF accelerometers 2021-05-17 13:54:23 +01:00
mc3230.c iio: Remove kernel-doc keyword in file header comment 2021-03-25 19:13:49 +00:00
mma7455_core.c iio:accel:mma7455: Fix timestamp alignment and prevent data leak. 2020-08-22 11:38:52 +01:00
mma7455_i2c.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mma7455_spi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mma7455.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mma7660.c iio: Remove kernel-doc keyword in file header comment 2021-03-25 19:13:49 +00:00
mma8452.c iio: accel: mma8452: Balance runtime pm + use pm_runtime_resume_and_get() 2021-05-17 13:54:27 +01:00
mma9551_core.c iio: accel: mma9551/3: Balance untime pm + use pm_runtime_resume_and_get() 2021-05-17 13:54:25 +01:00
mma9551_core.h
mma9551.c iio: accel: mma9551/3: Balance untime pm + use pm_runtime_resume_and_get() 2021-05-17 13:54:25 +01:00
mma9553.c iio: accel: mma9551/3: Balance untime pm + use pm_runtime_resume_and_get() 2021-05-17 13:54:25 +01:00
mxc4005.c iio: accel: mxc4005: Fix overread of data and alignment issue. 2021-05-17 13:54:28 +01:00
mxc6255.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
sca3000.c iio: accel: sca3000: kernel-doc fixes. Missing - and wrong function names. 2021-03-25 19:13:51 +00:00
sca3300.c iio: accel: Add driver for Murata SCA3300 accelerometer 2021-05-17 13:49:09 +01:00
ssp_accel_sensor.c iio: make use of devm_iio_kfifo_buffer_setup() helper 2021-03-11 20:47:01 +00:00
st_accel_buffer.c iio: Move attach/detach of the poll func to the core 2020-06-20 17:34:44 +01:00
st_accel_core.c iio: accel: st_sensors: Stop copying channels 2021-06-03 18:24:13 +01:00
st_accel_i2c.c iio: st_sensors: Call st_sensors_power_enable() from bus drivers 2021-05-17 13:54:22 +01:00
st_accel_spi.c iio: st_sensors: Call st_sensors_power_enable() from bus drivers 2021-05-17 13:54:22 +01:00
st_accel.h iio: st_sensors: Make accel, gyro, magn and pressure probe shared 2021-05-17 13:54:22 +01:00
stk8ba50.c iio: accel: stk8ba50: Fix buffer alignment in iio_push_to_buffers_with_timestamp() 2021-05-17 13:54:28 +01:00
stk8312.c iio: accel: stk8312: Fix buffer alignment in iio_push_to_buffers_with_timestamp() 2021-05-17 13:54:28 +01:00