summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt DeVillier <matt.devillier@gmail.com>2017-06-07 13:06:23 -0500
committerMartin Roth <martinroth@google.com>2017-06-16 16:10:08 +0200
commitd3b15c782112bd35bb507a02a5de3a6bb897dca2 (patch)
tree3316ae3235ab1d7ced2367c0adcd0a86a66e7b2e
parentaff9b308510b799f975d4c369777bafa1c4fdead (diff)
downloadcoreboot-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.asl26
-rw-r--r--src/mainboard/google/parrot/acpi_tables.c8
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;
+ }
}