Skip to content

Commit b363d00

Browse files
cyliangtwccli8
authored andcommitted
[M487/NUC472] Fixed ethernet multi-function pin
1 parent 003dd7c commit b363d00

File tree

2 files changed

+14
-5
lines changed
  • features/FEATURE_LWIP/lwip-interface/lwip-eth/arch/TARGET_NUVOTON

2 files changed

+14
-5
lines changed

features/FEATURE_LWIP/lwip-interface/lwip-eth/arch/TARGET_NUVOTON/TARGET_M480/m480_eth.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,10 +215,15 @@ static void __eth_clk_pin_init()
215215
/* Init I/O Multi-function */
216216
/*---------------------------------------------------------------------------------------------------------*/
217217
// Configure RMII pins
218-
SYS->GPA_MFPL = SYS_GPA_MFPL_PA6MFP_EMAC_RMII_RXERR | SYS_GPA_MFPL_PA7MFP_EMAC_RMII_CRSDV;
219-
SYS->GPC_MFPL = SYS_GPC_MFPL_PC6MFP_EMAC_RMII_RXD1 | SYS_GPC_MFPL_PC7MFP_EMAC_RMII_RXD0;
220-
SYS->GPC_MFPH = SYS_GPC_MFPH_PC8MFP_EMAC_RMII_REFCLK;
221-
SYS->GPE_MFPH = SYS_GPE_MFPH_PE8MFP_EMAC_RMII_MDC |
218+
SYS->GPA_MFPL &= ~(SYS_GPA_MFPL_PA6MFP_Msk | SYS_GPA_MFPL_PA7MFP_Msk);
219+
SYS->GPA_MFPL |= SYS_GPA_MFPL_PA6MFP_EMAC_RMII_RXERR | SYS_GPA_MFPL_PA7MFP_EMAC_RMII_CRSDV;
220+
SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC6MFP_Msk | SYS_GPC_MFPL_PC7MFP_Msk);
221+
SYS->GPC_MFPL |= SYS_GPC_MFPL_PC6MFP_EMAC_RMII_RXD1 | SYS_GPC_MFPL_PC7MFP_EMAC_RMII_RXD0;
222+
SYS->GPC_MFPH &= ~SYS_GPC_MFPH_PC8MFP_Msk;
223+
SYS->GPC_MFPH |= SYS_GPC_MFPH_PC8MFP_EMAC_RMII_REFCLK;
224+
SYS->GPE_MFPH &= ~(SYS_GPE_MFPH_PE8MFP_Msk | SYS_GPE_MFPH_PE9MFP_Msk | SYS_GPE_MFPH_PE10MFP_Msk |
225+
SYS_GPE_MFPH_PE11MFP_Msk | SYS_GPE_MFPH_PE12MFP_Msk);
226+
SYS->GPE_MFPH |= SYS_GPE_MFPH_PE8MFP_EMAC_RMII_MDC |
222227
SYS_GPE_MFPH_PE9MFP_EMAC_RMII_MDIO |
223228
SYS_GPE_MFPH_PE10MFP_EMAC_RMII_TXD0 |
224229
SYS_GPE_MFPH_PE11MFP_EMAC_RMII_TXD1 |

features/FEATURE_LWIP/lwip-interface/lwip-eth/arch/TARGET_NUVOTON/TARGET_NUC472/nuc472_eth.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,9 @@ static void __eth_clk_pin_init()
207207
/* Init I/O Multi-function */
208208
/*---------------------------------------------------------------------------------------------------------*/
209209
// Configure RMII pins
210+
SYS->GPC_MFPL &= ~( SYS_GPC_MFPL_PC0MFP_Msk | SYS_GPC_MFPL_PC1MFP_Msk |
211+
SYS_GPC_MFPL_PC2MFP_Msk | SYS_GPC_MFPL_PC3MFP_Msk |
212+
SYS_GPC_MFPL_PC4MFP_Msk | SYS_GPC_MFPL_PC6MFP_Msk | SYS_GPC_MFPL_PC7MFP_Msk );
210213
SYS->GPC_MFPL |= SYS_GPC_MFPL_PC0MFP_EMAC_REFCLK |
211214
SYS_GPC_MFPL_PC1MFP_EMAC_MII_RXERR |
212215
SYS_GPC_MFPL_PC2MFP_EMAC_MII_RXDV |
@@ -215,12 +218,13 @@ static void __eth_clk_pin_init()
215218
SYS_GPC_MFPL_PC6MFP_EMAC_MII_TXD0 |
216219
SYS_GPC_MFPL_PC7MFP_EMAC_MII_TXD1;
217220

218-
221+
SYS->GPC_MFPH &= ~SYS_GPC_MFPH_PC8MFP_Msk;
219222
SYS->GPC_MFPH |= SYS_GPC_MFPH_PC8MFP_EMAC_MII_TXEN;
220223
// Enable high slew rate on all RMII pins
221224
PC->SLEWCTL |= 0x1DF;
222225

223226
// Configure MDC, MDIO at PB14 & PB15
227+
SYS->GPB_MFPH &= ~(SYS_GPB_MFPH_PB14MFP_Msk | SYS_GPB_MFPH_PB15MFP_Msk);
224228
SYS->GPB_MFPH |= SYS_GPB_MFPH_PB14MFP_EMAC_MII_MDC | SYS_GPB_MFPH_PB15MFP_EMAC_MII_MDIO;
225229

226230
}

0 commit comments

Comments
 (0)