"Das U-Boot" Source Tree
at jcs/rk3128 134 lines 4.1 kB view raw
1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * (C) Copyright 2008 4 * Benjamin Warren, biggerbadderben@gmail.com 5 */ 6 7/* 8 * netdev.h - definitions an prototypes for network devices 9 */ 10 11#ifndef _NETDEV_H_ 12#define _NETDEV_H_ 13 14#include <linux/types.h> 15#include <phy_interface.h> 16 17struct udevice; 18struct bd_info; 19 20/* 21 * Board and CPU-specific initialization functions 22 * board_eth_init() has highest priority. cpu_eth_init() only 23 * gets called if board_eth_init() isn't instantiated or fails. 24 * Return values: 25 * 0: success 26 * -1: failure 27 */ 28 29int board_eth_init(struct bd_info *bis); 30int board_interface_eth_init(struct udevice *dev, 31 phy_interface_t interface_type); 32int cpu_eth_init(struct bd_info *bis); 33 34/* Driver initialization prototypes */ 35int ax88180_initialize(struct bd_info *bis); 36int bcm_sf2_eth_register(struct bd_info *bis, u8 dev_num); 37int bfin_EMAC_initialize(struct bd_info *bis); 38int cs8900_initialize(u8 dev_num, int base_addr); 39int dc21x4x_initialize(struct bd_info *bis); 40int designware_initialize(ulong base_addr, u32 interface); 41int dm9000_initialize(struct bd_info *bis); 42int dnet_eth_initialize(int id, void *regs, unsigned int phy_addr); 43int e1000_initialize(struct bd_info *bis); 44int eepro100_initialize(struct bd_info *bis); 45int ep93xx_eth_initialize(u8 dev_num, int base_addr); 46int eth_3com_initialize (struct bd_info * bis); 47int ethoc_initialize(u8 dev_num, int base_addr); 48int fecmxc_initialize(struct bd_info *bis); 49int fecmxc_initialize_multi(struct bd_info *bis, int dev_id, int phy_id, 50 uint32_t addr); 51int ftmac100_initialize(struct bd_info *bits); 52int ftmac110_initialize(struct bd_info *bits); 53void gt6426x_eth_initialize(struct bd_info *bis); 54int ks8851_mll_initialize(u8 dev_num, int base_addr); 55int lan91c96_initialize(u8 dev_num, int base_addr); 56int lpc32xx_eth_initialize(struct bd_info *bis); 57int macb_eth_initialize(int id, void *regs, unsigned int phy_addr); 58int mcdmafec_initialize(struct bd_info *bis); 59int mcffec_initialize(struct bd_info *bis); 60int mvgbe_initialize(struct bd_info *bis); 61int mvneta_initialize(struct bd_info *bis, int base_addr, int devnum, 62 int phy_addr); 63int natsemi_initialize(struct bd_info *bis); 64int ne2k_register(void); 65int npe_initialize(struct bd_info *bis); 66int ns8382x_initialize(struct bd_info *bis); 67int pcnet_initialize(struct bd_info *bis); 68int ppc_4xx_eth_initialize (struct bd_info *bis); 69int rtl8139_initialize(struct bd_info *bis); 70int rtl8169_initialize(struct bd_info *bis); 71int scc_initialize(struct bd_info *bis); 72int sh_eth_initialize(struct bd_info *bis); 73int skge_initialize(struct bd_info *bis); 74int smc91111_initialize(u8 dev_num, phys_addr_t base_addr); 75int smc911x_initialize(u8 dev_num, phys_addr_t base_addr); 76int uli526x_initialize(struct bd_info *bis); 77 78/* Boards with PCI network controllers can call this from their board_eth_init() 79 * function to initialize whatever's on board. 80 * Return value is total # of devices found */ 81 82static inline int pci_eth_init(struct bd_info *bis) 83{ 84 int num = 0; 85 86#ifdef CONFIG_PCI 87 88#ifdef CONFIG_EEPRO100 89 num += eepro100_initialize(bis); 90#endif 91#ifdef CONFIG_TULIP 92 num += dc21x4x_initialize(bis); 93#endif 94#ifdef CONFIG_E1000 95 num += e1000_initialize(bis); 96#endif 97#ifdef CONFIG_PCNET 98 num += pcnet_initialize(bis); 99#endif 100#ifdef CONFIG_NATSEMI 101 num += natsemi_initialize(bis); 102#endif 103#ifdef CONFIG_NS8382X 104 num += ns8382x_initialize(bis); 105#endif 106#if defined(CONFIG_RTL8139) 107 num += rtl8139_initialize(bis); 108#endif 109#if defined(CONFIG_RTL8169) 110 num += rtl8169_initialize(bis); 111#endif 112#if defined(CONFIG_ULI526X) 113 num += uli526x_initialize(bis); 114#endif 115 116#endif /* CONFIG_PCI */ 117 return num; 118} 119 120struct mii_dev *fec_get_miibus(struct udevice *dev, ulong base_addr, int dev_id); 121 122#ifdef CONFIG_PHYLIB 123struct phy_device; 124int fec_probe(struct bd_info *bd, int dev_id, uint32_t base_addr, 125 struct mii_dev *bus, struct phy_device *phydev); 126#else 127/* 128 * Allow FEC to fine-tune MII configuration on boards which require this. 129 */ 130struct eth_device; 131int fecmxc_register_mii_postcall(struct eth_device *dev, int (*cb)(int)); 132#endif 133 134#endif /* _NETDEV_H_ */