]> git.ipfire.org Git - thirdparty/u-boot.git/blame - include/netdev.h
cbfs: drop file_cbfs_result declaration
[thirdparty/u-boot.git] / include / netdev.h
CommitLineData
83d290c5 1/* SPDX-License-Identifier: GPL-2.0+ */
89973f8a
BW
2/*
3 * (C) Copyright 2008
4 * Benjamin Warren, biggerbadderben@gmail.com
89973f8a
BW
5 */
6
7/*
8 * netdev.h - definitions an prototypes for network devices
9 */
10
11#ifndef _NETDEV_H_
12#define _NETDEV_H_
53e3d52c 13#include <phy_interface.h>
89973f8a
BW
14
15/*
16 * Board and CPU-specific initialization functions
17 * board_eth_init() has highest priority. cpu_eth_init() only
18 * gets called if board_eth_init() isn't instantiated or fails.
19 * Return values:
20 * 0: success
21 * -1: failure
22 */
23
24int board_eth_init(bd_t *bis);
53e3d52c
PD
25int board_interface_eth_init(struct udevice *dev,
26 phy_interface_t interface_type);
89973f8a
BW
27int cpu_eth_init(bd_t *bis);
28
29/* Driver initialization prototypes */
c041e9d2 30int at91emac_register(bd_t *bis, unsigned long iobase);
bd6ce9d1 31int ax88180_initialize(bd_t *bis);
799e125c 32int bcm_sf2_eth_register(bd_t *bis, u8 dev_num);
89973f8a 33int bfin_EMAC_initialize(bd_t *bis);
efdd7319 34int calxedaxgmac_initialize(u32 id, ulong base_addr);
b1c0eaac 35int cs8900_initialize(u8 dev_num, int base_addr);
bd6ce9d1 36int dc21x4x_initialize(bd_t *bis);
92a190aa 37int designware_initialize(ulong base_addr, u32 interface);
bd6ce9d1 38int dm9000_initialize(bd_t *bis);
62cbc408 39int dnet_eth_initialize(int id, void *regs, unsigned int phy_addr);
ad3381cf 40int e1000_initialize(bd_t *bis);
10efa024 41int eepro100_initialize(bd_t *bis);
594d57d0 42int ep93xx_eth_initialize(u8 dev_num, int base_addr);
164846ee 43int eth_3com_initialize (bd_t * bis);
bd6ce9d1 44int ethoc_initialize(u8 dev_num, int base_addr);
3456a148 45int fec_initialize (bd_t *bis);
bd6ce9d1 46int fecmxc_initialize(bd_t *bis);
9e27e9dc 47int fecmxc_initialize_multi(bd_t *bis, int dev_id, int phy_id, uint32_t addr);
750326e5 48int ftmac100_initialize(bd_t *bits);
c4775476 49int ftmac110_initialize(bd_t *bits);
6aca145e 50void gt6426x_eth_initialize(bd_t *bis);
45a1693a 51int ks8851_mll_initialize(u8 dev_num, int base_addr);
b7ad4109 52int lan91c96_initialize(u8 dev_num, int base_addr);
ac2916a2 53int lpc32xx_eth_initialize(bd_t *bis);
89973f8a
BW
54int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);
55int mcdmafec_initialize(bd_t *bis);
56int mcffec_initialize(bd_t *bis);
d44265ad 57int mvgbe_initialize(bd_t *bis);
19fc2eae 58int mvneta_initialize(bd_t *bis, int base_addr, int devnum, int phy_addr);
b902b8dd 59int natsemi_initialize(bd_t *bis);
d0201692 60int ne2k_register(void);
cc94074e 61int npe_initialize(bd_t *bis);
19403633 62int ns8382x_initialize(bd_t *bis);
e3090534 63int pcnet_initialize(bd_t *bis);
25a85906 64int ppc_4xx_eth_initialize (bd_t *bis);
0b252f50 65int rtl8139_initialize(bd_t *bis);
02d69891 66int rtl8169_initialize(bd_t *bis);
9eb79bd8 67int scc_initialize(bd_t *bis);
bd6ce9d1 68int sh_eth_initialize(bd_t *bis);
89973f8a 69int skge_initialize(bd_t *bis);
7194ab80 70int smc91111_initialize(u8 dev_num, int base_addr);
bd6ce9d1 71int smc911x_initialize(u8 dev_num, int base_addr);
2b5243fc 72int uec_standard_init(bd_t *bis);
89973f8a 73int uli526x_initialize(bd_t *bis);
79788bb1 74int armada100_fec_register(unsigned long base_addr);
89973f8a
BW
75
76/* Boards with PCI network controllers can call this from their board_eth_init()
77 * function to initialize whatever's on board.
78 * Return value is total # of devices found */
79
80static inline int pci_eth_init(bd_t *bis)
81{
82 int num = 0;
e3090534 83
10efa024
BW
84#ifdef CONFIG_PCI
85
86#ifdef CONFIG_EEPRO100
87 num += eepro100_initialize(bis);
88#endif
8ca0b3f9
BW
89#ifdef CONFIG_TULIP
90 num += dc21x4x_initialize(bis);
91#endif
ad3381cf
BW
92#ifdef CONFIG_E1000
93 num += e1000_initialize(bis);
94#endif
e3090534
BW
95#ifdef CONFIG_PCNET
96 num += pcnet_initialize(bis);
97#endif
b902b8dd
BW
98#ifdef CONFIG_NATSEMI
99 num += natsemi_initialize(bis);
100#endif
19403633
BW
101#ifdef CONFIG_NS8382X
102 num += ns8382x_initialize(bis);
103#endif
0b252f50
BW
104#if defined(CONFIG_RTL8139)
105 num += rtl8139_initialize(bis);
106#endif
02d69891
BW
107#if defined(CONFIG_RTL8169)
108 num += rtl8169_initialize(bis);
109#endif
b11f664f 110#if defined(CONFIG_ULI526X)
89973f8a
BW
111 num += uli526x_initialize(bis);
112#endif
10efa024
BW
113
114#endif /* CONFIG_PCI */
89973f8a
BW
115 return num;
116}
117
1bcabd79 118struct mii_dev *fec_get_miibus(ulong base_addr, int dev_id);
cb5761f7 119
fe428b90
TK
120#ifdef CONFIG_PHYLIB
121struct phy_device;
122int fec_probe(bd_t *bd, int dev_id, uint32_t base_addr,
123 struct mii_dev *bus, struct phy_device *phydev);
124#else
2e5f4421
MV
125/*
126 * Allow FEC to fine-tune MII configuration on boards which require this.
127 */
f2c5564f 128struct eth_device;
2e5f4421 129int fecmxc_register_mii_postcall(struct eth_device *dev, int (*cb)(int));
fe428b90 130#endif
2e5f4421 131
89973f8a 132#endif /* _NETDEV_H_ */