]> www.infradead.org Git - linux.git/commitdiff
iio: imu: adis16475: Re-define ADIS16475_DATA
authorRamona Gradinariu <ramona.bolboaca13@gmail.com>
Mon, 27 May 2024 14:26:16 +0000 (17:26 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 4 Jun 2024 18:53:09 +0000 (19:53 +0100)
Re-define ADIS16475_DATA such that it takes _burst_max_len,
_burst_max_speed_hz and _has_fifo as parameters.
Also, do a preparatory rename operation for ADIS16475_BURST32_MAX_DATA
to ADIS16475_BURST32_MAX_DATA_NO_TS32 to be able to differentiate in
the future between devices which are using 16-bit or 32-bit timestamp
size in burst mode.

Signed-off-by: Ramona Gradinariu <ramona.bolboaca13@gmail.com>
Link: https://lore.kernel.org/r/20240527142618.275897-8-ramona.bolboaca13@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/adis16475.c

index 4b66cf308f222fc3c40d59d8049d623bb5f37eb8..2daa799604c7df8df586e71c8b3771556d3e7eda 100644 (file)
@@ -65,7 +65,7 @@
 #define ADIS16500_BURST32_MASK         BIT(9)
 #define ADIS16500_BURST32(x)           FIELD_PREP(ADIS16500_BURST32_MASK, x)
 /* number of data elements in burst mode */
-#define ADIS16475_BURST32_MAX_DATA     32
+#define ADIS16475_BURST32_MAX_DATA_NO_TS32     32
 #define ADIS16475_BURST_MAX_DATA       20
 #define ADIS16475_MAX_SCAN_DATA                20
 /* spi max speed in brust mode */
@@ -695,32 +695,33 @@ static const char * const adis16475_status_error_msgs[] = {
        [ADIS16475_DIAG_STAT_CLK] = "Clock error",
 };
 
-#define ADIS16475_DATA(_prod_id, _timeouts)                            \
-{                                                                      \
-       .msc_ctrl_reg = ADIS16475_REG_MSG_CTRL,                         \
-       .glob_cmd_reg = ADIS16475_REG_GLOB_CMD,                         \
-       .diag_stat_reg = ADIS16475_REG_DIAG_STAT,                       \
-       .prod_id_reg = ADIS16475_REG_PROD_ID,                           \
-       .prod_id = (_prod_id),                                          \
-       .self_test_mask = BIT(2),                                       \
-       .self_test_reg = ADIS16475_REG_GLOB_CMD,                        \
-       .cs_change_delay = 16,                                          \
-       .read_delay = 5,                                                \
-       .write_delay = 5,                                               \
-       .status_error_msgs = adis16475_status_error_msgs,               \
-       .status_error_mask = BIT(ADIS16475_DIAG_STAT_DATA_PATH) |       \
-               BIT(ADIS16475_DIAG_STAT_FLASH_MEM) |                    \
-               BIT(ADIS16475_DIAG_STAT_SPI) |                          \
-               BIT(ADIS16475_DIAG_STAT_STANDBY) |                      \
-               BIT(ADIS16475_DIAG_STAT_SENSOR) |                       \
-               BIT(ADIS16475_DIAG_STAT_MEMORY) |                       \
-               BIT(ADIS16475_DIAG_STAT_CLK),                           \
-       .unmasked_drdy = true,                                          \
-       .timeouts = (_timeouts),                                        \
-       .burst_reg_cmd = ADIS16475_REG_GLOB_CMD,                        \
-       .burst_len = ADIS16475_BURST_MAX_DATA,                          \
-       .burst_max_len = ADIS16475_BURST32_MAX_DATA,                    \
-       .burst_max_speed_hz = ADIS16475_BURST_MAX_SPEED                 \
+#define ADIS16475_DATA(_prod_id, _timeouts, _burst_max_len, _burst_max_speed_hz, _has_fifo)    \
+{                                                                                              \
+       .msc_ctrl_reg = ADIS16475_REG_MSG_CTRL,                                                 \
+       .glob_cmd_reg = ADIS16475_REG_GLOB_CMD,                                                 \
+       .diag_stat_reg = ADIS16475_REG_DIAG_STAT,                                               \
+       .prod_id_reg = ADIS16475_REG_PROD_ID,                                                   \
+       .prod_id = (_prod_id),                                                                  \
+       .self_test_mask = BIT(2),                                                               \
+       .self_test_reg = ADIS16475_REG_GLOB_CMD,                                                \
+       .cs_change_delay = 16,                                                                  \
+       .read_delay = 5,                                                                        \
+       .write_delay = 5,                                                                       \
+       .status_error_msgs = adis16475_status_error_msgs,                                       \
+       .status_error_mask = BIT(ADIS16475_DIAG_STAT_DATA_PATH) |                               \
+               BIT(ADIS16475_DIAG_STAT_FLASH_MEM) |                                            \
+               BIT(ADIS16475_DIAG_STAT_SPI) |                                                  \
+               BIT(ADIS16475_DIAG_STAT_STANDBY) |                                              \
+               BIT(ADIS16475_DIAG_STAT_SENSOR) |                                               \
+               BIT(ADIS16475_DIAG_STAT_MEMORY) |                                               \
+               BIT(ADIS16475_DIAG_STAT_CLK),                                                   \
+       .unmasked_drdy = true,                                                                  \
+       .has_fifo = _has_fifo,                                                                  \
+       .timeouts = (_timeouts),                                                                \
+       .burst_reg_cmd = ADIS16475_REG_GLOB_CMD,                                                \
+       .burst_len = ADIS16475_BURST_MAX_DATA,                                                  \
+       .burst_max_len = _burst_max_len,                                                        \
+       .burst_max_speed_hz = _burst_max_speed_hz                                               \
 }
 
 static const struct adis16475_sync adis16475_sync_mode[] = {
@@ -758,7 +759,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .max_dec = 1999,
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
-               .adis_data = ADIS16475_DATA(16470, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16470, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16475_1] = {
                .name = "adis16475-1",
@@ -775,7 +778,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .max_dec = 1999,
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
-               .adis_data = ADIS16475_DATA(16475, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16475, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16475_2] = {
                .name = "adis16475-2",
@@ -792,7 +797,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .max_dec = 1999,
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
-               .adis_data = ADIS16475_DATA(16475, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16475, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16475_3] = {
                .name = "adis16475-3",
@@ -809,7 +816,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .max_dec = 1999,
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
-               .adis_data = ADIS16475_DATA(16475, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16475, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16477_1] = {
                .name = "adis16477-1",
@@ -827,7 +836,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
                .flags = ADIS16475_HAS_BURST32 | ADIS16475_HAS_BURST_DELTA_DATA,
-               .adis_data = ADIS16475_DATA(16477, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16477, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16477_2] = {
                .name = "adis16477-2",
@@ -845,7 +856,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
                .flags = ADIS16475_HAS_BURST32 | ADIS16475_HAS_BURST_DELTA_DATA,
-               .adis_data = ADIS16475_DATA(16477, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16477, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16477_3] = {
                .name = "adis16477-3",
@@ -863,7 +876,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
                .flags = ADIS16475_HAS_BURST32 | ADIS16475_HAS_BURST_DELTA_DATA,
-               .adis_data = ADIS16475_DATA(16477, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16477, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16465_1] = {
                .name = "adis16465-1",
@@ -880,7 +895,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .max_dec = 1999,
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
-               .adis_data = ADIS16475_DATA(16465, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16465, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16465_2] = {
                .name = "adis16465-2",
@@ -897,7 +914,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .max_dec = 1999,
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
-               .adis_data = ADIS16475_DATA(16465, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16465, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16465_3] = {
                .name = "adis16465-3",
@@ -914,7 +933,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .max_dec = 1999,
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
-               .adis_data = ADIS16475_DATA(16465, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16465, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16467_1] = {
                .name = "adis16467-1",
@@ -931,7 +952,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .max_dec = 1999,
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
-               .adis_data = ADIS16475_DATA(16467, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16467, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16467_2] = {
                .name = "adis16467-2",
@@ -948,7 +971,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .max_dec = 1999,
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
-               .adis_data = ADIS16475_DATA(16467, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16467, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16467_3] = {
                .name = "adis16467-3",
@@ -965,7 +990,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                .max_dec = 1999,
                .sync = adis16475_sync_mode,
                .num_sync = ARRAY_SIZE(adis16475_sync_mode),
-               .adis_data = ADIS16475_DATA(16467, &adis16475_timeouts),
+               .adis_data = ADIS16475_DATA(16467, &adis16475_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16500] = {
                .name = "adis16500",
@@ -984,7 +1011,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                /* 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(16500, &adis1650x_timeouts),
+               .adis_data = ADIS16475_DATA(16500, &adis1650x_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16501] = {
                .name = "adis16501",
@@ -1003,7 +1032,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                /* 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),
+               .adis_data = ADIS16475_DATA(16501, &adis1650x_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16505_1] = {
                .name = "adis16505-1",
@@ -1022,7 +1053,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                /* 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(16505, &adis1650x_timeouts),
+               .adis_data = ADIS16475_DATA(16505, &adis1650x_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16505_2] = {
                .name = "adis16505-2",
@@ -1041,7 +1074,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                /* 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(16505, &adis1650x_timeouts),
+               .adis_data = ADIS16475_DATA(16505, &adis1650x_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16505_3] = {
                .name = "adis16505-3",
@@ -1060,7 +1095,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                /* 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(16505, &adis1650x_timeouts),
+               .adis_data = ADIS16475_DATA(16505, &adis1650x_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16507_1] = {
                .name = "adis16507-1",
@@ -1079,7 +1116,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                /* 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(16507, &adis1650x_timeouts),
+               .adis_data = ADIS16475_DATA(16507, &adis1650x_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16507_2] = {
                .name = "adis16507-2",
@@ -1098,7 +1137,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                /* 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(16507, &adis1650x_timeouts),
+               .adis_data = ADIS16475_DATA(16507, &adis1650x_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
        [ADIS16507_3] = {
                .name = "adis16507-3",
@@ -1117,7 +1158,9 @@ static const struct adis16475_chip_info adis16475_chip_info[] = {
                /* 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(16507, &adis1650x_timeouts),
+               .adis_data = ADIS16475_DATA(16507, &adis1650x_timeouts,
+                                           ADIS16475_BURST32_MAX_DATA_NO_TS32,
+                                           ADIS16475_BURST_MAX_SPEED, false),
        },
 };
 
@@ -1158,7 +1201,7 @@ static bool adis16475_validate_crc(const u8 *buffer, u16 crc,
 {
        int i;
        /* extra 6 elements for low gyro and accel */
-       const u16 sz = burst32 ? ADIS16475_BURST32_MAX_DATA :
+       const u16 sz = burst32 ? ADIS16475_BURST32_MAX_DATA_NO_TS32 :
                ADIS16475_BURST_MAX_DATA;
 
        for (i = 0; i < sz - 2; i++)