STRUCT AD_SIGMA_DELTA_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

okay bestie, welcome to the Kernel API Manual πŸ’– this one is all about struct ad_sigma_delta_info β€” Sigma Delta driver specific callbacks and options. it's giving β€œdriver config bag with main character energy” and we're obsessed.


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the exact struct, no cap:

       struct ad_sigma_delta_info {
           int (*set_channel)(struct ad_sigma_delta *, unsigned int channel);
           int (*append_status)(struct ad_sigma_delta *, bool append);
           int (*set_mode)(struct ad_sigma_delta *, enum ad_sigma_delta_mode
       mode);
           int (*disable_all)(struct ad_sigma_delta *);
           int (*disable_one)(struct ad_sigma_delta *, unsigned int chan);
           int (*postprocess_sample)(struct ad_sigma_delta *, unsigned int
       raw_sample);
           bool has_registers;
           bool has_named_irqs;
           bool supports_spi_offload;
           unsigned int addr_shift;
           unsigned int read_mask;
           unsigned int status_ch_mask;
           unsigned int data_reg;
           unsigned long irq_flags;
           unsigned int num_slots;
           unsigned int num_resetclks;
        };

πŸŽ€ Members πŸŽ€

okay so member by member, here's the vibe check πŸ‘‡

  • set_channel β€” Will be called to select the current channel, may be NULL. πŸ’…
  • append_status β€” Will be called to enable status append at the end of the sample, may be NULL. 🫢
  • set_mode β€” Will be called to select the current mode, may be NULL. ✨
  • disable_all β€” Will be called to disable all channels, may be NULL. 🧚
  • disable_one β€” Will be called to disable a single channel after ad_sigma_delta_single_conversion, may be NULL. Usage of this callback expects iio_chan_spec.address to contain the value required for the driver to identify the channel. πŸ”₯
  • postprocess_sample β€” Is called for each sampled data word, can be used to modify or drop the sample data, it may be NULL. πŸ’€
  • has_registers β€” true if the device has writable and readable registers, false if there is just one read-only sample data shift register. πŸ¦‹
  • has_named_irqs β€” Set to true if there is more than one IRQ line. 🌈
  • supports_spi_offload β€” Set to true if the driver supports SPI offload. Often special considerations are needed for scan_type and other channel info, so individual drivers have to set this to let the core code know that it can use SPI offload if it is available. ⭐
  • addr_shift β€” Shift of the register address in the communications register. πŸŽ€
  • read_mask β€” Mask for the communications register having the read bit set. πŸ’œ
  • status_ch_mask β€” Mask for the channel number stored in status register. 🌸
  • data_reg β€” Address of the data register, if 0 the default address of 0x3 will be used. πŸ“
  • irq_flags β€” flags for the interrupt used by the triggered buffer. πŸ™ˆ
  • num_slots β€” Number of sequencer slots. πŸ‘‘
  • num_resetclks β€” Number of SPI clk cycles with MOSI=1 to reset the chip. 😭

πŸ‘‘ SEE ALSO πŸ‘‘

  • Kernel file ./include/linux/iio/adc/ad_sigma_delta.h
  • struct ad_sigma_delta(9)

catch you in the kernel, bestie 🫢 this page comes from the source/version corner ./include/linux/iio/adc, dated October 2026, and it's literally all about struct ad_sigma_delta_info(9) πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from