From db6e85eb56641284aa22c9364ed15e89cb7dabfc Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 2 Sep 2020 09:51:46 -0600 Subject: [PATCH] Add ACPI thermal interface --- src/board/system76/addw2/gpio.c | 4 ++-- src/board/system76/common/acpi.c | 14 ++++++++++++++ src/board/system76/common/dgpu.c | 1 - src/board/system76/common/include/board/dgpu.h | 7 +++++++ src/board/system76/darp5/gpio.c | 2 +- src/board/system76/galp3-c/gpio.c | 2 +- src/board/system76/lemp9/gpio.c | 2 +- 7 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/board/system76/addw2/gpio.c b/src/board/system76/addw2/gpio.c index d7ccb65..35daa47 100644 --- a/src/board/system76/addw2/gpio.c +++ b/src/board/system76/addw2/gpio.c @@ -118,9 +118,9 @@ void gpio_init() { // PWR_BTN# GPCRD5 = GPIO_OUT | GPIO_UP; // CPU_FANSEN - GPCRD6 = GPIO_IN; + GPCRD6 = GPIO_ALT; // VGA_FANSEN - GPCRD7 = GPIO_IN; + GPCRD7 = GPIO_ALT; // SMC_BAT_EC GPCRE0 = GPIO_ALT; // AC_PRESENT diff --git a/src/board/system76/common/acpi.c b/src/board/system76/common/acpi.c index 81d0789..5ee77e6 100644 --- a/src/board/system76/common/acpi.c +++ b/src/board/system76/common/acpi.c @@ -1,10 +1,12 @@ #include #include +#include #include #include #include #include #include +#include #ifndef HAVE_LED_AIRPLANE_N #define HAVE_LED_AIRPLANE_N 1 @@ -89,6 +91,8 @@ uint8_t acpi_read(uint8_t addr) { } break; + ACPI_8(0x07, peci_temp >> 6); + // Handle AC adapter and battery present case 0x10: if (!gpio_get(&ACIN_N)) { @@ -122,6 +126,16 @@ uint8_t acpi_read(uint8_t addr) { ACPI_8(0xCC, sci_extra); + ACPI_8(0xCE, DCR2); + ACPI_8(0xD0, F1TMRR); + ACPI_8(0xD1, F1TLRR); +#if HAVE_DGPU + ACPI_8(0xCD, dgpu_temp); + ACPI_8(0xCF, DCR4); + ACPI_8(0xD2, F2TMRR); + ACPI_8(0xD3, F2TLRR); +#endif // HAVE_DGPU + #if HAVE_LED_AIRPLANE_N // Airplane mode LED case 0xD9: diff --git a/src/board/system76/common/dgpu.c b/src/board/system76/common/dgpu.c index 6a2f032..5b25744 100644 --- a/src/board/system76/common/dgpu.c +++ b/src/board/system76/common/dgpu.c @@ -3,7 +3,6 @@ #if HAVE_DGPU #include -#include #include #include diff --git a/src/board/system76/common/include/board/dgpu.h b/src/board/system76/common/include/board/dgpu.h index 696e329..17166f6 100644 --- a/src/board/system76/common/include/board/dgpu.h +++ b/src/board/system76/common/include/board/dgpu.h @@ -1,10 +1,17 @@ #ifndef _BOARD_DGPU_H #define _BOARD_DGPU_H +#include + #ifndef HAVE_DGPU #define HAVE_DGPU 0 #endif +#if HAVE_DGPU + extern int16_t dgpu_temp; + extern uint8_t dgpu_duty; +#endif // HAVE_DGPU + void dgpu_init(void); void dgpu_event(void); diff --git a/src/board/system76/darp5/gpio.c b/src/board/system76/darp5/gpio.c index 1fed325..279c394 100644 --- a/src/board/system76/darp5/gpio.c +++ b/src/board/system76/darp5/gpio.c @@ -121,7 +121,7 @@ void gpio_init() { // PWR_BTN# GPCRD5 = GPIO_OUT; // CPU_FANSEN - GPCRD6 = GPIO_IN; + GPCRD6 = GPIO_ALT; // SUSWARN# GPCRD7 = GPIO_IN; // SWI# diff --git a/src/board/system76/galp3-c/gpio.c b/src/board/system76/galp3-c/gpio.c index 18d7481..5f407f0 100644 --- a/src/board/system76/galp3-c/gpio.c +++ b/src/board/system76/galp3-c/gpio.c @@ -121,7 +121,7 @@ void gpio_init() { // PWR_BTN# GPCRD5 = GPIO_OUT; // CPU_FANSEN - GPCRD6 = GPIO_IN; + GPCRD6 = GPIO_ALT; // SUSWARN# GPCRD7 = GPIO_IN; // SWI# diff --git a/src/board/system76/lemp9/gpio.c b/src/board/system76/lemp9/gpio.c index eae6c1a..b2a212c 100644 --- a/src/board/system76/lemp9/gpio.c +++ b/src/board/system76/lemp9/gpio.c @@ -119,7 +119,7 @@ void gpio_init() { // PWR_BTN# GPCRD5 = GPIO_OUT; // CPU_FANSEN - GPCRD6 = GPIO_IN; + GPCRD6 = GPIO_ALT; // SUSWARN# GPCRD7 = GPIO_IN; // SMC_BAT