drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-dev.h

Source file repositories/reference/linux-study-clean/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-dev.h

File Facts

System
Linux kernel
Corpus path
drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-dev.h
Extension
.h
Size
7608 bytes
Lines
232
Domain
Driver Families
Bucket
drivers/hid
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct quicki2c_subip_acpi_parameter {
	u16 device_address;
	u64 connection_speed;
	u8 addressing_mode;
	u8 reserved;
} __packed;

/**
 * struct quicki2c_subip_acpi_config - QuickI2C ACPI DSD parameters
 * @SMHX: Standard Mode (100 kbit/s) Serial Clock Line HIGH Period
 * @SMLX: Standard Mode (100 kbit/s) Serial Clock Line LOW Period
 * @SMTD: Standard Mode (100 kbit/s) Serial Data Line Transmit Hold Period
 * @SMRD: Standard Mode (100 kbit/s) Serial Data Receive Hold Period
 * @FMHX: Fast Mode (400 kbit/s) Serial Clock Line HIGH Period
 * @FMLX: Fast Mode (400 kbit/s) Serial Clock Line LOW Period
 * @FMTD: Fast Mode (400 kbit/s) Serial Data Line Transmit Hold Period
 * @FMRD: Fast Mode (400 kbit/s) Serial Data Line Receive Hold Period
 * @FMSL: Maximum length (in ic_clk_cycles) of suppressed spikes
 *        in Standard Mode, Fast Mode and Fast Mode Plus
 * @FPHX: Fast Mode Plus (1Mbit/sec) Serial Clock Line HIGH Period
 * @FPLX: Fast Mode Plus (1Mbit/sec) Serial Clock Line LOW Period
 * @FPTD: Fast Mode Plus (1Mbit/sec) Serial Data Line Transmit HOLD Period
 * @FPRD: Fast Mode Plus (1Mbit/sec) Serial Data Line Receive HOLD Period
 * @HMHX: High Speed Mode Plus (3.4Mbits/sec) Serial Clock Line HIGH Period
 * @HMLX: High Speed Mode Plus (3.4Mbits/sec) Serial Clock Line LOW Period
 * @HMTD: High Speed Mode Plus (3.4Mbits/sec) Serial Data Line Transmit HOLD Period
 * @HMRD: High Speed Mode Plus (3.4Mbits/sec) Serial Data Line Receive HOLD Period
 * @HMSL: Maximum length (in ic_clk_cycles) of suppressed spikes in High Speed Mode
 * @FSEN: Maximum Frame Size Feature Enable Control
 * @FSVL: Maximum Frame Size Value (unit in Bytes)
 * @INDE: Interrupt Delay Feature Enable Control
 * @INDV: Interrupt Delay Value (unit in 10 us)
 *
 * Those properties get from QUICKI2C_ACPI_METHOD_NAME_ISUB method, used for
 * I2C timing configure.
 */
struct quicki2c_subip_acpi_config {
	u64 SMHX;
	u64 SMLX;
	u64 SMTD;
	u64 SMRD;

	u64 FMHX;
	u64 FMLX;
	u64 FMTD;
	u64 FMRD;
	u64 FMSL;

	u64 FPHX;
	u64 FPLX;
	u64 FPTD;
	u64 FPRD;

	u64 HMHX;
	u64 HMLX;
	u64 HMTD;
	u64 HMRD;
	u64 HMSL;

	u64 FSEN;
	u64 FSVL;
	u64 INDE;
	u64 INDV;
	u8 reserved;
};

/**
 * struct quicki2c_ddata - Driver specific data for quicki2c device
 * @max_detect_size: Identify max packet size detect for rx
 * @interrupt_delay: Identify max interrupt detect delay for rx
 */
struct quicki2c_ddata {
	u32 max_detect_size;
	u32 max_interrupt_delay;
};

struct device;
struct pci_dev;
struct thc_device;
struct hid_device;
struct acpi_device;

/**
 * struct quicki2c_device -  THC QuickI2C device struct
 * @dev: Point to kernel device
 * @pdev: Point to PCI device
 * @thc_hw: Point to THC device
 * @hid_dev: Point to HID device
 * @acpi_dev: Point to ACPI device
 * @ddata: Point to QuickI2C platform specific driver data

Annotation

Implementation Notes