mx6qsabreauto: Add Ethernet support
PATCH 1/1 mx6qsabreauto: Add Ethernet support
mx6qsabreauto has a AR8031 Gigabit PHY.
Add support for it.
Signed-off-by Fabio Estevam <[email protected]>
--- board/freescale/mx6qsabreauto/mx6qsabreauto.c | 75 +++++++++++++++++++++++++ 1 file changed, 75 insertions(+)
board/freescale/mx6qsabreauto/mx6qsabreauto.c +75 -0
@@ -28,6 +28,8 @@#include <asm/imx-common/iomux-v3.h> #include <mmc.h> #include <fsl_esdhc.h> +#include <miiphy.h> +#include <netdev.h> DECLARE_GLOBAL_DATA_PTR ;#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
@@ -38,6 +40,10 @@ DECLARE_GLOBAL_DATA_PTR; PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \ PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) +#define ENET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ + PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \ + PAD_CTL_DSE_40ohm | PAD_CTL_HYS) +int dram_init (void ) { gd->ram_size =get_ram_size ((void *)PHYS_SDRAM ,PHYS_SDRAM_SIZE );
@@ -50,6 +56,29 @@ iomux_v3_cfg_t uart4_pads[] = { MX6Q_PAD_KEY_ROW0__UART4_RXD | MUX_PAD_CTRL(UART_PAD_CTRL), }; +iomux_v3_cfg_t enet_pads[] = { +MX6Q_PAD_KEY_COL1__ENET_MDIO |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_KEY_COL2__ENET_MDC |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_TXC__ENET_RGMII_TXC |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_TD0__ENET_RGMII_TD0 |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_TD1__ENET_RGMII_TD1 |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_TD2__ENET_RGMII_TD2 |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_TD3__ENET_RGMII_TD3 |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_TX_CTL__RGMII_TX_CTL |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_ENET_REF_CLK__ENET_TX_CLK |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_RXC__ENET_RGMII_RXC |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_RD0__ENET_RGMII_RD0 |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_RD1__ENET_RGMII_RD1 |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_RD2__ENET_RGMII_RD2 |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_RD3__ENET_RGMII_RD3 |MUX_PAD_CTRL (ENET_PAD_CTRL ), +MX6Q_PAD_RGMII_RX_CTL__RGMII_RX_CTL |MUX_PAD_CTRL (ENET_PAD_CTRL ), +}; + +static void setup_iomux_enet (void ) +{ +imx_iomux_v3_setup_multiple_pads (enet_pads,ARRAY_SIZE (enet_pads)); +} +iomux_v3_cfg_t usdhc3_pads[] = {MX6Q_PAD_SD3_CLK__USDHC3_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL ),MX6Q_PAD_SD3_CMD__USDHC3_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL ),
@@ -89,6 +118,52 @@ 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 ; +} + +int board_eth_init (bd_t *bis) +{ +int ret; + +setup_iomux_enet (); + + ret =cpu_eth_init (bis); +if (ret) +printf ("FEC MXC: %s:failed\n" , __func__); + +return 0 ; +} +u32 get_board_rev (void ) {return 0x63000 ;
Signature · 1 line
1.7.9.5
PATCH 1/1 mx6qsabreauto: Add Ethernet support
Hi Stefano,
Quoted 5 lines · Fabio Estevam
mx6qsabreauto has a AR8031 Gigabit PHY.
Add support for it.
Signed-off-by Fabio Estevam <[email protected]>
Any comments on this one. please?
Regards,
Fabio Estevam
PATCH 1/1 mx6qsabreauto: Add Ethernet support
Quoted 4 lines · Fabio Estevam
Hi Stefano,
On Tue, Sep 25, 2012 at 3:43 PM, Fabio Estevam
<[email protected]> wrote:
Quoted 8 lines
Quoted 5 lines
mx6qsabreauto has a AR8031 Gigabit PHY.
Add support for it.
Signed-off-by Fabio Estevam <[email protected]>Any comments on this one. please?
Put in my ready-to-be-merged list.
Regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel 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 1/1 mx6qsabreauto: Add Ethernet support
In reply to Fabio EstevamQuoted 6 lines · Fabio Estevam
mx6qsabreauto has a AR8031 Gigabit PHY.
Add support for it.
Signed-off-by Fabio Estevam <[email protected]>---
Applied to u-boot-imx, next branch, thanks.
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel 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 =====================================================================