From d3b15c782112bd35bb507a02a5de3a6bb897dca2 Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Wed, 7 Jun 2017 13:06:23 -0500 Subject: google/parrot: use a GNVS variable to specify trackpad interrupt Use a GNVS variable to store the trackpad interrupt, in order to support both SNB and IVB variants from a single build. Change-Id: I53df35fff41f52a7d142aea9b1b590c65195bcfd Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/20093 Tested-by: build bot (Jenkins) Reviewed-by: Arthur Heymans Reviewed-by: Martin Roth --- src/mainboard/google/parrot/acpi/mainboard.asl | 26 +++++++++++++++++++------- src/mainboard/google/parrot/acpi_tables.c | 8 ++++++++ 2 files changed, 27 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/mainboard/google/parrot/acpi/mainboard.asl b/src/mainboard/google/parrot/acpi/mainboard.asl index 98208e0989..2a5c92f327 100644 --- a/src/mainboard/google/parrot/acpi/mainboard.asl +++ b/src/mainboard/google/parrot/acpi/mainboard.asl @@ -58,24 +58,36 @@ Scope (\_SB) { // Trackpad Wake is GPIO12, wake from S3 Name(_PRW, Package() { BOARD_TRACKPAD_WAKE_GPIO, 0x03 }) - Name(_CRS, ResourceTemplate() + Name (DCRS, ResourceTemplate () { - // PIRQA -> GSI16 - Interrupt (ResourceConsumer, Level, ActiveLow) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) { - BOARD_TRACKPAD_IRQ_DVT + BOARD_TRACKPAD_IRQ_DVT, } + // SMBUS Address 0x67 + VendorShort (ADDR) { BOARD_TRACKPAD_I2C_ADDR } + }) + Name (PCRS, ResourceTemplate () + { // PIRQE -> GSI20 - Interrupt (ResourceConsumer, Edge, ActiveLow) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) { - BOARD_TRACKPAD_IRQ_PVT + BOARD_TRACKPAD_IRQ_PVT, } - // SMBUS Address 0x67 VendorShort (ADDR) { BOARD_TRACKPAD_I2C_ADDR } }) + + Method (_CRS, 0, NotSerialized) + { + If (\TPIQ == BOARD_TRACKPAD_IRQ_DVT){ + Return (DCRS) + } Else { + Return (PCRS) + } + } } Device (MB) { diff --git a/src/mainboard/google/parrot/acpi_tables.c b/src/mainboard/google/parrot/acpi_tables.c index 81008a57de..2cda4a2ebc 100644 --- a/src/mainboard/google/parrot/acpi_tables.c +++ b/src/mainboard/google/parrot/acpi_tables.c @@ -31,6 +31,7 @@ #include #include #include "thermal.h" +#include "onboard.h" static void acpi_update_thermal_table(global_nvs_t *gnvs) { @@ -59,4 +60,11 @@ void acpi_create_gnvs(global_nvs_t *gnvs) // the lid is open by default. gnvs->lids = 1; + + // set trackpad IRQ + if (parrot_rev() < 0x2) { /* DVT vs PVT */ + gnvs->tpiq = BOARD_TRACKPAD_IRQ_DVT; + } else { + gnvs->tpiq = BOARD_TRACKPAD_IRQ_PVT; + } } -- cgit v1.2.3