+++ /dev/null
-From e825070f697abddf3b9b0a675ed0ff1884114818 Mon Sep 17 00:00:00 2001
-From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-Date: Tue, 17 Dec 2019 19:10:38 +0200
-Subject: iio: st_gyro: Correct data for LSM9DS0 gyro
-
-From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-
-commit e825070f697abddf3b9b0a675ed0ff1884114818 upstream.
-
-The commit 41c128cb25ce ("iio: st_gyro: Add lsm9ds0-gyro support")
-assumes that gyro in LSM9DS0 is the same as others with 0xd4 WAI ID,
-but datasheet tells slight different story, i.e. the first scale factor
-for the chip is 245 dps, and not 250 dps.
-
-Correct this by introducing a separate settings for LSM9DS0.
-
-Fixes: 41c128cb25ce ("iio: st_gyro: Add lsm9ds0-gyro support")
-Depends-on: 45a4e4220bf4 ("iio: gyro: st_gyro: fix L3GD20H support")
-Cc: Leonard Crestez <leonard.crestez@nxp.com>
-Cc: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
-Cc: <Stable@vger.kernel.org>
-Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/iio/gyro/st_gyro_core.c | 75 +++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 74 insertions(+), 1 deletion(-)
-
---- a/drivers/iio/gyro/st_gyro_core.c
-+++ b/drivers/iio/gyro/st_gyro_core.c
-@@ -135,7 +135,6 @@ static const struct st_sensor_settings s
- [2] = LSM330DLC_GYRO_DEV_NAME,
- [3] = L3G4IS_GYRO_DEV_NAME,
- [4] = LSM330_GYRO_DEV_NAME,
-- [5] = LSM9DS0_GYRO_DEV_NAME,
- },
- .ch = (struct iio_chan_spec *)st_gyro_16bit_channels,
- .odr = {
-@@ -198,6 +197,80 @@ static const struct st_sensor_settings s
- },
- .multi_read_bit = true,
- .bootime = 2,
-+ },
-+ {
-+ .wai = 0xd4,
-+ .wai_addr = ST_SENSORS_DEFAULT_WAI_ADDRESS,
-+ .sensors_supported = {
-+ [0] = LSM9DS0_GYRO_DEV_NAME,
-+ },
-+ .ch = (struct iio_chan_spec *)st_gyro_16bit_channels,
-+ .odr = {
-+ .addr = 0x20,
-+ .mask = GENMASK(7, 6),
-+ .odr_avl = {
-+ { .hz = 95, .value = 0x00, },
-+ { .hz = 190, .value = 0x01, },
-+ { .hz = 380, .value = 0x02, },
-+ { .hz = 760, .value = 0x03, },
-+ },
-+ },
-+ .pw = {
-+ .addr = 0x20,
-+ .mask = BIT(3),
-+ .value_on = ST_SENSORS_DEFAULT_POWER_ON_VALUE,
-+ .value_off = ST_SENSORS_DEFAULT_POWER_OFF_VALUE,
-+ },
-+ .enable_axis = {
-+ .addr = ST_SENSORS_DEFAULT_AXIS_ADDR,
-+ .mask = ST_SENSORS_DEFAULT_AXIS_MASK,
-+ },
-+ .fs = {
-+ .addr = 0x23,
-+ .mask = GENMASK(5, 4),
-+ .fs_avl = {
-+ [0] = {
-+ .num = ST_GYRO_FS_AVL_245DPS,
-+ .value = 0x00,
-+ .gain = IIO_DEGREE_TO_RAD(8750),
-+ },
-+ [1] = {
-+ .num = ST_GYRO_FS_AVL_500DPS,
-+ .value = 0x01,
-+ .gain = IIO_DEGREE_TO_RAD(17500),
-+ },
-+ [2] = {
-+ .num = ST_GYRO_FS_AVL_2000DPS,
-+ .value = 0x02,
-+ .gain = IIO_DEGREE_TO_RAD(70000),
-+ },
-+ },
-+ },
-+ .bdu = {
-+ .addr = 0x23,
-+ .mask = BIT(7),
-+ },
-+ .drdy_irq = {
-+ .int2 = {
-+ .addr = 0x22,
-+ .mask = BIT(3),
-+ },
-+ /*
-+ * The sensor has IHL (active low) and open
-+ * drain settings, but only for INT1 and not
-+ * for the DRDY line on INT2.
-+ */
-+ .stat_drdy = {
-+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR,
-+ .mask = GENMASK(2, 0),
-+ },
-+ },
-+ .sim = {
-+ .addr = 0x23,
-+ .value = BIT(0),
-+ },
-+ .multi_read_bit = true,
-+ .bootime = 2,
- },
- {
- .wai = 0xd7,