/* * Ethernet driver for the WIZnet W5100 chip. * * Copyright (C) 2006-2008 WIZnet Co.,Ltd. * Copyright (C) 2012 Mike Sinkovsky * * Licensed under the GPL-2 or later. */ struct w5100_ops { bool may_sleep; 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;