Commit 45a4e422 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Jonathan Cameron

iio: gyro: st_gyro: fix L3GD20H support

Add proper support for L3GD20H gyroscope sensor. In particular:
- use L3GD20H as device name instead of L3GD20
- fix available full scales
- fix available sample frequencies

Note that the original patch listed first below introduced broken support for
this part.  The second patch drops the support as it didn't work.

This new patch brings in working support.

Fixes: 9444a300 (IIO: Add support for L3GD20H gyroscope)
Fixes: a0657716 ("iio:gyro: bug on L3GD20H gyroscope support")
Signed-off-by: default avatarLorenzo Bianconi <lorenzo.bianconi@st.com>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 1911f48d
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#define LSM330DL_GYRO_DEV_NAME "lsm330dl_gyro" #define LSM330DL_GYRO_DEV_NAME "lsm330dl_gyro"
#define LSM330DLC_GYRO_DEV_NAME "lsm330dlc_gyro" #define LSM330DLC_GYRO_DEV_NAME "lsm330dlc_gyro"
#define L3GD20_GYRO_DEV_NAME "l3gd20" #define L3GD20_GYRO_DEV_NAME "l3gd20"
#define L3GD20H_GYRO_DEV_NAME "l3gd20h"
#define L3G4IS_GYRO_DEV_NAME "l3g4is_ui" #define L3G4IS_GYRO_DEV_NAME "l3g4is_ui"
#define LSM330_GYRO_DEV_NAME "lsm330_gyro" #define LSM330_GYRO_DEV_NAME "lsm330_gyro"
#define LSM9DS0_GYRO_DEV_NAME "lsm9ds0_gyro" #define LSM9DS0_GYRO_DEV_NAME "lsm9ds0_gyro"
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#define ST_GYRO_DEFAULT_OUT_Z_L_ADDR 0x2c #define ST_GYRO_DEFAULT_OUT_Z_L_ADDR 0x2c
/* FULLSCALE */ /* FULLSCALE */
#define ST_GYRO_FS_AVL_245DPS 245
#define ST_GYRO_FS_AVL_250DPS 250 #define ST_GYRO_FS_AVL_250DPS 250
#define ST_GYRO_FS_AVL_500DPS 500 #define ST_GYRO_FS_AVL_500DPS 500
#define ST_GYRO_FS_AVL_2000DPS 2000 #define ST_GYRO_FS_AVL_2000DPS 2000
...@@ -196,17 +197,17 @@ static const struct st_sensor_settings st_gyro_sensors_settings[] = { ...@@ -196,17 +197,17 @@ static const struct st_sensor_settings st_gyro_sensors_settings[] = {
.wai = 0xd7, .wai = 0xd7,
.wai_addr = ST_SENSORS_DEFAULT_WAI_ADDRESS, .wai_addr = ST_SENSORS_DEFAULT_WAI_ADDRESS,
.sensors_supported = { .sensors_supported = {
[0] = L3GD20_GYRO_DEV_NAME, [0] = L3GD20H_GYRO_DEV_NAME,
}, },
.ch = (struct iio_chan_spec *)st_gyro_16bit_channels, .ch = (struct iio_chan_spec *)st_gyro_16bit_channels,
.odr = { .odr = {
.addr = 0x20, .addr = 0x20,
.mask = 0xc0, .mask = 0xc0,
.odr_avl = { .odr_avl = {
{ .hz = 95, .value = 0x00, }, { .hz = 100, .value = 0x00, },
{ .hz = 190, .value = 0x01, }, { .hz = 200, .value = 0x01, },
{ .hz = 380, .value = 0x02, }, { .hz = 400, .value = 0x02, },
{ .hz = 760, .value = 0x03, }, { .hz = 800, .value = 0x03, },
}, },
}, },
.pw = { .pw = {
...@@ -224,7 +225,7 @@ static const struct st_sensor_settings st_gyro_sensors_settings[] = { ...@@ -224,7 +225,7 @@ static const struct st_sensor_settings st_gyro_sensors_settings[] = {
.mask = 0x30, .mask = 0x30,
.fs_avl = { .fs_avl = {
[0] = { [0] = {
.num = ST_GYRO_FS_AVL_250DPS, .num = ST_GYRO_FS_AVL_245DPS,
.value = 0x00, .value = 0x00,
.gain = IIO_DEGREE_TO_RAD(8750), .gain = IIO_DEGREE_TO_RAD(8750),
}, },
......
...@@ -40,6 +40,10 @@ static const struct of_device_id st_gyro_of_match[] = { ...@@ -40,6 +40,10 @@ static const struct of_device_id st_gyro_of_match[] = {
.compatible = "st,l3gd20-gyro", .compatible = "st,l3gd20-gyro",
.data = L3GD20_GYRO_DEV_NAME, .data = L3GD20_GYRO_DEV_NAME,
}, },
{
.compatible = "st,l3gd20h-gyro",
.data = L3GD20H_GYRO_DEV_NAME,
},
{ {
.compatible = "st,l3g4is-gyro", .compatible = "st,l3g4is-gyro",
.data = L3G4IS_GYRO_DEV_NAME, .data = L3G4IS_GYRO_DEV_NAME,
...@@ -95,6 +99,7 @@ static const struct i2c_device_id st_gyro_id_table[] = { ...@@ -95,6 +99,7 @@ static const struct i2c_device_id st_gyro_id_table[] = {
{ LSM330DL_GYRO_DEV_NAME }, { LSM330DL_GYRO_DEV_NAME },
{ LSM330DLC_GYRO_DEV_NAME }, { LSM330DLC_GYRO_DEV_NAME },
{ L3GD20_GYRO_DEV_NAME }, { L3GD20_GYRO_DEV_NAME },
{ L3GD20H_GYRO_DEV_NAME },
{ L3G4IS_GYRO_DEV_NAME }, { L3G4IS_GYRO_DEV_NAME },
{ LSM330_GYRO_DEV_NAME }, { LSM330_GYRO_DEV_NAME },
{ LSM9DS0_GYRO_DEV_NAME }, { LSM9DS0_GYRO_DEV_NAME },
......
...@@ -52,6 +52,7 @@ static const struct spi_device_id st_gyro_id_table[] = { ...@@ -52,6 +52,7 @@ static const struct spi_device_id st_gyro_id_table[] = {
{ LSM330DL_GYRO_DEV_NAME }, { LSM330DL_GYRO_DEV_NAME },
{ LSM330DLC_GYRO_DEV_NAME }, { LSM330DLC_GYRO_DEV_NAME },
{ L3GD20_GYRO_DEV_NAME }, { L3GD20_GYRO_DEV_NAME },
{ L3GD20H_GYRO_DEV_NAME },
{ L3G4IS_GYRO_DEV_NAME }, { L3G4IS_GYRO_DEV_NAME },
{ LSM330_GYRO_DEV_NAME }, { LSM330_GYRO_DEV_NAME },
{ LSM9DS0_GYRO_DEV_NAME }, { LSM9DS0_GYRO_DEV_NAME },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment