STRUCT QUICKI2C_DEVICE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

okay bestie, welcome to the struct quicki2c_device(9) page in the Kernel API Manual β€” this is the THC QuickI2C device struct, and it’s giving β€œone struct holding all the QuickI2C device state” energy. πŸ’–


✨ SYNOPSIS ✨

no cap, here’s the whole struct, every field exactly as it is:

struct quicki2c_device {
    struct device *dev;
    struct pci_dev *pdev;
    struct thc_device *thc_hw;
    struct hid_device *hid_dev;
    struct acpi_device *acpi_dev;
    const struct quicki2c_ddata *ddata;
    enum quicki2c_dev_state state;
    void __iomem *mem_addr;
    struct hidi2c_dev_descriptor dev_desc;
    struct thc_i2c_config i2c_config;
    u16 hid_desc_addr;
    u32 active_ltr_val;
    u32 low_power_ltr_val;
    u8 *report_descriptor;
    u8 *input_buf;
    u8 *report_buf;
    size_t report_len;
    wait_queue_head_t reset_ack_wq;
    bool reset_ack;
    u32 i2c_max_frame_size_enable;
    u32 i2c_max_frame_size;
    u32 i2c_int_delay_enable;
    u32 i2c_int_delay;
    struct work_struct recover_work;
    bool recovery_disabled;
};

πŸ’– Members πŸ’–

okay so this is the part where we meet every single member, and yes we’re doing all of them β€” no skipping, bestie. 🫢

  • dev β€” points to the kernel device. πŸ’»
  • pdev β€” points to the PCI device.
  • thc_hw β€” points to the THC device.
  • hid_dev β€” points to the HID device.
  • acpi_dev β€” points to the ACPI device.
  • ddata β€” points to the QuickI2C platform specific driver data.
  • state β€” the THC I2C device state.
  • mem_addr β€” the MMIO memory address.
  • dev_desc β€” device descriptor for the HIDI2C protocol.
  • i2c_config β€” I2C bus configuration.
  • hid_desc_addr β€” register address for retrieve HID device descriptor. yes, that’s the wording 😭
  • active_ltr_val β€” THC active LTR value.
  • low_power_ltr_val β€” THC low power LTR value.
  • report_descriptor β€” stores a copy of the device report descriptor. πŸ“‹
  • input_buf β€” stores a copy of the latest input report data.
  • report_buf β€” stores a copy of the latest input/output report packet from set/get feature.
  • report_len β€” the length of the input/output report packet.
  • reset_ack_wq β€” workqueue for waiting for a reset response from the device. ⏳
  • reset_ack β€” indicates whether a reset response was received or not.
  • i2c_max_frame_size_enable β€” indicates whether the max frame size feature is enabled or not.
  • i2c_max_frame_size β€” max RX frame size (unit in Bytes).
  • i2c_int_delay_enable β€” indicates whether the interrupt delay feature is enabled or not.
  • i2c_int_delay β€” interrupt detection delay value (unit in 10 us).
  • recover_work β€” work structure for recovery. πŸ› οΈ
  • recovery_disabled β€” whether recovery work is blocked during teardown.

πŸ”₯ SEE ALSO πŸ”₯

go be nosy, bestie β€” the references are right here:

  • kernel file: ./drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-dev.h
  • struct quicki2c_subip_acpi_parameter(9)
  • struct quicki2c_subip_acpi_config(9)
  • struct quicki2c_ddata(9)

mwah πŸ’‹ β€” this cutie comes from the source/version spot ./drivers/hid/intel-thc-hid/in..., dated October 2026, and it’s still struct quicki2c_device(9). periodt. πŸŽ€

πŸ“¦ where this page comes from