From 7cadbc1afb352ca2bc8ff570e526a6de2fcfd5cf Mon Sep 17 00:00:00 2001 From: Tim Crawford Date: Tue, 9 Dec 2025 11:32:35 -0700 Subject: [PATCH 1/3] Move arch init from common to SoC Since the architecture is very much SoC-specific, have it perform any needed configurations. Signed-off-by: Tim Crawford --- src/board/system76/common/main.c | 4 ---- src/ec/ite/ec.c | 25 ++++++++++++++----------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/board/system76/common/main.c b/src/board/system76/common/main.c index 4d79566ce..649086e7d 100644 --- a/src/board/system76/common/main.c +++ b/src/board/system76/common/main.c @@ -1,10 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-only -#include <8051.h> #include -#include -#include #include #include #include @@ -57,7 +54,6 @@ uint8_t main_cycle = 0; void init(void) { // Must happen first - arch_init(); ec_init(); gctrl_init(); gpio_init(); diff --git a/src/ec/ite/ec.c b/src/ec/ite/ec.c index 4553e97b4..caf52ba60 100644 --- a/src/ec/ite/ec.c +++ b/src/ec/ite/ec.c @@ -1,21 +1,11 @@ // SPDX-License-Identifier: GPL-3.0-only #include +#include #include #include #include -void ec_init(void) { -#if CONFIG_EC_ITE_IT8587E - RSTS = (0b10U << 6) | BIT(2); -#else - RSTS = (0b01U << 6) | BIT(2); - - // Enable POST codes - SPCTRL1 |= BIT(7) | BIT(6) | BIT(3); -#endif -} - void ec_read_post_codes(void) { #if CONFIG_EC_ITE_IT5570E || CONFIG_EC_ITE_IT5571E while (P80H81HS & 1) { @@ -27,3 +17,16 @@ void ec_read_post_codes(void) { } #endif } + +void ec_init(void) { + arch_init(); + +#if CONFIG_EC_ITE_IT8587E + RSTS = (0b10U << 6) | BIT(2); +#else + RSTS = (0b01U << 6) | BIT(2); + + // Enable POST codes + SPCTRL1 |= BIT(7) | BIT(6) | BIT(3); +#endif +} From af79a48f4dd42f85f3d8b85f8ac8a67568184447 Mon Sep 17 00:00:00 2001 From: Tim Crawford Date: Tue, 9 Dec 2025 11:17:40 -0700 Subject: [PATCH 2/3] Move GCTRL init from common to SoC code GCTRL is an ITE system block. Move it out of common code. Boards have not needed the header since 1fc832ca94ee ("Enable POST codes in EC init instead of per-board"). Signed-off-by: Tim Crawford --- src/board/system76/addw2/board.c | 1 - src/board/system76/addw3/board.c | 1 - src/board/system76/addw4/board.c | 1 - src/board/system76/bonw14/board.c | 1 - src/board/system76/common/common.mk | 1 - src/board/system76/common/espi.c | 1 - src/board/system76/common/gctrl.c | 10 ---------- src/board/system76/common/include/board/gctrl.h | 10 ---------- src/board/system76/common/main.c | 2 -- src/board/system76/darp7/board.c | 1 - src/board/system76/galp5/board.c | 1 - src/board/system76/gaze15/board.c | 1 - src/board/system76/gaze16-3050/board.c | 1 - src/board/system76/gaze16-3060/board.c | 1 - src/board/system76/gaze17-3050/board.c | 1 - src/board/system76/gaze17-3060/board.c | 1 - src/board/system76/lemp10/board.c | 1 - src/board/system76/oryp6/board.c | 1 - src/board/system76/oryp7/board.c | 1 - src/board/system76/oryp8/board.c | 1 - src/ec/ite/ec.c | 9 +++++++++ 21 files changed, 9 insertions(+), 39 deletions(-) delete mode 100644 src/board/system76/common/gctrl.c delete mode 100644 src/board/system76/common/include/board/gctrl.h diff --git a/src/board/system76/addw2/board.c b/src/board/system76/addw2/board.c index 02d6eacf6..6348c8efb 100644 --- a/src/board/system76/addw2/board.c +++ b/src/board/system76/addw2/board.c @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-only #include -#include #include #include #include diff --git a/src/board/system76/addw3/board.c b/src/board/system76/addw3/board.c index 36214afcd..20573c9d5 100644 --- a/src/board/system76/addw3/board.c +++ b/src/board/system76/addw3/board.c @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include diff --git a/src/board/system76/addw4/board.c b/src/board/system76/addw4/board.c index 36214afcd..20573c9d5 100644 --- a/src/board/system76/addw4/board.c +++ b/src/board/system76/addw4/board.c @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include diff --git a/src/board/system76/bonw14/board.c b/src/board/system76/bonw14/board.c index 1933e2336..baade2bc2 100644 --- a/src/board/system76/bonw14/board.c +++ b/src/board/system76/bonw14/board.c @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-only #include -#include #include #include #include diff --git a/src/board/system76/common/common.mk b/src/board/system76/common/common.mk index 4f304ad79..b509658e4 100644 --- a/src/board/system76/common/common.mk +++ b/src/board/system76/common/common.mk @@ -7,7 +7,6 @@ board-common-$(CONFIG_HAVE_DGPU) += dgpu.c board-common-y += ecpm.c board-common-$(CONFIG_BUS_ESPI) += espi.c board-common-y += fan.c -board-common-y += gctrl.c board-common-y += kbc.c board-common-y += kbscan.c board-common-y += keymap.c diff --git a/src/board/system76/common/espi.c b/src/board/system76/common/espi.c index 010d4a6b8..0a28d55d5 100644 --- a/src/board/system76/common/espi.c +++ b/src/board/system76/common/espi.c @@ -7,7 +7,6 @@ #include #include #include -#include #include #include <8051.h> diff --git a/src/board/system76/common/gctrl.c b/src/board/system76/common/gctrl.c deleted file mode 100644 index da196cea0..000000000 --- a/src/board/system76/common/gctrl.c +++ /dev/null @@ -1,10 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-only - -#include - -void gctrl_init(void) { - // Set I2EC as R/W - SPCTRL1 |= 0x03; - // Set PNPCFG base address - BADRSEL = 0; -} diff --git a/src/board/system76/common/include/board/gctrl.h b/src/board/system76/common/include/board/gctrl.h deleted file mode 100644 index d3ea4a193..000000000 --- a/src/board/system76/common/include/board/gctrl.h +++ /dev/null @@ -1,10 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-only - -#ifndef _BOARD_GCTRL_H -#define _BOARD_GCTRL_H - -#include - -void gctrl_init(void); - -#endif // _BOARD_GCTRL_H diff --git a/src/board/system76/common/main.c b/src/board/system76/common/main.c index 649086e7d..b86d4b2be 100644 --- a/src/board/system76/common/main.c +++ b/src/board/system76/common/main.c @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -55,7 +54,6 @@ uint8_t main_cycle = 0; void init(void) { // Must happen first ec_init(); - gctrl_init(); gpio_init(); // Can happen in any order diff --git a/src/board/system76/darp7/board.c b/src/board/system76/darp7/board.c index f5766427d..0b20585b2 100644 --- a/src/board/system76/darp7/board.c +++ b/src/board/system76/darp7/board.c @@ -2,7 +2,6 @@ #include #include -#include #include #include #include diff --git a/src/board/system76/galp5/board.c b/src/board/system76/galp5/board.c index e8ea6816b..c487a0dc5 100644 --- a/src/board/system76/galp5/board.c +++ b/src/board/system76/galp5/board.c @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include diff --git a/src/board/system76/gaze15/board.c b/src/board/system76/gaze15/board.c index 981a5e7dc..91e108963 100644 --- a/src/board/system76/gaze15/board.c +++ b/src/board/system76/gaze15/board.c @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-only #include -#include #include #include #include diff --git a/src/board/system76/gaze16-3050/board.c b/src/board/system76/gaze16-3050/board.c index 36214afcd..20573c9d5 100644 --- a/src/board/system76/gaze16-3050/board.c +++ b/src/board/system76/gaze16-3050/board.c @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include diff --git a/src/board/system76/gaze16-3060/board.c b/src/board/system76/gaze16-3060/board.c index 36214afcd..20573c9d5 100644 --- a/src/board/system76/gaze16-3060/board.c +++ b/src/board/system76/gaze16-3060/board.c @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include diff --git a/src/board/system76/gaze17-3050/board.c b/src/board/system76/gaze17-3050/board.c index 36214afcd..20573c9d5 100644 --- a/src/board/system76/gaze17-3050/board.c +++ b/src/board/system76/gaze17-3050/board.c @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include diff --git a/src/board/system76/gaze17-3060/board.c b/src/board/system76/gaze17-3060/board.c index 36214afcd..20573c9d5 100644 --- a/src/board/system76/gaze17-3060/board.c +++ b/src/board/system76/gaze17-3060/board.c @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include diff --git a/src/board/system76/lemp10/board.c b/src/board/system76/lemp10/board.c index 85496a3b0..aac794122 100644 --- a/src/board/system76/lemp10/board.c +++ b/src/board/system76/lemp10/board.c @@ -2,7 +2,6 @@ #include #include -#include #include #include #include diff --git a/src/board/system76/oryp6/board.c b/src/board/system76/oryp6/board.c index 1933e2336..baade2bc2 100644 --- a/src/board/system76/oryp6/board.c +++ b/src/board/system76/oryp6/board.c @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-only #include -#include #include #include #include diff --git a/src/board/system76/oryp7/board.c b/src/board/system76/oryp7/board.c index 1933e2336..baade2bc2 100644 --- a/src/board/system76/oryp7/board.c +++ b/src/board/system76/oryp7/board.c @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-only #include -#include #include #include #include diff --git a/src/board/system76/oryp8/board.c b/src/board/system76/oryp8/board.c index 6e7b52874..819c0b446 100644 --- a/src/board/system76/oryp8/board.c +++ b/src/board/system76/oryp8/board.c @@ -2,7 +2,6 @@ #include #include -#include #include #include #include diff --git a/src/ec/ite/ec.c b/src/ec/ite/ec.c index caf52ba60..f8bf95c79 100644 --- a/src/ec/ite/ec.c +++ b/src/ec/ite/ec.c @@ -18,6 +18,13 @@ void ec_read_post_codes(void) { #endif } +static void gctrl_init(void) { + // Set I2EC as R/W + SPCTRL1 |= 0x03; + // Set PNPCFG base address + BADRSEL = 0; +} + void ec_init(void) { arch_init(); @@ -29,4 +36,6 @@ void ec_init(void) { // Enable POST codes SPCTRL1 |= BIT(7) | BIT(6) | BIT(3); #endif + + gctrl_init(); } From 1ddbfac82d5ca66d69c92897ae11d0d5ae5acbe7 Mon Sep 17 00:00:00 2001 From: Tim Crawford Date: Tue, 16 Dec 2025 13:48:55 -0700 Subject: [PATCH 3/3] Move ECPM init from common to SoC code ECPM is an ITE system block. Move it out of common code. Signed-off-by: Tim Crawford --- src/board/system76/common/common.mk | 1 - src/board/system76/common/ecpm.c | 13 ------------- src/board/system76/common/include/board/ecpm.h | 10 ---------- src/board/system76/common/main.c | 2 -- src/ec/ite/ec.c | 11 +++++++++++ 5 files changed, 11 insertions(+), 26 deletions(-) delete mode 100644 src/board/system76/common/ecpm.c delete mode 100644 src/board/system76/common/include/board/ecpm.h diff --git a/src/board/system76/common/common.mk b/src/board/system76/common/common.mk index b509658e4..bdd68a95a 100644 --- a/src/board/system76/common/common.mk +++ b/src/board/system76/common/common.mk @@ -4,7 +4,6 @@ board-common-y += acpi.c board-common-y += battery.c board-common-y += config.c board-common-$(CONFIG_HAVE_DGPU) += dgpu.c -board-common-y += ecpm.c board-common-$(CONFIG_BUS_ESPI) += espi.c board-common-y += fan.c board-common-y += kbc.c diff --git a/src/board/system76/common/ecpm.c b/src/board/system76/common/ecpm.c deleted file mode 100644 index 48b8a565a..000000000 --- a/src/board/system76/common/ecpm.c +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-only - -#include -#include - -void ecpm_init(void) { - // Clock gate EGPC, CIR, and SWUC - CGCTRL2 |= BIT(6) | BIT(5) | BIT(4); - // Clock gate UART, SSPI, and DBGR - CGCTRL3 |= BIT(2) | BIT(1) | BIT(0); - // Clock gate CEC - CGCTRL4 |= BIT(0); -} diff --git a/src/board/system76/common/include/board/ecpm.h b/src/board/system76/common/include/board/ecpm.h deleted file mode 100644 index fc267194f..000000000 --- a/src/board/system76/common/include/board/ecpm.h +++ /dev/null @@ -1,10 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-only - -#ifndef _BOARD_ECPM_H -#define _BOARD_ECPM_H - -#include - -void ecpm_init(void); - -#endif // _BOARD_ECPM_H diff --git a/src/board/system76/common/main.c b/src/board/system76/common/main.c index b86d4b2be..f87934412 100644 --- a/src/board/system76/common/main.c +++ b/src/board/system76/common/main.c @@ -6,7 +6,6 @@ #include #include #include -#include #include #include #include @@ -60,7 +59,6 @@ void init(void) { #if CONFIG_HAVE_DGPU dgpu_init(); #endif - ecpm_init(); kbc_init(); kbled_init(); #ifdef PARALLEL_DEBUG diff --git a/src/ec/ite/ec.c b/src/ec/ite/ec.c index f8bf95c79..9870378ab 100644 --- a/src/ec/ite/ec.c +++ b/src/ec/ite/ec.c @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -25,6 +26,15 @@ static void gctrl_init(void) { BADRSEL = 0; } +static void ecpm_init(void) { + // Clock gate EGPC, CIR, and SWUC + CGCTRL2 |= BIT(6) | BIT(5) | BIT(4); + // Clock gate UART, SSPI, and DBGR + CGCTRL3 |= BIT(2) | BIT(1) | BIT(0); + // Clock gate CEC + CGCTRL4 |= BIT(0); +} + void ec_init(void) { arch_init(); @@ -38,4 +48,5 @@ void ec_init(void) { #endif gctrl_init(); + ecpm_init(); }