STRUCT TI_IODELAY_REG_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ti_iodelay_reg_data(9) β€” from the Kernel API Manual, bestie ✨

okay so picture this: it's a whole struct, right? and it literally describes the registers for your iodelay instance. that's the whole vibe. it's giving "lookup table but make it couture" πŸŽ€


✨ NAME ✨

struct ti_iodelay_reg_data β€” ngl this one is just here to describe all the registers for the iodelay instance. that's it, that's the job πŸ’–


🌸 SYNOPSIS 🌸

struct ti_iodelay_reg_data {
    u32 signature_mask;
    u32 signature_value;
    u32 lock_mask;
    u32 lock_val;
    u32 unlock_val;
    u32 binary_data_coarse_mask;
    u32 binary_data_fine_mask;
    u32 reg_refclk_offset;
    u32 refclk_period_mask;
    u32 reg_coarse_offset;
    u32 coarse_delay_count_mask;
    u32 coarse_ref_count_mask;
    u32 reg_fine_offset;
    u32 fine_delay_count_mask;
    u32 fine_ref_count_mask;
    u32 reg_global_lock_offset;
    u32 global_lock_mask;
    u32 global_unlock_val;
    u32 global_lock_val;
    u32 reg_start_offset;
    u32 reg_nr_per_pin;
    const struct regmap_config *regmap_config;
};

like, look at her. twenty-two fields. main character energy, no notes πŸ‘‘


πŸ¦‹ Members πŸ¦‹

so each one of these is a little icon in her life, and here's what each one means:

  • signature_mask β€” the CONFIG_REG mask for the signature bits, iykyk (check the TRM) πŸ’«
  • signature_value β€” the CONFIG_REG signature value that gets written (again, TRM is your bestie here)
  • lock_mask β€” the CONFIG_REG mask for the lock bits (TRM said what it said)
  • lock_val β€” the CONFIG_REG lock value for those lock bits (TRM, bestie, TRM)
  • unlock_val β€” the CONFIG_REG unlock value for the lock bits (TRM never lies)
  • binary_data_coarse_mask β€” the CONFIG_REG coarse mask (you already know: TRM) ✨
  • binary_data_fine_mask β€” the CONFIG_REG fine mask (TRM again, we stay consistent)
  • reg_refclk_offset β€” the refclk register offset, slay
  • refclk_period_mask β€” the refclk mask 🫢
  • reg_coarse_offset β€” the coarse register configuration offset
  • coarse_delay_count_mask β€” the coarse delay count mask
  • coarse_ref_count_mask β€” the coarse ref count mask
  • reg_fine_offset β€” the fine register configuration offset, very demure
  • fine_delay_count_mask β€” the fine delay count mask 🌸
  • fine_ref_count_mask β€” the fine ref count mask
  • reg_global_lock_offset β€” the offset for the global iodelay module lock register πŸ”’
  • global_lock_mask β€” the lock mask
  • global_unlock_val β€” the unlock value
  • global_lock_val β€” the lock value (yes, there's both. she contains multitudes)
  • reg_start_offset β€” offset to the iodelay registers after the CONFIG_REG_0 to 8 ⭐
  • reg_nr_per_pin β€” how many iodelay registers each pin gets
  • regmap_config β€” the regmap configuration for the IODelay region πŸ—ΊοΈ

πŸ’œ SEE ALSO πŸ’œ

if you wanna go deeper down the rabbit hole, the kernel file lives at ./drivers/pinctrl/ti/pinctrl-ti-iodelay.c and it's friends with literally all of these:


that's the whole page, bestie, go forth and configure responsibly πŸ’…

cute lil sign-off: this one came from ./drivers/pinctrl/ti and the date on it is October 2026. stay iconic πŸŒˆπŸ‘‘
πŸ“¦ where this page comes from