diff options
author | Matt DeVillier <matt.devillier@gmail.com> | 2017-06-07 13:06:23 -0500 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2017-06-16 16:10:08 +0200 |
commit | d3b15c782112bd35bb507a02a5de3a6bb897dca2 (patch) | |
tree | 3316ae3235ab1d7ced2367c0adcd0a86a66e7b2e | |
parent | aff9b308510b799f975d4c369777bafa1c4fdead (diff) | |
download | coreboot-d3b15c782112bd35bb507a02a5de3a6bb897dca2.tar.xz |
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 <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/20093
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r-- | src/mainboard/google/parrot/acpi/mainboard.asl | 26 | ||||
-rw-r--r-- | src/mainboard/google/parrot/acpi_tables.c | 8 |
2 files changed, 27 insertions, 7 deletions
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 <southbridge/intel/bd82x6x/pch.h> #include <southbridge/intel/bd82x6x/nvs.h> #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; + } } |