This will pave the way to move the PHY code to fsl_phy.c which will be reused by all other code.
Signed-off-by: Mingkai Hu <mingkai...@freescale.com> --- drivers/net/tsec.c | 10 +++++----- include/tsec.h | 35 +++++++++++------------------------ 2 files changed, 16 insertions(+), 29 deletions(-) diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index 40f1c76..ac65c43 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -56,7 +56,7 @@ static struct tsec_info_struct tsec_info[] = { #ifdef CONFIG_MPC85XX_FEC { .regs = (tsec_t *)(TSEC_BASE_ADDR + 0x2000), - .miiregs = (tsec_mdio_t *)(MDIO_BASE_ADDR), + .miiregs = (tsec_mii_t *)(MDIO_BASE_ADDR + 0x520), .devname = CONFIG_MPC85XX_FEC_NAME, .phyaddr = FEC_PHY_ADDR, .flags = FEC_FLAGS @@ -71,7 +71,7 @@ static struct tsec_info_struct tsec_info[] = { }; /* Writes the given phy's reg with value, using the specified MDIO regs */ -static void tsec_local_mdio_write(tsec_mdio_t *phyregs, uint addr, +static void tsec_local_mdio_write(tsec_mii_t *phyregs, uint addr, uint reg, uint value) { int timeout = 1000000; @@ -94,7 +94,7 @@ static void tsec_local_mdio_write(tsec_mdio_t *phyregs, uint addr, * notvalid bit cleared), and the bus to cease activity (miimind * busy bit cleared), and then returns the value */ -static uint tsec_local_mdio_read(tsec_mdio_t *phyregs, uint phyid, uint regnum) +static uint tsec_local_mdio_read(tsec_mii_t *phyregs, uint phyid, uint regnum) { uint value; @@ -635,7 +635,7 @@ static uint mii_parse_dm9161_scsr(uint mii_reg, struct tsec_private * priv) static uint mii_cis8204_fixled(uint mii_reg, struct tsec_private * priv) { uint phyid; - tsec_mdio_t *regbase = priv->phyregs; + tsec_mii_t *regbase = priv->phyregs; int timeout = 1000000; for (phyid = 0; phyid < 4; phyid++) { @@ -1444,7 +1444,7 @@ static void phy_run_commands(struct tsec_private *priv, struct phy_cmd *cmd) { int i; uint result; - tsec_mdio_t *phyregs = priv->phyregs; + tsec_mii_t *phyregs = priv->phyregs; out_be32(&phyregs->miimcfg, MIIMCFG_RESET); diff --git a/include/tsec.h b/include/tsec.h index 6971b47..054e5cf 100644 --- a/include/tsec.h +++ b/include/tsec.h @@ -19,15 +19,18 @@ #include <net.h> #include <config.h> +#include <asm/fsl_enet.h> #define TSEC_SIZE 0x01000 #define TSEC_MDIO_OFFSET 0x01000 +#define CONFIG_SYS_MDIO_BASE_ADDR (TSEC_BASE_ADDR + 0x520) + #define STD_TSEC_INFO(num) \ { \ .regs = (tsec_t *)(TSEC_BASE_ADDR + ((num - 1) * TSEC_SIZE)), \ - .miiregs = (tsec_mdio_t *)(MDIO_BASE_ADDR), \ - .miiregs_sgmii = (tsec_mdio_t *)(MDIO_BASE_ADDR \ + .miiregs = (tsec_mii_t *)(CONFIG_SYS_MDIO_BASE_ADDR), \ + .miiregs_sgmii = (tsec_mii_t *)(CONFIG_SYS_MDIO_BASE_ADDR \ + (num - 1) * TSEC_MDIO_OFFSET), \ .devname = CONFIG_TSEC##num##_NAME, \ .phyaddr = TSEC##num##_PHY_ADDR, \ @@ -37,8 +40,8 @@ #define SET_STD_TSEC_INFO(x, num) \ { \ x.regs = (tsec_t *)(TSEC_BASE_ADDR + ((num - 1) * TSEC_SIZE)); \ - x.miiregs = (tsec_mdio_t *)(MDIO_BASE_ADDR); \ - x.miiregs_sgmii = (tsec_mdio_t *)(MDIO_BASE_ADDR \ + x.miiregs = (tsec_mii_t *)(CONFIG_SYS_MDIO_BASE_ADDR); \ + x.miiregs_sgmii = (tsec_mii_t *)(CONFIG_SYS_MDIO_BASE_ADDR \ + (num - 1) * TSEC_MDIO_OFFSET); \ x.devname = CONFIG_TSEC##num##_NAME; \ x.phyaddr = TSEC##num##_PHY_ADDR; \ @@ -467,22 +470,6 @@ typedef struct tsec_hash_regs uint res2[24]; } tsec_hash_t; -typedef struct tsec_mdio { - uint res1[4]; - uint ieventm; - uint imaskm; - uint res2; - uint emapm; - uint res3[320]; - uint miimcfg; /* MII Management: Configuration */ - uint miimcom; /* MII Management: Command */ - uint miimadd; /* MII Management: Address */ - uint miimcon; /* MII Management: Control */ - uint miimstat; /* MII Management: Status */ - uint miimind; /* MII Management: Indicators */ - uint res4[690]; -} tsec_mdio_t; - typedef struct tsec { /* General Control and Status Registers (0x2_n000) */ @@ -588,8 +575,8 @@ typedef struct tsec struct tsec_private { tsec_t *regs; - tsec_mdio_t *phyregs; - tsec_mdio_t *phyregs_sgmii; + tsec_mii_t *phyregs; + tsec_mii_t *phyregs_sgmii; struct phy_info *phyinfo; uint phyaddr; u32 flags; @@ -648,8 +635,8 @@ struct phy_info { struct tsec_info_struct { tsec_t *regs; - tsec_mdio_t *miiregs; - tsec_mdio_t *miiregs_sgmii; + tsec_mii_t *miiregs; + tsec_mii_t *miiregs_sgmii; char *devname; unsigned int phyaddr; u32 flags; -- 1.6.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot