From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Sat, 21 May 2016 14:15:40 +0200 Subject: [U-Boot] [PATCH 2/2] mips: ath79: ar933x: Fix probe error for kernel driver ag71xx In-Reply-To: References: <1463831918-18333-1-git-send-email-wills.wang@live.com> Message-ID: <5740516C.9050707@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 05/21/2016 01:58 PM, Wills Wang wrote: > We need reset the Ethernet Switch analog part before operation, > or the build-in Ethernet PHY don't work, openwrt kernel driver > ag71xx occur the following error: > > [ 1.854519] libphy: ag71xx_mdio: probed > [ 2.646539] ag71xx-mdio.1: unknown phy id 'ffff:ffff' > [ 3.235778] ag71xx ag71xx.0: no PHY found with phy_mask=00000010 > > Signed-off-by: Wills Wang Acked-by: Marek Vasut The kernel should be independent of bootloader, so you should cook similar patch for Linux. > --- > > arch/mips/mach-ath79/include/mach/ar71xx_regs.h | 1 + > arch/mips/mach-ath79/reset.c | 2 +- > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/mips/mach-ath79/include/mach/ar71xx_regs.h b/arch/mips/mach-ath79/include/mach/ar71xx_regs.h > index a8e51cb..dabcad0 100644 > --- a/arch/mips/mach-ath79/include/mach/ar71xx_regs.h > +++ b/arch/mips/mach-ath79/include/mach/ar71xx_regs.h > @@ -660,6 +660,7 @@ > > #define AR933X_RESET_GE1_MDIO BIT(23) > #define AR933X_RESET_GE0_MDIO BIT(22) > +#define AR933X_RESET_ETH_SWITCH_ANALOG BIT(14) > #define AR933X_RESET_GE1_MAC BIT(13) > #define AR933X_RESET_WMAC BIT(11) > #define AR933X_RESET_GE0_MAC BIT(9) > diff --git a/arch/mips/mach-ath79/reset.c b/arch/mips/mach-ath79/reset.c > index 188eccb..473f89d 100644 > --- a/arch/mips/mach-ath79/reset.c > +++ b/arch/mips/mach-ath79/reset.c > @@ -81,7 +81,7 @@ static int eth_init_ar933x(void) > MAP_NOCACHE); > const u32 mask = AR933X_RESET_GE0_MAC | AR933X_RESET_GE0_MDIO | > AR933X_RESET_GE1_MAC | AR933X_RESET_GE1_MDIO | > - AR933X_RESET_ETH_SWITCH; > + AR933X_RESET_ETH_SWITCH | AR933X_RESET_ETH_SWITCH_ANALOG; > > /* Clear MDIO slave EN bit. */ > clrbits_be32(rregs + AR933X_RESET_REG_BOOTSTRAP, BIT(17)); > -- Best regards, Marek Vasut