uboot/include/netdev.h
<<
>>
Prefs
   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/*
  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 */
  27int at91emac_register(bd_t *bis, unsigned long iobase);
  28int ax88180_initialize(bd_t *bis);
  29int bcm_sf2_eth_register(bd_t *bis, u8 dev_num);
  30int bfin_EMAC_initialize(bd_t *bis);
  31int calxedaxgmac_initialize(u32 id, ulong base_addr);
  32int cs8900_initialize(u8 dev_num, int base_addr);
  33int davinci_emac_initialize(void);
  34int dc21x4x_initialize(bd_t *bis);
  35int designware_initialize(ulong base_addr, u32 interface);
  36int dm9000_initialize(bd_t *bis);
  37int dnet_eth_initialize(int id, void *regs, unsigned int phy_addr);
  38int e1000_initialize(bd_t *bis);
  39int eepro100_initialize(bd_t *bis);
  40int ep93xx_eth_initialize(u8 dev_num, int base_addr);
  41int eth_3com_initialize (bd_t * bis);
  42int ethoc_initialize(u8 dev_num, int base_addr);
  43int fec_initialize (bd_t *bis);
  44int fecmxc_initialize(bd_t *bis);
  45int fecmxc_initialize_multi(bd_t *bis, int dev_id, int phy_id, uint32_t addr);
  46int ftmac100_initialize(bd_t *bits);
  47int ftmac110_initialize(bd_t *bits);
  48void gt6426x_eth_initialize(bd_t *bis);
  49int ks8851_mll_initialize(u8 dev_num, int base_addr);
  50int lan91c96_initialize(u8 dev_num, int base_addr);
  51int lpc32xx_eth_initialize(bd_t *bis);
  52int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);
  53int mcdmafec_initialize(bd_t *bis);
  54int mcffec_initialize(bd_t *bis);
  55int mvgbe_initialize(bd_t *bis);
  56int mvneta_initialize(bd_t *bis, int base_addr, int devnum, int phy_addr);
  57int natsemi_initialize(bd_t *bis);
  58int ne2k_register(void);
  59int npe_initialize(bd_t *bis);
  60int ns8382x_initialize(bd_t *bis);
  61int pcnet_initialize(bd_t *bis);
  62int ppc_4xx_eth_initialize (bd_t *bis);
  63int rtl8139_initialize(bd_t *bis);
  64int rtl8169_initialize(bd_t *bis);
  65int scc_initialize(bd_t *bis);
  66int sh_eth_initialize(bd_t *bis);
  67int skge_initialize(bd_t *bis);
  68int smc91111_initialize(u8 dev_num, int base_addr);
  69int smc911x_initialize(u8 dev_num, int base_addr);
  70int uec_standard_init(bd_t *bis);
  71int uli526x_initialize(bd_t *bis);
  72int armada100_fec_register(unsigned long base_addr);
  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;
  81
  82#ifdef CONFIG_PCI
  83
  84#ifdef CONFIG_EEPRO100
  85        num += eepro100_initialize(bis);
  86#endif
  87#ifdef CONFIG_TULIP
  88        num += dc21x4x_initialize(bis);
  89#endif
  90#ifdef CONFIG_E1000
  91        num += e1000_initialize(bis);
  92#endif
  93#ifdef CONFIG_PCNET
  94        num += pcnet_initialize(bis);
  95#endif
  96#ifdef CONFIG_NATSEMI
  97        num += natsemi_initialize(bis);
  98#endif
  99#ifdef CONFIG_NS8382X
 100        num += ns8382x_initialize(bis);
 101#endif
 102#if defined(CONFIG_RTL8139)
 103        num += rtl8139_initialize(bis);
 104#endif
 105#if defined(CONFIG_RTL8169)
 106        num += rtl8169_initialize(bis);
 107#endif
 108#if defined(CONFIG_ULI526X)
 109        num += uli526x_initialize(bis);
 110#endif
 111
 112#endif  /* CONFIG_PCI */
 113        return num;
 114}
 115
 116struct mii_dev *fec_get_miibus(ulong base_addr, int dev_id);
 117
 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
 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));
 127#endif
 128
 129#endif /* _NETDEV_H_ */
 130