Message ID | 20240524090030.336427-3-ramona.bolboaca13@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | adis16501 and adis1657x support | expand |
On Fri, 2024-05-24 at 12:00 +0300, Ramona Gradinariu wrote: > Add support for ADIS16501 device in already existing ADIS16475 > driver. > > Signed-off-by: Ramona Gradinariu <ramona.bolboaca13@gmail.com> > --- Reviewed-by: Nuno Sa <nuno.sa@analog.com> > no changes in v4 > drivers/iio/imu/Kconfig | 4 ++-- > drivers/iio/imu/adis16475.c | 23 +++++++++++++++++++++++ > 2 files changed, 25 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/imu/Kconfig b/drivers/iio/imu/Kconfig > index 52a155ff3250..782fb80e44c2 100644 > --- a/drivers/iio/imu/Kconfig > +++ b/drivers/iio/imu/Kconfig > @@ -36,8 +36,8 @@ config ADIS16475 > select IIO_ADIS_LIB_BUFFER if IIO_BUFFER > help > Say yes here to build support for Analog Devices ADIS16470, ADIS16475, > - ADIS16477, ADIS16465, ADIS16467, ADIS16500, ADIS16505, ADIS16507 > inertial > - sensors. > + ADIS16477, ADIS16465, ADIS16467, ADIS16500, ADIS16501, ADIS16505, > + ADIS16507 inertial sensors. > > To compile this driver as a module, choose M here: the module will be > called adis16475. > diff --git a/drivers/iio/imu/adis16475.c b/drivers/iio/imu/adis16475.c > index 01f55cc902fa..53872b716f4a 100644 > --- a/drivers/iio/imu/adis16475.c > +++ b/drivers/iio/imu/adis16475.c > @@ -661,6 +661,7 @@ enum adis16475_variant { > ADIS16467_2, > ADIS16467_3, > ADIS16500, > + ADIS16501, > ADIS16505_1, > ADIS16505_2, > ADIS16505_3, > @@ -980,6 +981,25 @@ static const struct adis16475_chip_info adis16475_chip_info[] > = { > .flags = ADIS16475_HAS_BURST32 | ADIS16475_HAS_BURST_DELTA_DATA, > .adis_data = ADIS16475_DATA(16500, &adis1650x_timeouts), > }, > + [ADIS16501] = { > + .name = "adis16501", > + .num_channels = ARRAY_SIZE(adis16477_channels), > + .channels = adis16477_channels, > + .gyro_max_val = 1, > + .gyro_max_scale = IIO_RAD_TO_DEGREE(40 << 16), > + .accel_max_val = 1, > + .accel_max_scale = IIO_M_S_2_TO_G(800 << 16), > + .temp_scale = 100, > + .deltang_max_val = IIO_DEGREE_TO_RAD(720), > + .deltvel_max_val = 125, > + .int_clk = 2000, > + .max_dec = 1999, > + .sync = adis16475_sync_mode, > + /* pulse sync not supported */ > + .num_sync = ARRAY_SIZE(adis16475_sync_mode) - 1, > + .flags = ADIS16475_HAS_BURST32 | ADIS16475_HAS_BURST_DELTA_DATA, > + .adis_data = ADIS16475_DATA(16501, &adis1650x_timeouts), > + }, > [ADIS16505_1] = { > .name = "adis16505-1", > .num_channels = ARRAY_SIZE(adis16477_channels), > @@ -1482,6 +1502,8 @@ static const struct of_device_id adis16475_of_match[] = { > .data = &adis16475_chip_info[ADIS16467_3] }, > { .compatible = "adi,adis16500", > .data = &adis16475_chip_info[ADIS16500] }, > + { .compatible = "adi,adis16501", > + .data = &adis16475_chip_info[ADIS16501] }, > { .compatible = "adi,adis16505-1", > .data = &adis16475_chip_info[ADIS16505_1] }, > { .compatible = "adi,adis16505-2", > @@ -1513,6 +1535,7 @@ static const struct spi_device_id adis16475_ids[] = { > { "adis16467-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16467_2] }, > { "adis16467-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16467_3] }, > { "adis16500", (kernel_ulong_t)&adis16475_chip_info[ADIS16500] }, > + { "adis16501", (kernel_ulong_t)&adis16475_chip_info[ADIS16501] }, > { "adis16505-1", (kernel_ulong_t)&adis16475_chip_info[ADIS16505_1] }, > { "adis16505-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16505_2] }, > { "adis16505-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16505_3] }, > -- > 2.34.1 >
diff --git a/drivers/iio/imu/Kconfig b/drivers/iio/imu/Kconfig index 52a155ff3250..782fb80e44c2 100644 --- a/drivers/iio/imu/Kconfig +++ b/drivers/iio/imu/Kconfig @@ -36,8 +36,8 @@ config ADIS16475 select IIO_ADIS_LIB_BUFFER if IIO_BUFFER help Say yes here to build support for Analog Devices ADIS16470, ADIS16475, - ADIS16477, ADIS16465, ADIS16467, ADIS16500, ADIS16505, ADIS16507 inertial - sensors. + ADIS16477, ADIS16465, ADIS16467, ADIS16500, ADIS16501, ADIS16505, + ADIS16507 inertial sensors. To compile this driver as a module, choose M here: the module will be called adis16475. diff --git a/drivers/iio/imu/adis16475.c b/drivers/iio/imu/adis16475.c index 01f55cc902fa..53872b716f4a 100644 --- a/drivers/iio/imu/adis16475.c +++ b/drivers/iio/imu/adis16475.c @@ -661,6 +661,7 @@ enum adis16475_variant { ADIS16467_2, ADIS16467_3, ADIS16500, + ADIS16501, ADIS16505_1, ADIS16505_2, ADIS16505_3, @@ -980,6 +981,25 @@ static const struct adis16475_chip_info adis16475_chip_info[] = { .flags = ADIS16475_HAS_BURST32 | ADIS16475_HAS_BURST_DELTA_DATA, .adis_data = ADIS16475_DATA(16500, &adis1650x_timeouts), }, + [ADIS16501] = { + .name = "adis16501", + .num_channels = ARRAY_SIZE(adis16477_channels), + .channels = adis16477_channels, + .gyro_max_val = 1, + .gyro_max_scale = IIO_RAD_TO_DEGREE(40 << 16), + .accel_max_val = 1, + .accel_max_scale = IIO_M_S_2_TO_G(800 << 16), + .temp_scale = 100, + .deltang_max_val = IIO_DEGREE_TO_RAD(720), + .deltvel_max_val = 125, + .int_clk = 2000, + .max_dec = 1999, + .sync = adis16475_sync_mode, + /* pulse sync not supported */ + .num_sync = ARRAY_SIZE(adis16475_sync_mode) - 1, + .flags = ADIS16475_HAS_BURST32 | ADIS16475_HAS_BURST_DELTA_DATA, + .adis_data = ADIS16475_DATA(16501, &adis1650x_timeouts), + }, [ADIS16505_1] = { .name = "adis16505-1", .num_channels = ARRAY_SIZE(adis16477_channels), @@ -1482,6 +1502,8 @@ static const struct of_device_id adis16475_of_match[] = { .data = &adis16475_chip_info[ADIS16467_3] }, { .compatible = "adi,adis16500", .data = &adis16475_chip_info[ADIS16500] }, + { .compatible = "adi,adis16501", + .data = &adis16475_chip_info[ADIS16501] }, { .compatible = "adi,adis16505-1", .data = &adis16475_chip_info[ADIS16505_1] }, { .compatible = "adi,adis16505-2", @@ -1513,6 +1535,7 @@ static const struct spi_device_id adis16475_ids[] = { { "adis16467-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16467_2] }, { "adis16467-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16467_3] }, { "adis16500", (kernel_ulong_t)&adis16475_chip_info[ADIS16500] }, + { "adis16501", (kernel_ulong_t)&adis16475_chip_info[ADIS16501] }, { "adis16505-1", (kernel_ulong_t)&adis16475_chip_info[ADIS16505_1] }, { "adis16505-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16505_2] }, { "adis16505-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16505_3] },
Add support for ADIS16501 device in already existing ADIS16475 driver. Signed-off-by: Ramona Gradinariu <ramona.bolboaca13@gmail.com> --- no changes in v4 drivers/iio/imu/Kconfig | 4 ++-- drivers/iio/imu/adis16475.c | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) -- 2.34.1