Commit 721a2a7e authored by Stephan Gerhold's avatar Stephan Gerhold Committed by Jonathan Cameron

iio: magnetometer: st_magn: Add LSM303C

The magnetometer part of ST LSM303C is similar (perhaps even identical)
to the already supported standalone LIS3MDL magnetometer, so just
add the new st,lsm303c-magn compatible for the existing definitions.
Signed-off-by: default avatarStephan Gerhold <stephan@gerhold.net>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20230106102239.9647-4-stephan@gerhold.netSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 23fd6f0b
...@@ -119,7 +119,7 @@ config IIO_ST_MAGN_3AXIS ...@@ -119,7 +119,7 @@ config IIO_ST_MAGN_3AXIS
select IIO_TRIGGERED_BUFFER if (IIO_BUFFER) select IIO_TRIGGERED_BUFFER if (IIO_BUFFER)
help help
Say yes here to build support for STMicroelectronics magnetometers: Say yes here to build support for STMicroelectronics magnetometers:
LSM303DLHC, LSM303DLM, LIS3MDL. LSM303C, LSM303DLHC, LSM303DLM, LIS3MDL.
Also need to enable at least one of I2C and SPI interface drivers Also need to enable at least one of I2C and SPI interface drivers
below. below.
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#define LIS2MDL_MAGN_DEV_NAME "lis2mdl" #define LIS2MDL_MAGN_DEV_NAME "lis2mdl"
#define LSM9DS1_MAGN_DEV_NAME "lsm9ds1_magn" #define LSM9DS1_MAGN_DEV_NAME "lsm9ds1_magn"
#define IIS2MDC_MAGN_DEV_NAME "iis2mdc" #define IIS2MDC_MAGN_DEV_NAME "iis2mdc"
#define LSM303C_MAGN_DEV_NAME "lsm303c_magn"
#ifdef CONFIG_IIO_BUFFER #ifdef CONFIG_IIO_BUFFER
int st_magn_allocate_ring(struct iio_dev *indio_dev); int st_magn_allocate_ring(struct iio_dev *indio_dev);
......
...@@ -305,6 +305,7 @@ static const struct st_sensor_settings st_magn_sensors_settings[] = { ...@@ -305,6 +305,7 @@ static const struct st_sensor_settings st_magn_sensors_settings[] = {
.sensors_supported = { .sensors_supported = {
[0] = LIS3MDL_MAGN_DEV_NAME, [0] = LIS3MDL_MAGN_DEV_NAME,
[1] = LSM9DS1_MAGN_DEV_NAME, [1] = LSM9DS1_MAGN_DEV_NAME,
[2] = LSM303C_MAGN_DEV_NAME,
}, },
.ch = (struct iio_chan_spec *)st_magn_2_16bit_channels, .ch = (struct iio_chan_spec *)st_magn_2_16bit_channels,
.odr = { .odr = {
......
...@@ -50,6 +50,10 @@ static const struct of_device_id st_magn_of_match[] = { ...@@ -50,6 +50,10 @@ static const struct of_device_id st_magn_of_match[] = {
.compatible = "st,iis2mdc", .compatible = "st,iis2mdc",
.data = IIS2MDC_MAGN_DEV_NAME, .data = IIS2MDC_MAGN_DEV_NAME,
}, },
{
.compatible = "st,lsm303c-magn",
.data = LSM303C_MAGN_DEV_NAME,
},
{}, {},
}; };
MODULE_DEVICE_TABLE(of, st_magn_of_match); MODULE_DEVICE_TABLE(of, st_magn_of_match);
...@@ -97,6 +101,7 @@ static const struct i2c_device_id st_magn_id_table[] = { ...@@ -97,6 +101,7 @@ static const struct i2c_device_id st_magn_id_table[] = {
{ LIS2MDL_MAGN_DEV_NAME }, { LIS2MDL_MAGN_DEV_NAME },
{ LSM9DS1_MAGN_DEV_NAME }, { LSM9DS1_MAGN_DEV_NAME },
{ IIS2MDC_MAGN_DEV_NAME }, { IIS2MDC_MAGN_DEV_NAME },
{ LSM303C_MAGN_DEV_NAME },
{}, {},
}; };
MODULE_DEVICE_TABLE(i2c, st_magn_id_table); MODULE_DEVICE_TABLE(i2c, st_magn_id_table);
......
...@@ -45,6 +45,10 @@ static const struct of_device_id st_magn_of_match[] = { ...@@ -45,6 +45,10 @@ static const struct of_device_id st_magn_of_match[] = {
.compatible = "st,iis2mdc", .compatible = "st,iis2mdc",
.data = IIS2MDC_MAGN_DEV_NAME, .data = IIS2MDC_MAGN_DEV_NAME,
}, },
{
.compatible = "st,lsm303c-magn",
.data = LSM303C_MAGN_DEV_NAME,
},
{} {}
}; };
MODULE_DEVICE_TABLE(of, st_magn_of_match); MODULE_DEVICE_TABLE(of, st_magn_of_match);
...@@ -89,6 +93,7 @@ static const struct spi_device_id st_magn_id_table[] = { ...@@ -89,6 +93,7 @@ static const struct spi_device_id st_magn_id_table[] = {
{ LIS2MDL_MAGN_DEV_NAME }, { LIS2MDL_MAGN_DEV_NAME },
{ LSM9DS1_MAGN_DEV_NAME }, { LSM9DS1_MAGN_DEV_NAME },
{ IIS2MDC_MAGN_DEV_NAME }, { IIS2MDC_MAGN_DEV_NAME },
{ LSM303C_MAGN_DEV_NAME },
{}, {},
}; };
MODULE_DEVICE_TABLE(spi, st_magn_id_table); MODULE_DEVICE_TABLE(spi, st_magn_id_table);
......
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