]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drivers: iio: imu: Add support for ADIS16501
authorRamona Gradinariu <ramona.bolboaca13@gmail.com>
Mon, 27 May 2024 14:26:11 +0000 (17:26 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 4 Jun 2024 18:53:09 +0000 (19:53 +0100)
Add support for ADIS16501 device in already existing ADIS16475
driver.

Reviewed-by: Nuno Sa <nuno.sa@analog.com>
Signed-off-by: Ramona Gradinariu <ramona.bolboaca13@gmail.com>
Link: https://lore.kernel.org/r/20240527142618.275897-3-ramona.bolboaca13@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/Kconfig
drivers/iio/imu/adis16475.c

index 52a155ff3250476632016bbeef369d523685d22b..782fb80e44c234911d07a56a1cad11eaed029303 100644 (file)
@@ -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.
index 060a21c70460d290811c28fc9325a6e42df9bb01..8dc22d01246a2bfee2eae20c3d3ffbc4dc1f5f81 100644 (file)
@@ -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),
@@ -1484,6 +1504,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",
@@ -1515,6 +1537,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] },