Skip to content

Commit

Permalink
tg3: Add clause 45 register accessor methods
Browse files Browse the repository at this point in the history
This patch adds clause 45 register access methods.  They will be used in
the following patch.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Matt Carlson authored and David S. Miller committed Oct 17, 2010
1 parent 3d37728 commit ddfc87b
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
46 changes: 46 additions & 0 deletions drivers/net/tg3.c
Original file line number Diff line number Diff line change
Expand Up @@ -1162,6 +1162,52 @@ static void tg3_mdio_fini(struct tg3 *tp)
}
}

static int tg3_phy_cl45_write(struct tg3 *tp, u32 devad, u32 addr, u32 val)
{
int err;

err = tg3_writephy(tp, MII_TG3_MMD_CTRL, devad);
if (err)
goto done;

err = tg3_writephy(tp, MII_TG3_MMD_ADDRESS, addr);
if (err)
goto done;

err = tg3_writephy(tp, MII_TG3_MMD_CTRL,
MII_TG3_MMD_CTRL_DATA_NOINC | devad);
if (err)
goto done;

err = tg3_writephy(tp, MII_TG3_MMD_ADDRESS, val);

done:
return err;
}

static int tg3_phy_cl45_read(struct tg3 *tp, u32 devad, u32 addr, u32 *val)
{
int err;

err = tg3_writephy(tp, MII_TG3_MMD_CTRL, devad);
if (err)
goto done;

err = tg3_writephy(tp, MII_TG3_MMD_ADDRESS, addr);
if (err)
goto done;

err = tg3_writephy(tp, MII_TG3_MMD_CTRL,
MII_TG3_MMD_CTRL_DATA_NOINC | devad);
if (err)
goto done;

err = tg3_readphy(tp, MII_TG3_MMD_ADDRESS, val);

done:
return err;
}

/* tp->lock is held. */
static inline void tg3_generate_fw_event(struct tg3 *tp)
{
Expand Down
4 changes: 4 additions & 0 deletions drivers/net/tg3.h
Original file line number Diff line number Diff line change
Expand Up @@ -2061,6 +2061,10 @@
#define MII_TG3_CTRL_AS_MASTER 0x0800
#define MII_TG3_CTRL_ENABLE_AS_MASTER 0x1000

#define MII_TG3_MMD_CTRL 0x0d /* MMD Access Control register */
#define MII_TG3_MMD_CTRL_DATA_NOINC 0x4000
#define MII_TG3_MMD_ADDRESS 0x0e /* MMD Address Data register */

#define MII_TG3_EXT_CTRL 0x10 /* Extended control register */
#define MII_TG3_EXT_CTRL_FIFO_ELASTIC 0x0001
#define MII_TG3_EXT_CTRL_LNK3_LED_MODE 0x0002
Expand Down

0 comments on commit ddfc87b

Please sign in to comment.