Commit d0418bb7 authored by Phil Edworthy's avatar Phil Edworthy Committed by David S. Miller

net: sh_eth: Add eth support for R8A7779 device

Signed-off-by: default avatarPhil Edworthy <phil.edworthy@renesas.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 61abcb7b
...@@ -8,7 +8,7 @@ config SH_ETH ...@@ -8,7 +8,7 @@ config SH_ETH
(CPU_SUBTYPE_SH7710 || CPU_SUBTYPE_SH7712 || \ (CPU_SUBTYPE_SH7710 || CPU_SUBTYPE_SH7712 || \
CPU_SUBTYPE_SH7763 || CPU_SUBTYPE_SH7619 || \ CPU_SUBTYPE_SH7763 || CPU_SUBTYPE_SH7619 || \
CPU_SUBTYPE_SH7724 || CPU_SUBTYPE_SH7734 || \ CPU_SUBTYPE_SH7724 || CPU_SUBTYPE_SH7734 || \
CPU_SUBTYPE_SH7757 || ARCH_R8A7740) CPU_SUBTYPE_SH7757 || ARCH_R8A7740 || ARCH_R8A7779)
select CRC32 select CRC32
select NET_CORE select NET_CORE
select MII select MII
...@@ -18,4 +18,4 @@ config SH_ETH ...@@ -18,4 +18,4 @@ config SH_ETH
Renesas SuperH Ethernet device driver. Renesas SuperH Ethernet device driver.
This driver supporting CPUs are: This driver supporting CPUs are:
- SH7619, SH7710, SH7712, SH7724, SH7734, SH7763, SH7757, - SH7619, SH7710, SH7712, SH7724, SH7734, SH7763, SH7757,
and R8A7740. R8A7740 and R8A7779.
...@@ -78,7 +78,7 @@ static void sh_eth_select_mii(struct net_device *ndev) ...@@ -78,7 +78,7 @@ static void sh_eth_select_mii(struct net_device *ndev)
#endif #endif
/* There is CPU dependent code */ /* There is CPU dependent code */
#if defined(CONFIG_CPU_SUBTYPE_SH7724) #if defined(CONFIG_CPU_SUBTYPE_SH7724) || defined(CONFIG_ARCH_R8A7779)
#define SH_ETH_RESET_DEFAULT 1 #define SH_ETH_RESET_DEFAULT 1
static void sh_eth_set_duplex(struct net_device *ndev) static void sh_eth_set_duplex(struct net_device *ndev)
{ {
...@@ -93,13 +93,18 @@ static void sh_eth_set_duplex(struct net_device *ndev) ...@@ -93,13 +93,18 @@ static void sh_eth_set_duplex(struct net_device *ndev)
static void sh_eth_set_rate(struct net_device *ndev) static void sh_eth_set_rate(struct net_device *ndev)
{ {
struct sh_eth_private *mdp = netdev_priv(ndev); struct sh_eth_private *mdp = netdev_priv(ndev);
unsigned int bits = ECMR_RTM;
#if defined(CONFIG_ARCH_R8A7779)
bits |= ECMR_ELB;
#endif
switch (mdp->speed) { switch (mdp->speed) {
case 10: /* 10BASE */ case 10: /* 10BASE */
sh_eth_write(ndev, sh_eth_read(ndev, ECMR) & ~ECMR_RTM, ECMR); sh_eth_write(ndev, sh_eth_read(ndev, ECMR) & ~bits, ECMR);
break; break;
case 100:/* 100BASE */ case 100:/* 100BASE */
sh_eth_write(ndev, sh_eth_read(ndev, ECMR) | ECMR_RTM, ECMR); sh_eth_write(ndev, sh_eth_read(ndev, ECMR) | bits, ECMR);
break; break;
default: default:
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment