phy: atheros: Use ar8035_config for AR8031
Subsystems (2)
PATCH v2 1/3 phy: atheros: Use ar8035_config for AR8031
From: Fabio Estevam <[email protected]>
Commit 08ad9b068afb88 (" ar8031: modify the config func of ar8031 to ar8021_config") selected 'ar8021_config' as the configuration function for AR8031.
The correct would be to use 'ar8035_config' instead as AR8031/AR8035 have the same programming model and even share the same phy driver in the linux kernel: drivers/net/phy/at803x.c.
Tested on a mx6qsabresd and wandboard, which now can work without any PHY setup code in the board files.
---
This is 2016.04 material.
Zhao Qiang, could you please test this on your platform?
Changes since v1:
- None
drivers/net/phy/atheros.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/phy/atheros.c +1 -1
@@ -51,7 +51,7 @@ static struct phy_driver AR8031_driver = { .uid = 0x4dd074, .mask = 0xffffffef, .features = PHY_GBIT_FEATURES, - .config = ar8021_config, + .config = ar8035_config, .startup = genphy_startup, .shutdown = genphy_shutdown, };
Signature · 1 line
1.9.1
PATCH v2 2/3 mx6sabresd: Simplify the Ethernet PHY configuration
From: Fabio Estevam <[email protected]>
As per the AR8031 datasheet:
"For a reliable power on reset, suggest to keep asserting the reset low long enough (10ms) to ensure the clock is stable and clock-to-reset 1ms requirement is satisfied."
So do as suggested and also add a 100us delay after deasserting the reset line to guarantee that the PHY ID can be read correctly and the Atheros 8031 PHY driver can be loaded automatically.
This results in a simpler code.
---
This is 2016.04 material.
Changes since v1:
- None
board/freescale/mx6sabresd/mx6sabresd.c | 36 ++------------------------------- 1 file changed, 2 insertions(+), 34 deletions(-)
board/freescale/mx6sabresd/mx6sabresd.c +2 -34
@@ -94,8 +94,9 @@ static void setup_iomux_enet(void)/* Reset AR8031 PHY */ gpio_direction_output (IMX_GPIO_NR (1 ,25 ) ,0 ); -udelay (500 ); +mdelay (10 );gpio_set_value (IMX_GPIO_NR (1 ,25 ),1 ); +udelay (100 ); }static iomux_v3_cfg_t const usdhc2_pads[] = {
@@ -340,39 +341,6 @@ int board_mmc_init(bd_t *bis) }#endif -int mx6_rgmii_rework (struct phy_device *phydev) -{ -unsigned short val; - -/* To enable AR8031 ouput a 125MHz clk from CLK_25M */ -phy_write (phydev,MDIO_DEVAD_NONE ,0xd ,0x7 ); -phy_write (phydev,MDIO_DEVAD_NONE ,0xe ,0x8016 ); -phy_write (phydev,MDIO_DEVAD_NONE ,0xd ,0x4007 ); - - val =phy_read (phydev,MDIO_DEVAD_NONE ,0xe ); - val &=0xffe3 ; - val |=0x18 ; -phy_write (phydev,MDIO_DEVAD_NONE ,0xe , val); - -/* introduce tx clock delay */ -phy_write (phydev,MDIO_DEVAD_NONE ,0x1d ,0x5 ); - val =phy_read (phydev,MDIO_DEVAD_NONE ,0x1e ); - val |=0x0100 ; -phy_write (phydev,MDIO_DEVAD_NONE ,0x1e , val); - -return 0 ; -} - -int board_phy_config (struct phy_device *phydev) -{ -mx6_rgmii_rework (phydev); - -if (phydev->drv->config) - phydev->drv->config (phydev); - -return 0 ; -} -#if defined(CONFIG_VIDEO_IPUV3 )static void disable_lvds (struct display_info_t const *dev) {
Signature · 1 line
1.9.1
PATCH v2 2/3 mx6sabresd: Simplify the Ethernet PHY configuration
Hi Fabio,
Quoted 8 lines · Fabio Estevam
From: Fabio Estevam <[email protected]>
As per the AR8031 datasheet:
"For a reliable power on reset, suggest to keep asserting the reset low long enough (10ms) to ensure the clock is stable and clock-to-reset 1ms requirement is satisfied."
Quoted 7 lines
So do as suggested and also add a 100us delay after deasserting the reset line to guarantee that the PHY ID can be read correctly and the Atheros 8031 PHY driver can be loaded automatically.
This results in a simpler code.
Signed-off-by Fabio Estevam <[email protected]>
PATCH v2 3/3 wandboard: Simplify the Ethernet PHY configuration
In reply to Fabio EstevamFrom: Fabio Estevam <[email protected]>
As per the AR8031 datasheet:
"For a reliable power on reset, suggest to keep asserting the reset low long enough (10ms) to ensure the clock is stable and clock-to-reset 1ms requirement is satisfied."
So do as suggested and also add a 100us delay after deasserting the reset line to guarantee that the PHY ID can be read correctly and the Atheros 8031 PHY driver can be loaded automatically.
This results in a simpler code.
---
This is 2016.04 material.
Changes since v1:
- Use mdelay instead of udelay
board/wandboard/wandboard.c | 36 ++---------------------------------- 1 file changed, 2 insertions(+), 34 deletions(-)
board/wandboard/wandboard.c +2 -34
@@ -121,8 +121,9 @@ static void setup_iomux_enet(void)/* Reset AR8031 PHY */ gpio_direction_output (ETH_PHY_RESET ,0 ); -udelay (500 ); +mdelay (10 );gpio_set_value (ETH_PHY_RESET ,1 ); +udelay (100 ); }static struct fsl_esdhc_cfg usdhc_cfg[2 ] = {
@@ -187,39 +188,6 @@ int board_mmc_init(bd_t *bis)return 0 ; } -static int mx6_rgmii_rework (struct phy_device *phydev) -{ -unsigned short val; - -/* To enable AR8031 ouput a 125MHz clk from CLK_25M */ -phy_write (phydev,MDIO_DEVAD_NONE ,0xd ,0x7 ); -phy_write (phydev,MDIO_DEVAD_NONE ,0xe ,0x8016 ); -phy_write (phydev,MDIO_DEVAD_NONE ,0xd ,0x4007 ); - - val =phy_read (phydev,MDIO_DEVAD_NONE ,0xe ); - val &=0xffe3 ; - val |=0x18 ; -phy_write (phydev,MDIO_DEVAD_NONE ,0xe , val); - -/* introduce tx clock delay */ -phy_write (phydev,MDIO_DEVAD_NONE ,0x1d ,0x5 ); - val =phy_read (phydev,MDIO_DEVAD_NONE ,0x1e ); - val |=0x0100 ; -phy_write (phydev,MDIO_DEVAD_NONE ,0x1e , val); - -return 0 ; -} - -int board_phy_config (struct phy_device *phydev) -{ -mx6_rgmii_rework (phydev); - -if (phydev->drv->config) - phydev->drv->config (phydev); - -return 0 ; -} - #if defined(CONFIG_VIDEO_IPUV3) struct i2c_pads_info mx6q_i2c2_pad_info = { .scl = {
Signature · 1 line
1.9.1
PATCH v2 3/3 wandboard: Simplify the Ethernet PHY configuration
Hi Fabio,
Quoted 8 lines · Fabio Estevam
From: Fabio Estevam <[email protected]>
As per the AR8031 datasheet:
"For a reliable power on reset, suggest to keep asserting the reset low long enough (10ms) to ensure the clock is stable and clock-to-reset 1ms requirement is satisfied."
Quoted 7 lines
So do as suggested and also add a 100us delay after deasserting the reset line to guarantee that the PHY ID can be read correctly and the Atheros 8031 PHY driver can be loaded automatically.
This results in a simpler code.
Signed-off-by Fabio Estevam <[email protected]>
PATCH v2 3/3 wandboard: Simplify the Ethernet PHY configuration
In reply to Fabio EstevamQuoted 8 lines · Fabio Estevam
From: Fabio Estevam <[email protected]>
As per the AR8031 datasheet:
"For a reliable power on reset, suggest to keep asserting the reset low long enough (10ms) to ensure the clock is stable and clock-to-reset 1ms requirement is satisfied."
Quoted 8 lines
So do as suggested and also add a 100us delay after deasserting the reset line to guarantee that the PHY ID can be read correctly and the Atheros 8031 PHY driver can be loaded automatically.
This results in a simpler code.
Signed-off-by Fabio Estevam <[email protected]>---
Applied (fix) to u-boot-imx, thanks !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
PATCH v2 1/3 phy: atheros: Use ar8035_config for AR8031
In reply to Fabio EstevamQuoted 6 lines · Fabio Estevam
From: Fabio Estevam <[email protected]>
Commit
08ad9b068afb88(" ar8031: modify the config func of ar8031 toar8021_config") selected 'ar8021_config' as the configuration function for AR8031.
Quoted 8 lines
The correct would be to use '
ar8035_config' instead as AR8031/AR8035 have the same programming model and even share the same phy driver in the linux kernel:drivers/net/phy/at803x.c.Tested on a mx6qsabresd and wandboard, which now can work without any PHY setup code in the board files.
Signed-off-by Fabio Estevam <[email protected]>
PATCH v2 1/3 phy: atheros: Use ar8035_config for AR8031
In reply to Fabio EstevamQuoted 19 lines · Fabio Estevam
-----Original Message-----
From: Fabio Estevam [mailto:festevam at gmail.com]
Sent: Wednesday, January 06, 2016 3:03 AM
To: sbabic at denx.de
Cc: joe.hershberger at ni.com; B45475 at freescale.com; yorksun at freescale.com; troy.kisky at boundarydevices.com; u-boot at lists.denx.de; Fabio Estevam <[email protected]>
Subject: [PATCH v2 1/3] phy: atheros: Usear8035_configfor AR8031From: Fabio Estevam <[email protected]>
Commit
08ad9b068afb88(" ar8031: modify the config func of ar8031 toar8021_config") selected 'ar8021_config' as the configuration function for AR8031.The correct would be to use '
ar8035_config' instead as AR8031/AR8035 have the same programming model and even share the same phy driver in the linux
kernel:drivers/net/phy/at803x.c.
Quoted 8 lines
Tested on a mx6qsabresd and wandboard, which now can work without any PHY setup code in the board files.
Signed-off-by Fabio Estevam <[email protected]>---
This is 2016.04 material.Zhao Qiang, could you please test this on your platform?
Yes, have tested, it can work on my platform.
Quoted 21 lines
Changes since v1:
- Nonedrivers/net/phy/atheros.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/net/phy/atheros.c index renamed from drivers/net/phy/atheros.c +0
-0d509e30..ba57b1a 100644
drivers/net/phy/atheros.c +1
-2@@ -51,7 +51,7 @@ static struct phy_driver AR8031_driver = { .uid = 0x4dd074, .mask = 0xffffffef, .features = PHY_GBIT_FEATURES, - .config = ar8021_config, + .config = ar8035_config, .startup = genphy_startup, .shutdown = genphy_shutdown, }; --
Quoted 1 line
1.9.1
Best Regards
Zhao Qiang
PATCH v2 1/3 phy: atheros: Use ar8035_config for AR8031
Quoted 24 lines · Qiang Zhao
Quoted 22 lines · Fabio Estevam
-----Original Message-----
From: Fabio Estevam [mailto:festevam at gmail.com]
Sent: Wednesday, January 06, 2016 3:03 AM
To: sbabic at denx.de
Cc: joe.hershberger at ni.com; B45475 at freescale.com; yorksun at freescale.com; troy.kisky at boundarydevices.com; u-boot at lists.denx.de; Fabio Estevam <[email protected]>
Subject: [PATCH v2 1/3] phy: atheros: Usear8035_configfor AR8031From: Fabio Estevam <[email protected]>
Commit
08ad9b068afb88(" ar8031: modify the config func of ar8031 toar8021_config") selected 'ar8021_config' as the configuration function for AR8031.The correct would be to use '
ar8035_config' instead as AR8031/AR8035 have the same programming model and even share the same phy driver in the linux
kernel:drivers/net/phy/at803x.c.Tested on a mx6qsabresd and wandboard, which now can work without any PHY setup code in the board files.
Quoted 7 lines
Quoted 5 lines
Signed-off-by Fabio Estevam <[email protected]>---
This is 2016.04 material.Zhao Qiang, could you please test this on your platform?
Yes, have tested, it can work on my platform.
Excellent, thanks for testing, Zhao.
Stefano,
With Zhao's test I think it is safe to add this for 2016.01. What do you think?
PATCH v2 1/3 phy: atheros: Use ar8035_config for AR8031
Hi Fabio,
Quoted 31 lines · Fabio Estevam
Quoted 30 lines · Qiang Zhao
Quoted 27 lines · Fabio Estevam
-----Original Message-----
From: Fabio Estevam [mailto:festevam at gmail.com]
Sent: Wednesday, January 06, 2016 3:03 AM
To: sbabic at denx.de
Cc: joe.hershberger at ni.com; B45475 at freescale.com; yorksun at freescale.com; troy.kisky at boundarydevices.com; u-boot at lists.denx.de; Fabio Estevam <[email protected]>
Subject: [PATCH v2 1/3] phy: atheros: Usear8035_configfor AR8031From: Fabio Estevam <[email protected]>
Commit
08ad9b068afb88(" ar8031: modify the config func of ar8031 toar8021_config") selected 'ar8021_config' as the configuration function for AR8031.The correct would be to use '
ar8035_config' instead as AR8031/AR8035 have the same programming model and even share the same phy driver in the linux
kernel:drivers/net/phy/at803x.c.Tested on a mx6qsabresd and wandboard, which now can work without any PHY setup code in the board files.
Signed-off-by Fabio Estevam <[email protected]>---
This is 2016.04 material.Zhao Qiang, could you please test this on your platform?
Quoted 8 lines
Quoted 1 line
Yes, have tested, it can work on my platform.
Excellent, thanks for testing, Zhao.
Stefano,
With Zhao's test I think it is safe to add this for 2016.01. What do you think?
Agree, I pick it up.
Regards,
Stefano
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
PATCH v2 1/3 phy: atheros: Use ar8035_config for AR8031
In reply to Fabio EstevamQuoted 19 lines · Fabio Estevam
-----Original Message-----
From: Fabio Estevam [mailto:festevam at gmail.com]
Sent: Wednesday, January 06, 2016 3:03 AM
To: sbabic at denx.de
Cc: joe.hershberger at ni.com; B45475 at freescale.com; yorksun at freescale.com; troy.kisky at boundarydevices.com; u-boot at lists.denx.de; Fabio Estevam <[email protected]>
Subject: [PATCH v2 1/3] phy: atheros: Usear8035_configfor AR8031From: Fabio Estevam <[email protected]>
Commit
08ad9b068afb88(" ar8031: modify the config func of ar8031 toar8021_config") selected 'ar8021_config' as the configuration function for AR8031.The correct would be to use '
ar8035_config' instead as AR8031/AR8035 have the same programming model and even share the same phy driver in the linux
kernel:drivers/net/phy/at803x.c.
Quoted 8 lines
Tested on a mx6qsabresd and wandboard, which now can work without any PHY setup code in the board files.
Signed-off-by Fabio Estevam <[email protected]>---
This is 2016.04 material.Zhao Qiang, could you please test this on your platform?
Yes, have tested, it can work on my platform.
Quoted 21 lines
Changes since v1:
- Nonedrivers/net/phy/atheros.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/net/phy/atheros.c index renamed from drivers/net/phy/atheros.c +0
-0d509e30..ba57b1a 100644
drivers/net/phy/atheros.c +1
-2@@ -51,7 +51,7 @@ static struct phy_driver AR8031_driver = { .uid = 0x4dd074, .mask = 0xffffffef, .features = PHY_GBIT_FEATURES, - .config = ar8021_config, + .config = ar8035_config, .startup = genphy_startup, .shutdown = genphy_shutdown, }; --
Quoted 1 line
1.9.1
Best Regards
Zhao Qiang
PATCH v2 1/3 phy: atheros: Use ar8035_config for AR8031
In reply to Fabio EstevamQuoted 19 lines · Fabio Estevam
-----Original Message-----
From: Fabio Estevam [mailto:festevam at gmail.com]
Sent: Wednesday, January 06, 2016 3:03 AM
To: sbabic at denx.de
Cc: joe.hershberger at ni.com; B45475 at freescale.com; yorksun at freescale.com; troy.kisky at boundarydevices.com; u-boot at lists.denx.de; Fabio Estevam <[email protected]>
Subject: [PATCH v2 1/3] phy: atheros: Usear8035_configfor AR8031From: Fabio Estevam <[email protected]>
Commit
08ad9b068afb88(" ar8031: modify the config func of ar8031 toar8021_config") selected 'ar8021_config' as the configuration function for AR8031.The correct would be to use '
ar8035_config' instead as AR8031/AR8035 have the same programming model and even share the same phy driver in the linux
kernel:drivers/net/phy/at803x.c.
Quoted 8 lines
Tested on a mx6qsabresd and wandboard, which now can work without any PHY setup code in the board files.
Signed-off-by Fabio Estevam <[email protected]>---
This is 2016.04 material.Zhao Qiang, could you please test this on your platform?
Yes, have tested, it can work on my platform.
Quoted 22 lines
Changes since v1:
- Nonedrivers/net/phy/atheros.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/net/phy/atheros.c index renamed from drivers/net/phy/atheros.c +0
-0d509e30..ba57b1a 100644
drivers/net/phy/atheros.c +1
-2@@ -51,7 +51,7 @@ static struct phy_driver AR8031_driver = { .uid = 0x4dd074, .mask = 0xffffffef, .features = PHY_GBIT_FEATURES, - .config = ar8021_config, + .config = ar8035_config, .startup = genphy_startup, .shutdown = genphy_shutdown, }; --1.9.1
PATCH v2 1/3 phy: atheros: Use ar8035_config for AR8031
In reply to Fabio EstevamQuoted 31 lines · Fabio Estevam
From: Fabio Estevam <[email protected]>
Commit
08ad9b068afb88(" ar8031: modify the config func of ar8031 toar8021_config") selected 'ar8021_config' as the configuration function for AR8031.The correct would be to use '
ar8035_config' instead as AR8031/AR8035 have the same programming model and even share the same phy driver in the linux kernel:drivers/net/phy/at803x.c.Tested on a mx6qsabresd and wandboard, which now can work without any PHY setup code in the board files.
Signed-off-by Fabio Estevam <[email protected]>---
This is 2016.04 material.Zhao Qiang, could you please test this on your platform?
Changes since v1:
- Nonedrivers/net/phy/atheros.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/net/phy/atheros.c +0
-0
drivers/net/phy/atheros.c static struct phy_driver AR8031_driver = { · line 57
Quoted 8 lines
drivers/net/phy/atheros.c +1
-1@@ -51,7 +51,7 @@ static struct phy_driver AR8031_driver = { .uid = 0x4dd074, .mask = 0xffffffef, .features = PHY_GBIT_FEATURES, - .config = ar8021_config, + .config = ar8035_config, .startup = genphy_startup, .shutdown = genphy_shutdown, };
Applied (fix) to u-boot-imx, thanks !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================