| From f11cc108bccc4550276fd532b587669366459d9a Mon Sep 17 00:00:00 2001 |
| From: Simon Horman <horms+renesas@verge.net.au> |
| Date: Tue, 23 Jul 2013 10:18:04 +0900 |
| Subject: sh_eth: add support for RMIIMODE register |
| |
| This register is prsent on the r8a7790 SoC. |
| |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| (cherry picked from commit 55754f19d7ee4fa3633f55a4a084af8590c35efa) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/net/ethernet/renesas/sh_eth.c | 4 ++++ |
| drivers/net/ethernet/renesas/sh_eth.h | 2 ++ |
| 2 files changed, 6 insertions(+) |
| |
| diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c |
| index 6ea2b9c4..fb1c8c75 100644 |
| --- a/drivers/net/ethernet/renesas/sh_eth.c |
| +++ b/drivers/net/ethernet/renesas/sh_eth.c |
| @@ -189,6 +189,7 @@ static const u16 sh_eth_offset_fast_rcar[SH_ETH_MAX_REGISTER_OFFSET] = { |
| [RMCR] = 0x0258, |
| [TFUCR] = 0x0264, |
| [RFOCR] = 0x0268, |
| + [RMIIMODE] = 0x026c, |
| [FCFTR] = 0x0270, |
| [TRIMD] = 0x027c, |
| }; |
| @@ -1124,6 +1125,9 @@ static int sh_eth_dev_init(struct net_device *ndev, bool start) |
| if (ret) |
| goto out; |
| |
| + if (mdp->cd->rmiimode) |
| + sh_eth_write(ndev, 0x1, RMIIMODE); |
| + |
| /* Descriptor format */ |
| sh_eth_ring_format(ndev); |
| if (mdp->cd->rpadir) |
| diff --git a/drivers/net/ethernet/renesas/sh_eth.h b/drivers/net/ethernet/renesas/sh_eth.h |
| index 99995bf3..da93f5cf 100644 |
| --- a/drivers/net/ethernet/renesas/sh_eth.h |
| +++ b/drivers/net/ethernet/renesas/sh_eth.h |
| @@ -60,6 +60,7 @@ enum { |
| EDOCR, |
| TFUCR, |
| RFOCR, |
| + RMIIMODE, |
| FCFTR, |
| RPADIR, |
| TRIMD, |
| @@ -482,6 +483,7 @@ struct sh_eth_cpu_data { |
| unsigned hw_crc:1; /* E-DMAC have CSMR */ |
| unsigned select_mii:1; /* EtherC have RMII_MII (MII select register) */ |
| unsigned shift_rd0:1; /* shift Rx descriptor word 0 right by 16 */ |
| + unsigned rmiimode:1; /* EtherC has RMIIMODE register */ |
| }; |
| |
| struct sh_eth_private { |
| -- |
| 1.8.4.3.gca3854a |
| |