mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-26 04:25:18 +07:00
0c165ff2d8
This adds support for W5200 chip. W5100 and W5200 have similar memory map although some of their offsets are different. The register access sequences between them are different but w5100 driver has abstraction layer for difference bus interface modes so it is easy to add W5200 support to w5100 and w5100-spi drivers. Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: Mike Sinkovsky <msink@permonline.ru> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: David S. Miller <davem@davemloft.net>
36 lines
999 B
C
36 lines
999 B
C
/*
|
|
* Ethernet driver for the WIZnet W5100 chip.
|
|
*
|
|
* Copyright (C) 2006-2008 WIZnet Co.,Ltd.
|
|
* Copyright (C) 2012 Mike Sinkovsky <msink@permonline.ru>
|
|
*
|
|
* Licensed under the GPL-2 or later.
|
|
*/
|
|
|
|
enum {
|
|
W5100,
|
|
W5200,
|
|
};
|
|
|
|
struct w5100_ops {
|
|
bool may_sleep;
|
|
int chip_id;
|
|
int (*read)(struct net_device *ndev, u16 addr);
|
|
int (*write)(struct net_device *ndev, u16 addr, u8 data);
|
|
int (*read16)(struct net_device *ndev, u16 addr);
|
|
int (*write16)(struct net_device *ndev, u16 addr, u16 data);
|
|
int (*readbulk)(struct net_device *ndev, u16 addr, u8 *buf, int len);
|
|
int (*writebulk)(struct net_device *ndev, u16 addr, const u8 *buf,
|
|
int len);
|
|
int (*reset)(struct net_device *ndev);
|
|
int (*init)(struct net_device *ndev);
|
|
};
|
|
|
|
void *w5100_ops_priv(const struct net_device *ndev);
|
|
|
|
int w5100_probe(struct device *dev, const struct w5100_ops *ops,
|
|
int sizeof_ops_priv, u8 *mac_addr, int irq, int link_gpio);
|
|
int w5100_remove(struct device *dev);
|
|
|
|
extern const struct dev_pm_ops w5100_pm_ops;
|