]> Git Repo - u-boot.git/blame - include/netdev.h
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh
[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, [email protected]
89973f8a
BW
5 */
6
7/*
8 * netdev.h - definitions an prototypes for network devices
9 */
10
11#ifndef _NETDEV_H_
12#define _NETDEV_H_
03de305e
TR
13
14#include <linux/types.h>
53e3d52c 15#include <phy_interface.h>
89973f8a 16
401d1c4f 17struct udevice;
03de305e 18struct bd_info;
401d1c4f 19
89973f8a
BW
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
b75d8dc5 29int board_eth_init(struct bd_info *bis);
53e3d52c
PD
30int board_interface_eth_init(struct udevice *dev,
31 phy_interface_t interface_type);
b75d8dc5 32int cpu_eth_init(struct bd_info *bis);
89973f8a
BW
33
34/* Driver initialization prototypes */
b75d8dc5
MY
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);
b1c0eaac 38int cs8900_initialize(u8 dev_num, int base_addr);
b75d8dc5 39int dc21x4x_initialize(struct bd_info *bis);
92a190aa 40int designware_initialize(ulong base_addr, u32 interface);
b75d8dc5 41int dm9000_initialize(struct bd_info *bis);
62cbc408 42int dnet_eth_initialize(int id, void *regs, unsigned int phy_addr);
b75d8dc5
MY
43int e1000_initialize(struct bd_info *bis);
44int eepro100_initialize(struct bd_info *bis);
594d57d0 45int ep93xx_eth_initialize(u8 dev_num, int base_addr);
b75d8dc5 46int eth_3com_initialize (struct bd_info * bis);
bd6ce9d1 47int ethoc_initialize(u8 dev_num, int base_addr);
b75d8dc5
MY
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);
45a1693a 54int ks8851_mll_initialize(u8 dev_num, int base_addr);
b7ad4109 55int lan91c96_initialize(u8 dev_num, int base_addr);
b75d8dc5 56int lpc32xx_eth_initialize(struct bd_info *bis);
89973f8a 57int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);
b75d8dc5
MY
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);
d0201692 64int ne2k_register(void);
b75d8dc5
MY
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);
b8da46fd
PH
74int smc91111_initialize(u8 dev_num, phys_addr_t base_addr);
75int smc911x_initialize(u8 dev_num, phys_addr_t base_addr);
b75d8dc5 76int uli526x_initialize(struct bd_info *bis);
89973f8a
BW
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
b75d8dc5 82static inline int pci_eth_init(struct bd_info *bis)
89973f8a
BW
83{
84 int num = 0;
e3090534 85
10efa024
BW
86#ifdef CONFIG_PCI
87
88#ifdef CONFIG_EEPRO100
89 num += eepro100_initialize(bis);
90#endif
8ca0b3f9
BW
91#ifdef CONFIG_TULIP
92 num += dc21x4x_initialize(bis);
93#endif
ad3381cf
BW
94#ifdef CONFIG_E1000
95 num += e1000_initialize(bis);
96#endif
e3090534
BW
97#ifdef CONFIG_PCNET
98 num += pcnet_initialize(bis);
99#endif
b902b8dd
BW
100#ifdef CONFIG_NATSEMI
101 num += natsemi_initialize(bis);
102#endif
19403633
BW
103#ifdef CONFIG_NS8382X
104 num += ns8382x_initialize(bis);
105#endif
0b252f50
BW
106#if defined(CONFIG_RTL8139)
107 num += rtl8139_initialize(bis);
108#endif
02d69891
BW
109#if defined(CONFIG_RTL8169)
110 num += rtl8169_initialize(bis);
111#endif
b11f664f 112#if defined(CONFIG_ULI526X)
89973f8a
BW
113 num += uli526x_initialize(bis);
114#endif
10efa024
BW
115
116#endif /* CONFIG_PCI */
89973f8a
BW
117 return num;
118}
119
a57ef363 120struct mii_dev *fec_get_miibus(struct udevice *dev, ulong base_addr, int dev_id);
cb5761f7 121
fe428b90
TK
122#ifdef CONFIG_PHYLIB
123struct phy_device;
b75d8dc5 124int fec_probe(struct bd_info *bd, int dev_id, uint32_t base_addr,
fe428b90
TK
125 struct mii_dev *bus, struct phy_device *phydev);
126#else
2e5f4421
MV
127/*
128 * Allow FEC to fine-tune MII configuration on boards which require this.
129 */
f2c5564f 130struct eth_device;
2e5f4421 131int fecmxc_register_mii_postcall(struct eth_device *dev, int (*cb)(int));
fe428b90 132#endif
2e5f4421 133
89973f8a 134#endif /* _NETDEV_H_ */
This page took 0.643811 seconds and 4 git commands to generate.