Re: [PATCH v4 02/10] drivers: iio: imu: Add support for ADIS16501

From: Nuno Sá
Date: Fri May 24 2024 - 06:58:47 EST


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@xxxxxxxxx>
> ---

Reviewed-by: Nuno Sa <nuno.sa@xxxxxxxxxx>

> 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
>