STRUCT ADIS_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so bestie, this is struct adis_data from the struct adis_data(9) page in the Kernel API Manual β€” literally the ADIS chip variant specific data πŸ’…βœ¨. It’s giving β€œthis chip has opinions” energy, and we’re gonna respect every single one of them πŸŽ€.


✨ SYNOPSIS ✨

here’s the whole struct, no edits, no vibes-based renaming, no cap:

       struct adis_data {
           unsigned int read_delay;
           unsigned int write_delay;
           unsigned int cs_change_delay;
           unsigned int glob_cmd_reg;
           unsigned int msc_ctrl_reg;
           unsigned int diag_stat_reg;
           unsigned int diag_stat_size;
           unsigned int prod_id_reg;
           unsigned int prod_id;
           unsigned int self_test_mask;
           unsigned int self_test_reg;
           bool self_test_no_autoclear;
           const struct adis_timeout *timeouts;
           const char * const *status_error_msgs;
           unsigned int status_error_mask;
           int (*enable_irq)(struct adis *adis, bool enable);
           bool unmasked_drdy;
           bool has_paging;
           bool has_fifo;
           unsigned int burst_reg_cmd;
           unsigned int burst_len;
           unsigned int burst_max_len;
           unsigned int burst_max_speed_hz;
        };

πŸŽ€ Members πŸŽ€

okay so every member of this iconic struct, one by one β€” no skips, no β€œwe’ll get to it later” behavior πŸ™ˆ:

  • read_delay β€” SPI delay for read operations in us.
  • write_delay β€” SPI delay for write operations in us.
  • cs_change_delay β€” SPI delay between CS changes in us.
  • glob_cmd_reg β€” register address of the GLOB_CMD register.
  • msc_ctrl_reg β€” register address of the MSC_CTRL register.
  • diag_stat_reg β€” register address of the DIAG_STAT register.
  • diag_stat_size β€” length (in bytes) of the DIAG_STAT register. If 0 the default length is 2 bytes long.
  • prod_id_reg β€” register address of the PROD_ID register.
  • prod_id β€” product ID code that should be expected when reading prod_id_reg.
  • self_test_mask β€” bitmask of supported self-test operations.
  • self_test_reg β€” register address to request self test command.
  • self_test_no_autoclear β€” True if the device’s self-test needs clear of ctrl reg.
  • timeouts β€” chip specific delays.
  • status_error_msgs β€” array of error messages.
  • status_error_mask β€” bitmask of errors supported by the device.
  • enable_irq β€” hook for ADIS devices that have a special IRQ enable/disable.
  • unmasked_drdy β€” True for devices that cannot mask/unmask the data ready pin.
  • has_paging β€” True if ADIS device has paged registers.
  • has_fifo β€” True if ADIS device has a hardware FIFO.
  • burst_reg_cmd β€” register command that triggers burst.
  • burst_len β€” burst size in the SPI RX buffer. If burst_max_len is defined, this should be the minimum size supported by the device.
  • burst_max_len β€” holds the maximum burst size when the device supports more than one burst mode with different sizes.
  • burst_max_speed_hz β€” maximum spi speed that can be used in burst mode.

πŸ”— SEE ALSO πŸ”—

Kernel file ./include/linux/iio/imu/adis.h β€” and the whole squad is: struct adis_ops(9), struct adis(9), adis_reset(9), __adis_write_reg_8(9), __adis_write_reg_16(9), __adis_write_reg_32(9), __adis_read_reg_16(9), __adis_read_reg_32(9), adis_write_reg(9), adis_read_reg(9), adis_write_reg_8(9), adis_write_reg_16(9), adis_write_reg_32(9), adis_read_reg_16(9), adis_read_reg_32(9), adis_update_bits_base(9), adis_update_bits(9) πŸ¦‹.


πŸ’Œ cute little sign-off: source/version is ./include/linux/iio/imu, date is October 2026, and this page is struct adis_data(9) β€” mwah, bye bestie 🫢✨

πŸ“¦ where this page comes from