STRUCT ADIS_DATA(9)
π 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. If0the default length is2bytes long.prod_id_regβ register address of the PROD_ID register.prod_idβ product ID code that should be expected when readingprod_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βTrueif 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βTruefor devices that cannot mask/unmask the data ready pin.has_pagingβTrueif ADIS device has paged registers.has_fifoβTrueif ADIS device has a hardware FIFO.burst_reg_cmdβ register command that triggers burst.burst_lenβ burst size in the SPI RX buffer. Ifburst_max_lenis 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms