# GPIO and I2C controller drivers # # These drivers match against both PCI and ACPI devices. # ACPI devices are classified by _HID → PCI-equivalent class/subclass/vendor # codes via redox-driver-acpi's classify_acpi_device(). # # Match criteria use the standard [[driver.match]] format with class/subclass/vendor. # The ACPI bus fills these fields from the _HID classification table. # --- I2C/SPI controller infrastructure --- [[driver]] name = "i2cd" description = "I2C host adapter registry" priority = 85 command = ["/usr/lib/drivers/i2cd"] # i2cd is the I2C bus registry — spawned as infrastructure before # specific I2C controller drivers. Does not match against hardware # directly; it provides /scheme/i2c for controller drivers to register with. [[driver]] name = "gpiod" description = "GPIO controller registry" priority = 85 command = ["/usr/lib/drivers/gpiod"] # gpiod is the GPIO pin registry — spawned as infrastructure before # specific GPIO controller drivers. Does not match against hardware # directly; it provides /scheme/gpio for controller drivers to register with. # --- ACPI I2C controller drivers --- # These match against ACPI devices classified as Serial Bus Controller (0x0C), # subclass SMBus/I2C (0x05), by the ACPI bus. # The ACPI bus maps Intel INT33C3/INT3433/... and AMD AMDI0010 HIDs to these codes. [[driver]] name = "dw-acpi-i2cd" description = "DesignWare ACPI I2C controller" priority = 80 command = ["/usr/lib/drivers/dw-acpi-i2cd"] depends_on = ["acpi", "i2c"] [[driver.match]] bus = "acpi" class = 0x0C subclass = 0x05 vendor = 0x8086 [[driver]] name = "amd-mp2-i2cd" description = "AMD MP2 I2C controller" priority = 80 command = ["/usr/lib/drivers/amd-mp2-i2cd"] depends_on = ["acpi", "i2c"] [[driver.match]] bus = "acpi" class = 0x0C subclass = 0x05 vendor = 0x1022 [[driver]] name = "intel-lpss-i2cd" description = "Intel LPSS I2C controller" priority = 80 command = ["/usr/lib/drivers/intel-lpss-i2cd"] depends_on = ["acpi", "i2c"] [[driver.match]] bus = "acpi" class = 0x0C subclass = 0x05 vendor = 0x8086 # --- ACPI SPI controller drivers --- # These match against ACPI devices classified as Serial Bus Controller (0x0C), # subclass SPI (0x06), by the ACPI bus. [[driver]] name = "intel-lpss-spid" description = "Intel LPSS SPI controller" priority = 80 command = ["/usr/lib/drivers/intel-lpss-spid"] depends_on = ["acpi"] [[driver.match]] bus = "acpi" class = 0x0C subclass = 0x06 vendor = 0x8086 # --- ACPI GPIO controller drivers --- # These match against ACPI devices classified as Serial Bus Controller (0x0C), # subclass Other (0x80), vendor Intel, by the ACPI bus. # The ACPI bus maps INT33C7/INT3437/INT3450 HIDs to these codes. [[driver]] name = "intel-gpiod" description = "Intel ACPI GPIO registrar" priority = 80 command = ["/usr/lib/drivers/intel-gpiod"] depends_on = ["acpi", "gpio"] [[driver.match]] bus = "acpi" class = 0x0C subclass = 0x80 vendor = 0x8086 # --- ACPI thermal/power drivers --- # These match against ACPI devices classified as Thermal/Battery (0x0B). [[driver]] name = "redbear-thermald" description = "ACPI thermal zone monitor" priority = 60 command = ["/usr/lib/drivers/redbear-thermald"] depends_on = ["acpi"] [[driver.match]] bus = "acpi" class = 0x0B # --- I2C companion drivers --- # These depend on I2C bus being available and match against specific # I2C device addresses (not PCI/ACPI class matching). [[driver]] name = "i2c-gpio-expanderd" description = "I2C GPIO expander companion bridge" priority = 75 command = ["/usr/lib/drivers/i2c-gpio-expanderd"] depends_on = ["i2c", "gpio"] [[driver]] name = "intel-thc-hidd" description = "Intel THC QuickI2C HID transport" priority = 75 command = ["/usr/lib/drivers/intel-thc-hidd"] depends_on = ["acpi", "i2c"]