From ec91dd8feb16ea89d5a5d35b701bca09d1200afa Mon Sep 17 00:00:00 2001 From: Justin TerAvest Date: Mon, 29 Jan 2018 19:14:19 -0700 Subject: drivers/i2c/tpm: Add irq_gpio support to tpm. Grunt (a amd-stoneyridge based platform) uses a GPIO to interface with the tpm. This change allows devicetree entries to use a irq_gpio entry to describe the interface with the TPM. BUG=b:72655090 Change-Id: I08289891408d7176f68eb9c67f7a417a2448c2de Signed-off-by: Justin TerAvest Reviewed-on: https://review.coreboot.org/23500 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Reviewed-by: Furquan Shaikh --- src/drivers/i2c/tpm/chip.c | 6 +++++- src/drivers/i2c/tpm/chip.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/drivers/i2c/tpm/chip.c b/src/drivers/i2c/tpm/chip.c index 6d5c28a446..2655b0da07 100644 --- a/src/drivers/i2c/tpm/chip.c +++ b/src/drivers/i2c/tpm/chip.c @@ -55,7 +55,11 @@ static void i2c_tpm_fill_ssdt(struct device *dev) acpigen_write_name("_CRS"); acpigen_write_resourcetemplate_header(); acpi_device_write_i2c(&i2c); - acpi_device_write_interrupt(&config->irq); + if (config->irq_gpio.pin_count) + acpi_device_write_gpio(&config->irq_gpio); + else + acpi_device_write_interrupt(&config->irq); + acpigen_write_resourcetemplate_footer(); acpigen_pop_len(); /* Device */ diff --git a/src/drivers/i2c/tpm/chip.h b/src/drivers/i2c/tpm/chip.h index 5abd3a94f3..149627f8f4 100644 --- a/src/drivers/i2c/tpm/chip.h +++ b/src/drivers/i2c/tpm/chip.h @@ -7,4 +7,5 @@ struct drivers_i2c_tpm_config { unsigned int uid; /* ACPI _UID */ enum i2c_speed speed; /* Bus speed in Hz, default is I2C_SPEED_FAST */ struct acpi_irq irq; /* Interrupt */ + struct acpi_gpio irq_gpio; /* GPIO interrupt */ }; -- cgit v1.2.3