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