From 5b55635ee12dc2223f91550293f4efc86c38ed79 Mon Sep 17 00:00:00 2001 From: Baocheng Su Date: Tue, 22 Oct 2024 08:04:20 +0200 Subject: [PATCH] board: siemens: iot2050: Control pcie power for all variants The power control pin of pcie interface not only works for M.2 interface but also for miniPCIE, so promote this logic to all variants to workaround the module hang issue. Signed-off-by: Baocheng Su Signed-off-by: Jan Kiszka Reviewed-by: Michael Trimarchi --- board/siemens/iot2050/board.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/board/siemens/iot2050/board.c b/board/siemens/iot2050/board.c index e5c7ce58b0..85cb999f17 100644 --- a/board/siemens/iot2050/board.c +++ b/board/siemens/iot2050/board.c @@ -185,6 +185,12 @@ static void remove_mmc1_target(void) free(boot_targets); } +static void enable_pcie_connector_power(void) +{ + set_pinvalue("gpio@601000_17", "P3V3_PCIE_CON_EN", 1); + udelay(4 * 100); +} + void set_board_info_env(void) { struct iot2050_info *info = IOT2050_INFO_DATA; @@ -288,10 +294,6 @@ static void m2_connector_setup(void) struct m2_config_pins config_pins; unsigned int n; - /* enable M.2 connector power */ - set_pinvalue("gpio@601000_17", "P3V3_M2_EN", 1); - udelay(4 * 100); - if (m2_manual_config < CONNECTOR_MODE_INVALID) { mode_info = " [manual mode]"; connector_mode = m2_manual_config; @@ -429,6 +431,8 @@ int board_late_init(void) /* change CTRL_MMR register to let serdes0 not output USB3.0 signals. */ writel(0x3, SERDES0_LANE_SELECT); + enable_pcie_connector_power(); + if (board_is_m2()) m2_connector_setup(); -- 2.39.5