From d687df482afa10a09ba1f8210bd5dcfe92fa08db Mon Sep 17 00:00:00 2001 From: Tim Crawford Date: Wed, 30 Nov 2022 08:51:54 -0700 Subject: [PATCH] Conditionally compile eSPI support A board may use either the LPC bus or the eSPI bus. Only include eSPI support for boards that use it. Signed-off-by: Tim Crawford --- src/board/system76/common/common.mk | 6 +++++- src/board/system76/common/espi.c | 4 ---- src/board/system76/common/kbc.c | 2 +- src/board/system76/common/pmc.c | 12 ++++++------ src/board/system76/common/pnp.c | 8 ++++---- src/board/system76/common/power.c | 16 ++++++++-------- src/board/system76/darp7/board.mk | 2 +- src/board/system76/darp8/board.mk | 6 +++--- src/board/system76/galp5/board.mk | 2 +- src/board/system76/galp6/board.mk | 2 +- src/board/system76/gaze16-3050/board.mk | 2 +- src/board/system76/gaze16-3060/board.mk | 2 +- src/board/system76/gaze17-3050/board.mk | 2 +- src/board/system76/gaze17-3060/board.mk | 2 +- src/board/system76/lemp10/board.mk | 2 +- src/board/system76/lemp11/board.mk | 2 +- src/board/system76/oryp8/board.mk | 2 +- src/board/system76/oryp9/board.mk | 2 +- src/ec/ite/ec.mk | 2 +- src/ec/ite/include/ec/espi.h | 9 --------- src/ec/ite/signature.c | 6 +++--- 21 files changed, 42 insertions(+), 51 deletions(-) diff --git a/src/board/system76/common/common.mk b/src/board/system76/common/common.mk index 563c74c..e552330 100644 --- a/src/board/system76/common/common.mk +++ b/src/board/system76/common/common.mk @@ -5,7 +5,7 @@ board-common-y += battery.c board-common-y += config.c board-common-y += dgpu.c board-common-y += ecpm.c -board-common-y += espi.c +board-common-$(CONFIG_BUS_ESPI) += espi.c board-common-y += fan.c board-common-y += gctrl.c board-common-y += kbc.c @@ -45,6 +45,10 @@ CFLAGS+=-DLEVEL=4 # Set external programmer PROGRAMMER=$(wildcard /dev/serial/by-id/usb-Arduino*) +ifeq ($(CONFIG_BUS_ESPI),y) +CFLAGS += -DCONFIG_BUS_ESPI=1 +endif + # Include system76 common source SYSTEM76_COMMON_DIR=src/board/system76/common INCLUDE+=$(wildcard $(SYSTEM76_COMMON_DIR)/include/board/*.h) $(SYSTEM76_COMMON_DIR)/common.mk diff --git a/src/board/system76/common/espi.c b/src/board/system76/common/espi.c index f297355..5a57f74 100644 --- a/src/board/system76/common/espi.c +++ b/src/board/system76/common/espi.c @@ -2,8 +2,6 @@ #include -#if EC_ESPI - #include #include #include @@ -197,5 +195,3 @@ void espi_event(void) { // Detect when I/O mode changes DEBUG_CHANGED(ESGCTRL3); } - -#endif // EC_ESPI diff --git a/src/board/system76/common/kbc.c b/src/board/system76/common/kbc.c index ee3ec63..c3bc547 100644 --- a/src/board/system76/common/kbc.c +++ b/src/board/system76/common/kbc.c @@ -11,7 +11,7 @@ void kbc_init(void) { // Disable interrupts *(KBC.control) = 0; -#if EC_ESPI +#if CONFIG_BUS_ESPI // Set IRQ mode to edge-triggered, 1-cycle pulse width *(KBC.irq) = BIT(3); #else diff --git a/src/board/system76/common/pmc.c b/src/board/system76/common/pmc.c index abc46d7..4a34168 100644 --- a/src/board/system76/common/pmc.c +++ b/src/board/system76/common/pmc.c @@ -31,7 +31,7 @@ enum PmcState { static uint8_t pmc_sci_queue = 0; static void pmc_sci_interrupt(void) { -#if EC_ESPI +#if CONFIG_BUS_ESPI // Start SCI interrupt vw_set(&VW_SCI_N, VWS_LOW); @@ -43,7 +43,7 @@ static void pmc_sci_interrupt(void) { // Delay T_HOLD (value assumed) delay_us(65); -#else // EC_ESPI +#else // CONFIG_BUS_ESPI // Start SCI interrupt gpio_set(&SCI_N, false); *(SCI_N.control) = GPIO_OUT; @@ -57,7 +57,7 @@ static void pmc_sci_interrupt(void) { // Delay T_HOLD (value assumed) delay_us(65); -#endif // EC_ESPI +#endif // CONFIG_BUS_ESPI } bool pmc_sci(struct Pmc * pmc, uint8_t sci) { @@ -77,7 +77,7 @@ bool pmc_sci(struct Pmc * pmc, uint8_t sci) { } void pmc_swi(void) { -#if EC_ESPI +#if CONFIG_BUS_ESPI // Start PME interrupt vw_set(&VW_PME_N, VWS_LOW); @@ -89,7 +89,7 @@ void pmc_swi(void) { // Delay T_HOLD (value assumed) delay_us(65); -#else // EC_ESPI +#else // CONFIG_BUS_ESPI // Start SWI interrupt gpio_set(&SWI_N, false); @@ -101,7 +101,7 @@ void pmc_swi(void) { // Delay T_HOLD (value assumed) delay_us(65); -#endif // EC_ESPI +#endif // CONFIG_BUS_ESPI } static enum PmcState state = PMC_STATE_DEFAULT; diff --git a/src/board/system76/common/pnp.c b/src/board/system76/common/pnp.c index 7dff19a..e245b26 100644 --- a/src/board/system76/common/pnp.c +++ b/src/board/system76/common/pnp.c @@ -50,18 +50,18 @@ void pnp_enable() { // Enable KBC keyboard pnp_write(0x07, 0x06); -#if EC_ESPI +#if CONFIG_BUS_ESPI // When using eSPI, IRQ must be inverted and edge-triggered pnp_write(0x71, 0x02); -#endif // EC_ESPI +#endif // CONFIG_BUS_ESPI pnp_write(0x30, 0x01); // Enable KBC mouse pnp_write(0x07, 0x05); -#if EC_ESPI +#if CONFIG_BUS_ESPI // When using eSPI, IRQ must be inverted and edge-triggered pnp_write(0x71, 0x02); -#endif // EC_ESPI +#endif // CONFIG_BUS_ESPI pnp_write(0x30, 0x01); // Enable SMFI diff --git a/src/board/system76/common/power.c b/src/board/system76/common/power.c index 2a2e4b5..d05b60a 100644 --- a/src/board/system76/common/power.c +++ b/src/board/system76/common/power.c @@ -17,8 +17,8 @@ #include #include -#include -#if EC_ESPI +#if CONFIG_BUS_ESPI + #include #include #endif @@ -244,9 +244,9 @@ void power_on(void) { } // Check for VW changes - #if EC_ESPI + #if CONFIG_BUS_ESPI espi_event(); - #endif // EC_ESPI + #endif // CONFIG_BUS_ESPI // Extra wait until SUSPWRDNACK is valid delay_ms(1); @@ -491,11 +491,11 @@ void power_event(void) { #endif if(rst_new && !rst_last) { DEBUG("%02X: PLT_RST# de-asserted\n", main_cycle); -#if EC_ESPI +#if CONFIG_BUS_ESPI espi_reset(); -#else // EC_ESPI +#else // CONFIG_BUS_ESPI power_cpu_reset(); -#endif // EC_ESPI +#endif // CONFIG_BUS_ESPI } rst_last = rst_new; @@ -512,7 +512,7 @@ void power_event(void) { #endif #endif // HAVE_SLP_SUS_N -#if EC_ESPI +#if CONFIG_BUS_ESPI // ESPI systems, always power off if in S5 power state #elif HAVE_SUSWARN_N // EC must keep VccPRIM powered if SUSPWRDNACK is de-asserted low or system diff --git a/src/board/system76/darp7/board.mk b/src/board/system76/darp7/board.mk index cf67eca..4bcb47d 100644 --- a/src/board/system76/darp7/board.mk +++ b/src/board/system76/darp7/board.mk @@ -7,7 +7,7 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 +CONFIG_BUS_ESPI=y # Use S0ix CFLAGS+=-DUSE_S0IX=1 diff --git a/src/board/system76/darp8/board.mk b/src/board/system76/darp8/board.mk index 7c393ad..71b124b 100644 --- a/src/board/system76/darp8/board.mk +++ b/src/board/system76/darp8/board.mk @@ -7,12 +7,12 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 -# Apply PMC hack for S0ix -CFLAGS+=-DPMC_S0IX_HACK=1 +CONFIG_BUS_ESPI=y # Use S0ix CFLAGS+=-DUSE_S0IX=1 +# Apply PMC hack for S0ix +CFLAGS+=-DPMC_S0IX_HACK=1 # Include keyboard KEYBOARD=15in_102 diff --git a/src/board/system76/galp5/board.mk b/src/board/system76/galp5/board.mk index f4a6945..d40deba 100644 --- a/src/board/system76/galp5/board.mk +++ b/src/board/system76/galp5/board.mk @@ -7,7 +7,7 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 +CONFIG_BUS_ESPI=y # Use S0ix CFLAGS+=-DUSE_S0IX=1 diff --git a/src/board/system76/galp6/board.mk b/src/board/system76/galp6/board.mk index d354272..0637ad0 100644 --- a/src/board/system76/galp6/board.mk +++ b/src/board/system76/galp6/board.mk @@ -7,7 +7,7 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 +CONFIG_BUS_ESPI=y # Use S0ix CFLAGS+=-DUSE_S0IX=1 diff --git a/src/board/system76/gaze16-3050/board.mk b/src/board/system76/gaze16-3050/board.mk index 1fe95e7..48d7564 100644 --- a/src/board/system76/gaze16-3050/board.mk +++ b/src/board/system76/gaze16-3050/board.mk @@ -7,7 +7,7 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 +CONFIG_BUS_ESPI=y # Include keyboard KEYBOARD=15in_102 diff --git a/src/board/system76/gaze16-3060/board.mk b/src/board/system76/gaze16-3060/board.mk index 7625e15..0602583 100644 --- a/src/board/system76/gaze16-3060/board.mk +++ b/src/board/system76/gaze16-3060/board.mk @@ -7,7 +7,7 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 +CONFIG_BUS_ESPI=y # Include keyboard KEYBOARD=15in_102 diff --git a/src/board/system76/gaze17-3050/board.mk b/src/board/system76/gaze17-3050/board.mk index 10c17d7..c13026a 100644 --- a/src/board/system76/gaze17-3050/board.mk +++ b/src/board/system76/gaze17-3050/board.mk @@ -7,7 +7,7 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 +CONFIG_BUS_ESPI=y # FIXME: Use S3 instead of S0ix CFLAGS+=-DUSE_S0IX=1 diff --git a/src/board/system76/gaze17-3060/board.mk b/src/board/system76/gaze17-3060/board.mk index f1161d8..080f6a8 100644 --- a/src/board/system76/gaze17-3060/board.mk +++ b/src/board/system76/gaze17-3060/board.mk @@ -7,7 +7,7 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 +CONFIG_BUS_ESPI=y # FIXME: Use S3 instead of S0ix CFLAGS+=-DUSE_S0IX=1 diff --git a/src/board/system76/lemp10/board.mk b/src/board/system76/lemp10/board.mk index a1accd6..db71b22 100644 --- a/src/board/system76/lemp10/board.mk +++ b/src/board/system76/lemp10/board.mk @@ -7,7 +7,7 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 +CONFIG_BUS_ESPI=y # Use S0ix CFLAGS+=-DUSE_S0IX=1 diff --git a/src/board/system76/lemp11/board.mk b/src/board/system76/lemp11/board.mk index 07273fd..753b19b 100644 --- a/src/board/system76/lemp11/board.mk +++ b/src/board/system76/lemp11/board.mk @@ -7,7 +7,7 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 +CONFIG_BUS_ESPI=y # Use S0ix CFLAGS+=-DUSE_S0IX=1 diff --git a/src/board/system76/oryp8/board.mk b/src/board/system76/oryp8/board.mk index b4772f7..762b8b7 100644 --- a/src/board/system76/oryp8/board.mk +++ b/src/board/system76/oryp8/board.mk @@ -7,7 +7,7 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 +CONFIG_BUS_ESPI=y # Include keyboard KEYBOARD=15in_102 diff --git a/src/board/system76/oryp9/board.mk b/src/board/system76/oryp9/board.mk index ca3b85d..3bea36b 100644 --- a/src/board/system76/oryp9/board.mk +++ b/src/board/system76/oryp9/board.mk @@ -7,7 +7,7 @@ EC=ite CONFIG_EC_ITE_IT5570E=y # Enable eSPI -CFLAGS+=-DEC_ESPI=1 +CONFIG_BUS_ESPI=y # FIXME: Use S3 instead of S0ix CFLAGS+=-DUSE_S0IX=1 diff --git a/src/ec/ite/ec.mk b/src/ec/ite/ec.mk index 168ed46..64147f2 100644 --- a/src/ec/ite/ec.mk +++ b/src/ec/ite/ec.mk @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-3.0-only ec-y += ec.c -ec-y += espi.c +ec-$(CONFIG_BUS_ESPI) += espi.c ec-y += gpio.c ec-y += i2c.c ec-y += kbc.c diff --git a/src/ec/ite/include/ec/espi.h b/src/ec/ite/include/ec/espi.h index 5110577..7e023a3 100644 --- a/src/ec/ite/include/ec/espi.h +++ b/src/ec/ite/include/ec/espi.h @@ -3,15 +3,8 @@ #ifndef _EC_ESPI_H #define _EC_ESPI_H -// eSPI not supported on IT8587E, may not be used on IT5570E -#ifndef EC_ESPI -#define EC_ESPI 0 -#endif - #include -#if CONFIG_EC_ITE_IT5570E - struct VirtualWire { volatile uint8_t __xdata * index; uint8_t shift; @@ -126,6 +119,4 @@ volatile uint8_t __xdata __at(0x3293) VWCTRL3; volatile uint8_t __xdata __at(0x3295) VWCTRL5; volatile uint8_t __xdata __at(0x3296) VWCTRL6; -#endif // CONFIG_EC_ITE_IT5570E - #endif // _EC_ESPI_H diff --git a/src/ec/ite/signature.c b/src/ec/ite/signature.c index 7762724..ef8681b 100644 --- a/src/ec/ite/signature.c +++ b/src/ec/ite/signature.c @@ -3,17 +3,17 @@ #include // clang-format off -#if EC_ESPI +#if CONFIG_BUS_ESPI // eSPI signature (byte 7 = 0xA4) static __code const uint8_t __at(0x40) SIGNATURE[16] = { 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA4, 0x95, 0x85, 0x12, 0x5A, 0x5A, 0xAA, 0x00, 0x55, 0x55, }; -#else // EC_ESPI +#else // CONFIG_BUS_ESPI // LPC signature (byte 7 = 0xA5) static __code const uint8_t __at(0x40) SIGNATURE[16] = { 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0x94, 0x85, 0x12, 0x5A, 0x5A, 0xAA, 0x00, 0x55, 0x55, }; -#endif // EC_ESPI +#endif // CONFIG_BUS_ESPI // clang-format on