summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaocheng Su <[email protected]>2024-10-22 08:04:20 +0200
committerTom Rini <[email protected]>2024-10-28 20:54:23 -0600
commit5b55635ee12dc2223f91550293f4efc86c38ed79 (patch)
tree43b7b836d38022670987ba705c617da1da357090
parentabe383151aec8ab71ec21476dc91bf8bdda3b7d2 (diff)
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 <[email protected]> Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Michael Trimarchi <[email protected]>
-rw-r--r--board/siemens/iot2050/board.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/board/siemens/iot2050/board.c b/board/siemens/iot2050/board.c
index e5c7ce58b06..85cb999f17f 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();