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: Lorenzo Bianconi <lorenzo.bianconi@st.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
63c3ecd946
commit
510c010630
|
@ -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 {
|
||||||
* @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 {
|
||||||
#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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
||||||
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,
|
||||||
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,
|
||||||
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)
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue