1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28#ifndef _NETDEV_H_
29#define _NETDEV_H_
30
31
32
33
34
35
36
37
38
39
40int board_eth_init(bd_t *bis);
41int cpu_eth_init(bd_t *bis);
42
43
44int au1x00_enet_initialize(bd_t*);
45int bfin_EMAC_initialize(bd_t *bis);
46int cs8900_initialize(u8 dev_num, int base_addr);
47int dc21x4x_initialize(bd_t *bis);
48int davinci_emac_initialize(void);
49int dnet_eth_initialize(int id, void *regs, unsigned int phy_addr);
50int e1000_initialize(bd_t *bis);
51int eepro100_initialize(bd_t *bis);
52int eth_3com_initialize (bd_t * bis);
53int fec_initialize (bd_t *bis);
54int fecmxc_initialize (bd_t *bis);
55int ftmac100_initialize(bd_t *bits);
56int greth_initialize(bd_t *bis);
57void gt6426x_eth_initialize(bd_t *bis);
58int inca_switch_initialize(bd_t *bis);
59int kirkwood_egiga_initialize(bd_t *bis);
60int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);
61int mcdmafec_initialize(bd_t *bis);
62int mcffec_initialize(bd_t *bis);
63int mpc512x_fec_initialize(bd_t *bis);
64int mpc5xxx_fec_initialize(bd_t *bis);
65int mpc8220_fec_initialize(bd_t *bis);
66int mpc82xx_scc_enet_initialize(bd_t *bis);
67int natsemi_initialize(bd_t *bis);
68int npe_initialize(bd_t *bis);
69int ns8382x_initialize(bd_t *bis);
70int pcnet_initialize(bd_t *bis);
71int plb2800_eth_initialize(bd_t *bis);
72int ppc_4xx_eth_initialize (bd_t *bis);
73int rtl8139_initialize(bd_t *bis);
74int rtl8169_initialize(bd_t *bis);
75int scc_initialize(bd_t *bis);
76int skge_initialize(bd_t *bis);
77int smc911x_initialize(u8 dev_num, int base_addr);
78int smc91111_initialize(u8 dev_num, int base_addr);
79int tsi108_eth_initialize(bd_t *bis);
80int uec_initialize(int index);
81int uec_standard_init(bd_t *bis);
82int uli526x_initialize(bd_t *bis);
83int sh_eth_initialize(bd_t *bis);
84int dm9000_initialize(bd_t *bis);
85
86
87
88
89
90static inline int pci_eth_init(bd_t *bis)
91{
92 int num = 0;
93
94#ifdef CONFIG_PCI
95
96#ifdef CONFIG_EEPRO100
97 num += eepro100_initialize(bis);
98#endif
99#ifdef CONFIG_TULIP
100 num += dc21x4x_initialize(bis);
101#endif
102#ifdef CONFIG_E1000
103 num += e1000_initialize(bis);
104#endif
105#ifdef CONFIG_PCNET
106 num += pcnet_initialize(bis);
107#endif
108#ifdef CONFIG_NATSEMI
109 num += natsemi_initialize(bis);
110#endif
111#ifdef CONFIG_NS8382X
112 num += ns8382x_initialize(bis);
113#endif
114#if defined(CONFIG_RTL8139)
115 num += rtl8139_initialize(bis);
116#endif
117#if defined(CONFIG_RTL8169)
118 num += rtl8169_initialize(bis);
119#endif
120#if defined(CONFIG_ULI526X)
121 num += uli526x_initialize(bis);
122#endif
123
124#endif
125 return num;
126}
127
128
129
130
131
132
133#if defined(CONFIG_MV88E61XX_SWITCH)
134enum mv88e61xx_cfg_vlan {
135 MV88E61XX_VLANCFG_DEFAULT,
136 MV88E61XX_VLANCFG_ROUTER
137};
138
139enum mv88e61xx_cfg_mdip {
140 MV88E61XX_MDIP_NOCHANGE,
141 MV88E61XX_MDIP_REVERSE
142};
143
144enum mv88e61xx_cfg_ledinit {
145 MV88E61XX_LED_INIT_DIS,
146 MV88E61XX_LED_INIT_EN
147};
148
149enum mv88e61xx_cfg_rgmiid {
150 MV88E61XX_RGMII_DELAY_DIS,
151 MV88E61XX_RGMII_DELAY_EN
152};
153
154enum mv88e61xx_cfg_prtstt {
155 MV88E61XX_PORTSTT_DISABLED,
156 MV88E61XX_PORTSTT_BLOCKING,
157 MV88E61XX_PORTSTT_LEARNING,
158 MV88E61XX_PORTSTT_FORWARDING
159};
160
161struct mv88e61xx_config {
162 char *name;
163 enum mv88e61xx_cfg_vlan vlancfg;
164 enum mv88e61xx_cfg_rgmiid rgmii_delay;
165 enum mv88e61xx_cfg_prtstt portstate;
166 enum mv88e61xx_cfg_ledinit led_init;
167 enum mv88e61xx_cfg_mdip mdip;
168 u32 ports_enabled;
169 u8 cpuport;
170};
171
172int mv88e61xx_switch_initialize(struct mv88e61xx_config *swconfig);
173#endif
174
175#endif
176