aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/google/parrot
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/google/parrot')
-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;
+ }
}