summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/drivers/i2c/da7219/chip.h3
-rw-r--r--src/drivers/i2c/da7219/da7219.c6
2 files changed, 8 insertions, 1 deletions
diff --git a/src/drivers/i2c/da7219/chip.h b/src/drivers/i2c/da7219/chip.h
index 823b940e67..572d7279a5 100644
--- a/src/drivers/i2c/da7219/chip.h
+++ b/src/drivers/i2c/da7219/chip.h
@@ -8,6 +8,9 @@ struct drivers_i2c_da7219_config {
/* Interrupt configuration */
struct acpi_irq irq;
+ /* Use GPIO based interrupt instead of PIRQ */
+ struct acpi_gpio irq_gpio;
+
/* I2C Bus Frequency in Hertz (default 400kHz) */
unsigned bus_speed;
diff --git a/src/drivers/i2c/da7219/da7219.c b/src/drivers/i2c/da7219/da7219.c
index 4eef00cf9f..c0f152d237 100644
--- a/src/drivers/i2c/da7219/da7219.c
+++ b/src/drivers/i2c/da7219/da7219.c
@@ -57,7 +57,11 @@ static void da7219_fill_ssdt(struct device *dev)
acpigen_write_name("_CRS");
acpigen_write_resourcetemplate_header();
acpi_device_write_i2c(&i2c);
- acpi_device_write_interrupt(&config->irq);
+ /* Use either Interrupt() or GpioInt() */
+ if (config->irq_gpio.pin_count)
+ acpi_device_write_gpio(&config->irq_gpio);
+ else
+ acpi_device_write_interrupt(&config->irq);
acpigen_write_resourcetemplate_footer();
/* AAD Child Device Properties */