summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorParvathi Pudi <[email protected]>2026-05-07 11:53:49 +0530
committerTom Rini <[email protected]>2026-05-14 15:41:07 -0600
commit55e767426ef6dc59d40eacc89dae6cdee2c582ee (patch)
tree00bb9296a85cdc59d27c946582eda004c07d9957 /board
parent46606025225274b065490daf50bd58defb6b6659 (diff)
board: ti: am335x: Conditional MDIO PAD configuration instead of static for AM335_ICE
This patch removes the static MDIO pinmux configuration from rmii1_pin_mux[] and instead configures the MDIO pins conditionally during board_init(). Previously, the MDIO_CLK and MDIO_DATA pins were always configured for CPSW in mux.c, which could lead to unnecessary pin ownership and conflicts in scenarios where CPSW is not used. With this change, the MDIO pins are configured only when required, ensuring that CPSW Ethernet functionality in U-Boot remains unaffected. This approach keeps Ethernet boot behavior intact and provides cleaner separation between CPSW and other Ethernet use cases. Reviewed-by: Markus Schneider-Pargmann (TI) <[email protected]> Signed-off-by: Parvathi Pudi <[email protected]>
Diffstat (limited to 'board')
-rw-r--r--board/ti/am335x/board.c10
-rw-r--r--board/ti/am335x/mux.c2
2 files changed, 10 insertions, 2 deletions
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index b5f69a45a7c..4a2d7655d2a 100644
--- a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -28,6 +28,7 @@
#include <asm/arch/mmc_host_def.h>
#include <asm/arch/sys_proto.h>
#include <asm/arch/mem.h>
+#include <asm/arch/mux.h>
#include <asm/global_data.h>
#include <asm/io.h>
#include <asm/emif.h>
@@ -72,6 +73,12 @@ static struct ctrl_dev *cdev = (struct ctrl_dev *)CTRL_DEVICE_BASE;
#define GPIO0_IRQSTATUSRAW (AM33XX_GPIO0_BASE + 0x024)
#define GPIO1_IRQSTATUSRAW (AM33XX_GPIO1_BASE + 0x024)
+static __maybe_unused struct module_pin_mux rmii1_mdio_pin_mux[] = {
+ {OFFSET(mdio_clk), MODE(0) | PULLUP_EN}, /* MDIO_CLK */
+ {OFFSET(mdio_data), MODE(0) | RXACTIVE | PULLUP_EN}, /* MDIO_DATA */
+ {-1},
+};
+
/*
* Read header information from EEPROM into global structure.
*/
@@ -779,6 +786,9 @@ int board_init(void)
hang();
}
+ if (!eth0_is_mii)
+ configure_module_pin_mux(rmii1_mdio_pin_mux);
+
prueth_is_mii = eth0_is_mii;
/* disable rising edge IRQs */
diff --git a/board/ti/am335x/mux.c b/board/ti/am335x/mux.c
index d2d87c304f6..36d849d2119 100644
--- a/board/ti/am335x/mux.c
+++ b/board/ti/am335x/mux.c
@@ -190,8 +190,6 @@ static struct module_pin_mux mii1_pin_mux[] = {
};
static struct module_pin_mux rmii1_pin_mux[] = {
- {OFFSET(mdio_clk), MODE(0) | PULLUP_EN}, /* MDIO_CLK */
- {OFFSET(mdio_data), MODE(0) | RXACTIVE | PULLUP_EN}, /* MDIO_DATA */
{OFFSET(mii1_crs), MODE(1) | RXACTIVE}, /* MII1_CRS */
{OFFSET(mii1_rxerr), MODE(1) | RXACTIVE}, /* MII1_RXERR */
{OFFSET(mii1_txen), MODE(1)}, /* MII1_TXEN */