180503b23SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 2850576cfSAkinobu Mita /* 3850576cfSAkinobu Mita * Ethernet driver for the WIZnet W5100 chip. 4850576cfSAkinobu Mita * 5850576cfSAkinobu Mita * Copyright (C) 2006-2008 WIZnet Co.,Ltd. 6850576cfSAkinobu Mita * Copyright (C) 2012 Mike Sinkovsky <msink@permonline.ru> 7850576cfSAkinobu Mita */ 8850576cfSAkinobu Mita 90c165ff2SAkinobu Mita enum { 100c165ff2SAkinobu Mita W5100, 110c165ff2SAkinobu Mita W5200, 1235ef7d68SAkinobu Mita W5500, 130c165ff2SAkinobu Mita }; 140c165ff2SAkinobu Mita 15850576cfSAkinobu Mita struct w5100_ops { 16bf2c6b90SAkinobu Mita bool may_sleep; 170c165ff2SAkinobu Mita int chip_id; 1835ef7d68SAkinobu Mita int (*read)(struct net_device *ndev, u32 addr); 1935ef7d68SAkinobu Mita int (*write)(struct net_device *ndev, u32 addr, u8 data); 2035ef7d68SAkinobu Mita int (*read16)(struct net_device *ndev, u32 addr); 2135ef7d68SAkinobu Mita int (*write16)(struct net_device *ndev, u32 addr, u16 data); 2235ef7d68SAkinobu Mita int (*readbulk)(struct net_device *ndev, u32 addr, u8 *buf, int len); 2335ef7d68SAkinobu Mita int (*writebulk)(struct net_device *ndev, u32 addr, const u8 *buf, 24850576cfSAkinobu Mita int len); 25850576cfSAkinobu Mita int (*reset)(struct net_device *ndev); 26850576cfSAkinobu Mita int (*init)(struct net_device *ndev); 27850576cfSAkinobu Mita }; 28850576cfSAkinobu Mita 29850576cfSAkinobu Mita void *w5100_ops_priv(const struct net_device *ndev); 30850576cfSAkinobu Mita 31850576cfSAkinobu Mita int w5100_probe(struct device *dev, const struct w5100_ops *ops, 32c3875ca7SAkinobu Mita int sizeof_ops_priv, const void *mac_addr, int irq, 33c3875ca7SAkinobu Mita int link_gpio); 34*d40dfa0cSUwe Kleine-König void w5100_remove(struct device *dev); 35850576cfSAkinobu Mita 36850576cfSAkinobu Mita extern const struct dev_pm_ops w5100_pm_ops; 37