diff options
author | Romain Perier <romain.perier@gmail.com> | 2014-08-26 17:14:51 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-08-28 03:40:26 +0400 |
commit | 23d2d9a630b98a554cc328c6b69c56fd285e0129 (patch) | |
tree | 265d7e4ceba509f54b494db5cdeb8d000f811d97 /drivers/net/ethernet/arc/emac.h | |
parent | 93e91b3dda17be19ecf52de2400a02c6469decfa (diff) | |
download | linux-23d2d9a630b98a554cc328c6b69c56fd285e0129.tar.xz |
ethernet: arc: Add support for specific SoC layer device tree bindings
Some platforms have special bank registers which might be used to
select the correct clock or the right mode for Media Indepent Interface
controllers. Sometimes, it is also required to activate vcc regulators
in the right order to supply the ethernet controller at the right time.
This patch is an architecture refactoring of the arc-emac device driver.
It adds a new software design which allows to add specific platform
glue layer. Each platform has now its own module which performs custom
initialization and remove for the target and then calls to the
core driver.
Signed-off-by: Romain Perier <romain.perier@gmail.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/arc/emac.h')
-rw-r--r-- | drivers/net/ethernet/arc/emac.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/arc/emac.h b/drivers/net/ethernet/arc/emac.h index 8011445adcba..eb2ba67ac711 100644 --- a/drivers/net/ethernet/arc/emac.h +++ b/drivers/net/ethernet/arc/emac.h @@ -124,6 +124,8 @@ struct buffer_state { */ struct arc_emac_priv { /* Devices */ + const char *drv_name; + const char *drv_version; struct device *dev; struct phy_device *phy_dev; struct mii_bus *bus; @@ -206,5 +208,7 @@ static inline void arc_reg_clr(struct arc_emac_priv *priv, int reg, int mask) int arc_mdio_probe(struct arc_emac_priv *priv); int arc_mdio_remove(struct arc_emac_priv *priv); +int arc_emac_probe(struct net_device *ndev, int interface); +int arc_emac_remove(struct net_device *ndev); #endif /* ARC_EMAC_H */ |