From 2485e73e490c1d3d95bc9331ddcc315517ff3ddc 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 231f0fbac2180b03660c6ceec2647fa8cd86b6d8 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/Makefile.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/Makefile.mk b/src/board/system76/common/Makefile.mk index a817a64ab..4965ab780 100644 --- a/src/board/system76/common/Makefile.mk +++ b/src/board/system76/common/Makefile.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 9ac71321a29d0836ee644dda11a59955d1a51dd2 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/Makefile.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/Makefile.mk b/src/board/system76/common/Makefile.mk index 4965ab780..e9676e21a 100644 --- a/src/board/system76/common/Makefile.mk +++ b/src/board/system76/common/Makefile.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(); }