Commit 510c0106 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Jonathan Cameron

iio: imu: st_lsm6dsx: use i2c/spi device name for iio_dev name

Use the correct chip name (e.g. lsm6dsm) as suffix for iio_dev name
instead of a generic one (lsm6dsx)
Signed-off-by: default avatarLorenzo Bianconi <lorenzo.bianconi@st.com>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 63c3ecd9
...@@ -71,6 +71,7 @@ enum st_lsm6dsx_fifo_mode { ...@@ -71,6 +71,7 @@ enum st_lsm6dsx_fifo_mode {
/** /**
* struct st_lsm6dsx_sensor - ST IMU sensor instance * struct st_lsm6dsx_sensor - ST IMU sensor instance
* @name: Sensor name.
* @id: Sensor identifier. * @id: Sensor identifier.
* @hw: Pointer to instance of struct st_lsm6dsx_hw. * @hw: Pointer to instance of struct st_lsm6dsx_hw.
* @gain: Configured sensor sensitivity. * @gain: Configured sensor sensitivity.
...@@ -83,6 +84,7 @@ enum st_lsm6dsx_fifo_mode { ...@@ -83,6 +84,7 @@ enum st_lsm6dsx_fifo_mode {
* @ts: Latest timestamp from the interrupt handler. * @ts: Latest timestamp from the interrupt handler.
*/ */
struct st_lsm6dsx_sensor { struct st_lsm6dsx_sensor {
char name[32];
enum st_lsm6dsx_sensor_id id; enum st_lsm6dsx_sensor_id id;
struct st_lsm6dsx_hw *hw; struct st_lsm6dsx_hw *hw;
...@@ -133,7 +135,7 @@ struct st_lsm6dsx_hw { ...@@ -133,7 +135,7 @@ struct st_lsm6dsx_hw {
#endif /* CONFIG_SPI_MASTER */ #endif /* CONFIG_SPI_MASTER */
}; };
int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
const struct st_lsm6dsx_transfer_function *tf_ops); const struct st_lsm6dsx_transfer_function *tf_ops);
int st_lsm6dsx_sensor_enable(struct st_lsm6dsx_sensor *sensor); int st_lsm6dsx_sensor_enable(struct st_lsm6dsx_sensor *sensor);
int st_lsm6dsx_sensor_disable(struct st_lsm6dsx_sensor *sensor); int st_lsm6dsx_sensor_disable(struct st_lsm6dsx_sensor *sensor);
......
...@@ -642,7 +642,8 @@ static int st_lsm6dsx_init_device(struct st_lsm6dsx_hw *hw) ...@@ -642,7 +642,8 @@ static int st_lsm6dsx_init_device(struct st_lsm6dsx_hw *hw)
} }
static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw, static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
enum st_lsm6dsx_sensor_id id) enum st_lsm6dsx_sensor_id id,
const char *name)
{ {
struct st_lsm6dsx_sensor *sensor; struct st_lsm6dsx_sensor *sensor;
struct iio_dev *iio_dev; struct iio_dev *iio_dev;
...@@ -666,27 +667,30 @@ static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw, ...@@ -666,27 +667,30 @@ static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
case ST_LSM6DSX_ID_ACC: case ST_LSM6DSX_ID_ACC:
iio_dev->channels = st_lsm6dsx_acc_channels; iio_dev->channels = st_lsm6dsx_acc_channels;
iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_acc_channels); iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_acc_channels);
iio_dev->name = "lsm6dsx_accel";
iio_dev->info = &st_lsm6dsx_acc_info; iio_dev->info = &st_lsm6dsx_acc_info;
sensor->decimator_mask = ST_LSM6DSX_REG_ACC_DEC_MASK; sensor->decimator_mask = ST_LSM6DSX_REG_ACC_DEC_MASK;
scnprintf(sensor->name, sizeof(sensor->name), "%s_accel",
name);
break; break;
case ST_LSM6DSX_ID_GYRO: case ST_LSM6DSX_ID_GYRO:
iio_dev->channels = st_lsm6dsx_gyro_channels; iio_dev->channels = st_lsm6dsx_gyro_channels;
iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_gyro_channels); iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_gyro_channels);
iio_dev->name = "lsm6dsx_gyro";
iio_dev->info = &st_lsm6dsx_gyro_info; iio_dev->info = &st_lsm6dsx_gyro_info;
sensor->decimator_mask = ST_LSM6DSX_REG_GYRO_DEC_MASK; sensor->decimator_mask = ST_LSM6DSX_REG_GYRO_DEC_MASK;
scnprintf(sensor->name, sizeof(sensor->name), "%s_gyro",
name);
break; break;
default: default:
return NULL; return NULL;
} }
iio_dev->name = sensor->name;
return iio_dev; return iio_dev;
} }
int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
const struct st_lsm6dsx_transfer_function *tf_ops) const struct st_lsm6dsx_transfer_function *tf_ops)
{ {
struct st_lsm6dsx_hw *hw; struct st_lsm6dsx_hw *hw;
...@@ -710,7 +714,7 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, ...@@ -710,7 +714,7 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
return err; return err;
for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) { for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) {
hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i); hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i, name);
if (!hw->iio_devs[i]) if (!hw->iio_devs[i])
return -ENOMEM; return -ENOMEM;
} }
......
...@@ -61,7 +61,7 @@ static int st_lsm6dsx_i2c_probe(struct i2c_client *client, ...@@ -61,7 +61,7 @@ static int st_lsm6dsx_i2c_probe(struct i2c_client *client,
const struct i2c_device_id *id) const struct i2c_device_id *id)
{ {
return st_lsm6dsx_probe(&client->dev, client->irq, return st_lsm6dsx_probe(&client->dev, client->irq,
(int)id->driver_data, (int)id->driver_data, id->name,
&st_lsm6dsx_transfer_fn); &st_lsm6dsx_transfer_fn);
} }
......
...@@ -78,7 +78,7 @@ static int st_lsm6dsx_spi_probe(struct spi_device *spi) ...@@ -78,7 +78,7 @@ static int st_lsm6dsx_spi_probe(struct spi_device *spi)
const struct spi_device_id *id = spi_get_device_id(spi); const struct spi_device_id *id = spi_get_device_id(spi);
return st_lsm6dsx_probe(&spi->dev, spi->irq, return st_lsm6dsx_probe(&spi->dev, spi->irq,
(int)id->driver_data, (int)id->driver_data, id->name,
&st_lsm6dsx_transfer_fn); &st_lsm6dsx_transfer_fn);
} }
......
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