uboot/include
Luigi 'Comio' Mantellini 4ba31ab33a Rewrite the miiphybb (Bit-banged MII bus driver) in order to support an arbitrary number of mii buses.
This feature is useful when your board uses different mii buses for different
phys and all (or a part) of these buses are implemented via bit-banging mode.

The driver requires that the following macros should be defined into the board
configuration file:

CONFIG_BITBANGMII       - Enable the miiphybb driver
CONFIG_BITBANGMII_MULTI - Enable the multi bus support

If the CONFIG_BITBANGMII_MULTI is not defined, the board's config file needs
to define at least the following macros:

MII_INIT      - Generic code to enable the MII bus (optional)
MDIO_DECLARE  - Declaration needed to access to the MDIO pin (optional)
MDIO_ACTIVE   - Activate the MDIO pin as out pin
MDIO_TRISTATE - Activate the MDIO pin as input/tristate pin
MDIO_READ     - Read the MDIO pin
MDIO(v)       - Write v on the MDIO pin
MDC_DECLARE   - Declaration needed to access to the MDC pin (optional)
MDC(v)        - Write v on the MDC pin

The previous macros make the driver compatible with the previous version
(that didn't support the multi-bus).

When the CONFIG_BITBANGMII_MULTI is also defined, the board code needs to fill
the bb_miiphy_buses[] array with a record for each required bus and declare
the bb_miiphy_buses_num variable with the number of mii buses.
The record (struct bb_miiphy_bus) has the following fields/callbacks (see
miiphy.h for details):

char name[]            - The symbolic name that must be equal to the MII bus
                         registered name
int (*init)()          - Initialization function called at startup time (just
                         before the Ethernet initialization)
int (*mdio_active)()   - Activate the MDIO pin as output
int (*mdio_tristate)() - Activate the MDIO pin as input/tristate pin
int (*set_mdio)()      - Write the MDIO pin
int (*get_mdio)()      - Read the MDIO pin
int (*set_mdc)()       - Write the MDC pin
int (*delay)()         - Delay function
void *priv             - Private data used by board specific code

The board code will look like:

struct bb_miiphy_bus bb_miiphy_buses[] = {
 { .name = miibus#1, .init = b1_init, .mdio_active = b1_mdio_active, ... },
 { .name = miibus#2, .init = b2_init, .mdio_active = b2_mdio_active, ... },
 ...
int bb_miiphy_buses_num = sizeof(bb_miiphy_buses) /
                          sizeof(bb_miiphy_buses[0]);

Signed-off-by: Luigi 'Comio' Mantellini <luigi.mantellini@idf-hit.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2009-10-10 23:16:53 -07:00
..
asm-arm arm/microblaze/nios/nios2/sh: Remove relocation fixups 2009-10-03 10:17:57 +02:00
asm-avr32 Add AVR32 LCD support 2009-07-26 13:12:02 +02:00
asm-blackfin Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-generic asm-generic: Consolidate errno.h to asm-generic/errno.h 2009-07-09 14:07:11 +02:00
asm-i386 Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-m68k Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-microblaze arm/microblaze/nios/nios2/sh: Remove relocation fixups 2009-10-03 10:17:57 +02:00
asm-mips Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
asm-nios arm/microblaze/nios/nios2/sh: Remove relocation fixups 2009-10-03 10:17:57 +02:00
asm-nios2 arm/microblaze/nios/nios2/sh: Remove relocation fixups 2009-10-03 10:17:57 +02:00
asm-ppc Merge branch 'reloc' 2009-10-09 00:03:18 +02:00
asm-sh arm/microblaze/nios/nios2/sh: Remove relocation fixups 2009-10-03 10:17:57 +02:00
asm-sparc asm-generic: Consolidate errno.h to asm-generic/errno.h 2009-07-09 14:07:11 +02:00
bedbug
configs Merge branch 'reloc' 2009-10-09 00:03:18 +02:00
cramfs
galileo
jffs2
linux Correct ffs/fls regression for PowerPC etc 2009-09-17 22:45:31 +02:00
lzma Refresh LZMA-lib to v4.65 2009-07-22 09:43:27 +02:00
mtd
pcmcia
u-boot tools: mkimage: Fixed build warnings 2009-09-10 22:58:47 +02:00
usb usb: fix CONFIG_SYS_MPC83xx_USB_ADDR not defined error 2009-07-09 21:33:14 +02:00
.gitignore
4xx_i2c.h ppc4xx: Cleanup some HW register names 2009-10-07 09:15:13 +02:00
74xx_7xx.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
405_dimm.h
405_mal.h Dual-license IBM code contributions 2009-08-09 23:15:33 +02:00
ACEX1K.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
MCD_dma.h
MCD_progCheck.h
MCD_tasksInit.h
SA-1100.h
_exports.h export SPI functions to standalone apps 2009-08-09 22:34:51 +02:00
addr_map.h
ahci.h Update Freescale copyrights to remove "All Rights Reserved" 2009-07-29 09:59:22 +02:00
ali512x.h Move ali512x.h 2009-03-20 22:39:13 +01:00
altera.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
ambapp.h
api_public.h API: Improve glue mid-layer of the API demo application. 2009-02-18 00:39:44 +01:00
arm925t.h
armcoremodule.h
at45.h at91: rename DATAFLASH_MMC_SELECT to CONFIG_DATAFLASH_MMC_SELECT 2009-04-04 20:42:19 +02:00
at91rm9200_i2c.h
at91rm9200_net.h
ata.h
atmel_lcdc.h
bcd.h Replace BCD2BIN and BIN2BCD macros with inline functions 2009-08-25 12:57:55 +02:00
bcm5221.h
bmp_layout.h
bus_vcxk.h new video driver for bus vcxk framebuffers 2009-07-26 13:17:21 +02:00
bzlib.h
circbuf.h
clps7111.h
command.h Make "usage" messages more helpful. 2009-06-12 20:45:48 +02:00
common.h tools: mkimage: Fixed build warnings 2009-09-10 22:58:47 +02:00
commproc.h 8xx, mgsuvd: rename board to a more generic name 2009-03-18 20:50:04 +01:00
compiler.h Move uninitialized_var() macro from ubi_uboot.h to compiler.h 2009-09-04 22:16:40 +02:00
config_cmd_all.h mflash: Initial mflash support 2009-04-03 23:47:06 +02:00
config_cmd_default.h include/config_cmd_default.h cleanup 2009-07-17 23:25:51 +02:00
crc.h
da9030.h
dataflash.h
ddr_spd.h fsl-ddr: add the DDR3 SPD infrastructure 2009-03-30 13:33:50 -05:00
div64.h Add a do_div() wrapper macro, lldiv(). 2009-01-24 00:23:09 +01:00
dm9000.h Add config option for disabling DM9000-SROM support. 2009-06-08 22:57:21 -07:00
dm9161.h
dp83848.h
ds1722.h Misc ds1722 fixups 2009-09-04 21:54:52 +02:00
ds4510.h Add support for Maxim's DS4510 I2C device 2009-01-24 01:47:50 +01:00
dtt.h
e500.h ppc/p4080: Determine various chip frequencies on CoreNet platforms 2009-09-24 12:05:29 -05:00
elf.h compiler.h: unify system ifdef cruft here 2009-07-19 21:41:46 +02:00
environment.h unify {CONFIG_,}ENV_IS_EMBEDDED 2009-08-25 12:57:54 +02:00
exports.h ppc: Remove reloc_off field from global_data structure 2009-10-03 10:17:57 +02:00
ext2fs.h
fat.h
fdc.h
fdt.h
fdt_support.h 83xx: Replace CONFIG_MPC83XX with CONFIG_MPC83xx 2009-06-12 20:47:17 +02:00
fis.h
flash.h Support up to 7 banks for ids as specified in JEDEC JEP106Z 2009-08-26 08:58:27 +02:00
fpga.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
fsl_esdhc.h fsl_esdhc: Add device tree fixups 2009-07-16 22:24:06 +02:00
fsl_nfc.h MX31: Add NAND SPL for i.MX31. 2009-06-21 16:18:12 +02:00
hush.h
hwconfig.h Add simple hwconfig infrastructure 2009-07-16 22:23:53 +02:00
i2c.h powerpc: updates for the keymile boards 2009-07-21 00:06:11 +02:00
i8042.h
ide.h mucmc52, uc101: delete ata@3a00 node, if no CF card is detected 2009-09-25 01:22:13 +02:00
image.h mkimage: Add Kirkwood Boot Image support (kwbimage) 2009-09-10 22:58:48 +02:00
iomux.h stdio/device: rework function naming convention 2009-07-18 00:27:46 +02:00
ioports.h
keyboard.h
kgdb.h
lcd.h lcd.h: define extern vidinfo_t for all cases 2009-07-26 13:16:50 +02:00
lcdvideo.h
lh7a40x.h
lh7a400.h
lh7a404.h
libata.h
libfdt.h libfdt: Fix C++ compile-time cast error on gnu 4.2.1 2009-04-01 19:30:27 -04:00
libfdt_env.h compiler.h: unify system ifdef cruft here 2009-07-19 21:41:46 +02:00
linux_logo.h
lmb.h
logbuff.h
lpd7a400_cpld.h
lxt971a.h
lynxkdi.h
malloc.h Consolidate arch-specific mem_malloc_init() implementations 2009-09-04 21:47:07 +02:00
mb862xx.h video: mb862xx: use macros instead of magic numbers 2009-07-17 15:23:40 +02:00
mg_disk.h mflash: Initial mflash support 2009-04-03 23:47:06 +02:00
mii_phy.h
miiphy.h Rewrite the miiphybb (Bit-banged MII bus driver) in order to support an arbitrary number of mii buses. 2009-10-10 23:16:53 -07:00
mk48t59.h
mmc.h include/mmc.h: Fix typo in IS_SD() macro 2009-08-23 22:11:30 +02:00
mpc5xx.h
mpc5xxx.h mpc52xx: Add SPI driver. 2009-06-14 23:01:38 +02:00
mpc5xxx_sdma.h
mpc8xx.h
mpc8xx_irq.h
mpc83xx.h mpc83xx: add missing CSCONFIG_ODT_WR_CFG for 832x CPUs 2009-08-21 17:10:35 -05:00
mpc85xx.h
mpc86xx.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
mpc106.h
mpc824x.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
mpc8220.h
mpc8260.h
mpc8260_irq.h
nand.h Remove legacy NAND and disk on chip code. 2009-07-16 19:07:47 -05:00
net.h net: add random_port() prototype 2009-10-04 22:25:20 -07:00
netdev.h Convert SMC91111 Ethernet driver to CONFIG_NET_MULTI API 2009-10-04 22:37:03 -07:00
nios-io.h
nios.h
nios2-epcs.h
nios2-io.h
nios2.h
nomadik.h Added nomadik.h header 2009-02-22 13:39:27 +01:00
ns7520_eth.h
ns9750_bbus.h
ns9750_eth.h
ns9750_mem.h
ns9750_ser.h
ns9750_sys.h
ns16550.h include/ns16550.h: Unify structure declaration for registers 2009-04-04 01:23:56 +02:00
ns87308.h
onenand_uboot.h Compile warning fix in onenand_uboot.h 2009-02-02 20:42:15 +01:00
part.h mflash: Initial mflash support 2009-04-03 23:47:06 +02:00
pc_keyb.h
pca953x.h
pci.h pci/fsl_pci_init: Use PCIe capability to determine if controller is PCIe 2009-08-28 17:12:36 -05:00
pci_ids.h Add Intel E1000 PCIE card support 2009-08-08 02:26:05 -07:00
pcmcia.h
post.h Conditionally perform common relocation fixups 2009-10-03 10:17:57 +02:00
ppc4xx.h ppc4xx: respect 80-chars per line in ppc*.h files 2009-10-07 09:15:30 +02:00
ppc4xx_enet.h ppc4xx: respect 80-chars per line in ppc*.h files 2009-10-07 09:15:30 +02:00
ppc405.h ppc4xx: respect 80-chars per line in ppc*.h files 2009-10-07 09:15:30 +02:00
ppc440.h ppc4xx: respect 80-chars per line in ppc*.h files 2009-10-07 09:15:30 +02:00
ppc_asm.tmpl
ppc_defs.h
ps2mult.h Rename common ns16550 constants with UART_ prefix to prevent conflicts 2009-04-03 22:34:07 +02:00
radeon.h
reiserfs.h
rtc.h Switch from per-driver to common definition of bin2bcd and bcd2bin 2009-08-25 12:57:55 +02:00
s3c24x0.h include/s3c24x0.h: fix S3C24X0_SPI_CHANNEL declaration 2009-08-25 12:22:38 +02:00
s3c64x0.h
s3c2400.h
s3c2410.h
s3c6400.h s3c64xx: remove unnecessary definition 2009-04-24 22:54:18 +02:00
s6e63d6.h A driver for the S6E63D6 SPI display controller from Samsung 2009-02-24 10:00:28 +01:00
s_record.h
sata.h SATA: do not auto-initialize during boot 2009-01-27 23:42:39 +01:00
scsi.h
sed156x.h
sed13806.h
serial.h stdio/device: rework function naming convention 2009-07-18 00:27:46 +02:00
sha1.h
sha256.h
sm501.h
smiLynxEM.h
spartan2.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
spartan3.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
spd.h
spd_sdram.h
spi.h
spi_flash.h
status_led.h ARM Add blue colour LED to status_led. 2009-06-12 20:39:49 +02:00
stdio_dev.h console: unify printing current devices 2009-07-19 01:02:46 +02:00
stratixII.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
sym53c8xx.h
systemace.h
timestamp.h
tsec.h tsec: Add support for BCM5482S PHY 2009-06-15 00:13:54 -07:00
tsi108.h
tsi148.h Add support for the Tundra TSI148 VME-bridge 2009-07-19 11:21:08 +02:00
twl4030.h OMAP3 Move twl4030 mmc function 2009-07-29 09:57:43 +02:00
tws.h drivers/twserial: Add protocol driver for "three wire serial" interface. 2009-03-30 09:38:36 +02:00
ubi_uboot.h Move uninitialized_var() macro from ubi_uboot.h to compiler.h 2009-09-04 22:16:40 +02:00
universe.h
usb.h usb : musb : Enabling DM6446 (TI DaVinci) USB module power 2009-01-28 19:57:30 +01:00
usb_cdc_acm.h
usb_defs.h Prepare USB layer for ehci 2009-01-28 19:57:27 +01:00
usbdescriptors.h
usbdevice.h drivers/usb: regorganisation 2009-04-06 20:40:46 +02:00
version.h
vfd_logo.h
video.h
video_ad7176.h
video_ad7177.h
video_ad7179.h
video_easylogo.h
video_fb.h
video_font.h
video_logo.h
virtex2.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
vsc7385.h
vxworks.h
w83c553f.h
watchdog.h
xilinx.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
xyzModem.h