diff --git a/src/board/system76/common/acpi.c b/src/board/system76/common/acpi.c index ac8dbe368..d9bec01ca 100644 --- a/src/board/system76/common/acpi.c +++ b/src/board/system76/common/acpi.c @@ -7,11 +7,14 @@ #include #include #include -#include #include #include #include +#if CONFIG_PLATFORM_INTEL +#include +#endif + #ifndef HAVE_LED_AIRPLANE_N #define HAVE_LED_AIRPLANE_N 1 #endif // HAVE_LED_AIRPLANE_N @@ -113,7 +116,9 @@ uint8_t acpi_read(uint8_t addr) { } break; +#if CONFIG_PLATFORM_INTEL ACPI_8(0x07, peci_temp); +#endif // Handle AC adapter and battery present case 0x10: diff --git a/src/board/system76/common/common.mk b/src/board/system76/common/common.mk index 30167a885..11017e590 100644 --- a/src/board/system76/common/common.mk +++ b/src/board/system76/common/common.mk @@ -14,7 +14,6 @@ board-common-y += keymap.c board-common-y += lid.c board-common-y += main.c board-common-y += parallel.c -board-common-y += peci.c board-common-y += pmc.c board-common-y += pnp.c board-common-y += ps2.c @@ -42,8 +41,12 @@ CFLAGS+=-DLEVEL=4 #CFLAGS+=-DI2C_DEBUGGER=0x76 ifeq ($(CONFIG_PLATFORM_INTEL),y) +board-common-y += peci.c board-common-y += power/intel.c CFLAGS += -DCONFIG_PLATFORM_INTEL=1 +else ifeq ($(CONFIG_PLATFORM_AMD),y) +board-common-y += power/amd.c +CFLAGS += -DCONFIG_PLATFORM_AMD=1 else $(error PLATFORM not specified) endif diff --git a/src/board/system76/common/fan.c b/src/board/system76/common/fan.c index 03576dbb4..238b75cbf 100644 --- a/src/board/system76/common/fan.c +++ b/src/board/system76/common/fan.c @@ -2,12 +2,15 @@ #include #include -#include #include #include #include #include +#if CONFIG_PLATFORM_INTEL +#include +#endif + bool fan_max = false; uint8_t fan1_pwm_actual = 0; @@ -195,11 +198,16 @@ static uint16_t fan_get_tach1_rpm(void) { } void fan_event(void) { +#if CONFIG_PLATFORM_INTEL #if CONFIG_HAVE_DGPU int16_t sys_temp = MAX(peci_temp, dgpu_temp); #else int16_t sys_temp = peci_temp; #endif +#elif CONFIG_PLATFORM_AMD + // TODO: AMD SB-TSI temp + int16_t sys_temp = 50; +#endif // Fan update interval is 100ms (main.c). The event changes PWM duty // by 1 every interval to give a smoothing effect. diff --git a/src/board/system76/common/include/board/power.h b/src/board/system76/common/include/board/power.h index ee372da94..bddfa47a6 100644 --- a/src/board/system76/common/include/board/power.h +++ b/src/board/system76/common/include/board/power.h @@ -17,7 +17,6 @@ void power_init(void); void power_on(void); void power_off(void); void power_cpu_reset(void); - void power_event(void); #endif // _BOARD_POWER_H diff --git a/src/board/system76/common/main.c b/src/board/system76/common/main.c index 9f7ec48dd..4d2c24b52 100644 --- a/src/board/system76/common/main.c +++ b/src/board/system76/common/main.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -31,6 +30,10 @@ #include #include +#if CONFIG_PLATFORM_INTEL +#include +#endif + #ifdef PARALLEL_DEBUG #include #endif // PARALLEL_DEBUG @@ -73,7 +76,9 @@ void init(void) { kbscan_init(); } keymap_init(); +#if CONFIG_PLATFORM_INTEL peci_init(); +#endif pmc_init(); pwm_init(); smbus_init(); @@ -140,7 +145,9 @@ void main(void) { if ((time - last_time_250ms) >= INTERVAL_250MS) { last_time_250ms = time; +#if CONFIG_PLATFORM_INTEL peci_read_temp(); +#endif dgpu_read_temp(); } diff --git a/src/board/system76/common/power/amd.c b/src/board/system76/common/power/amd.c new file mode 100644 index 000000000..52e8c0cd3 --- /dev/null +++ b/src/board/system76/common/power/amd.c @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-3.0-only + +#include + +enum PowerState power_state = POWER_STATE_OFF; + +void update_power_state(void) {} +void power_init(void) {} +void power_on(void) {} +void power_off(void) {} +void power_cpu_reset(void) {} +void power_event(void) {} diff --git a/src/board/system76/common/power/intel.c b/src/board/system76/common/power/intel.c index 5be58ee94..b64a76021 100644 --- a/src/board/system76/common/power/intel.c +++ b/src/board/system76/common/power/intel.c @@ -1,5 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-only +#include + #include #include #include @@ -12,7 +14,6 @@ #include #include #include -#include #include #include #include