u-boot/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 Big white-space cleanup. 2008-05-21 00:14:08 +02:00
configs Merge branch 'reloc' 2009-10-09 00:03:18 +02:00
cramfs Fix endianess problem in cramfs code (cramfs is always host-endian in Linux) 2008-03-03 22:08:08 +01:00
galileo rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
jffs2 jffs2: summary support 2008-12-09 23:39:59 +01:00
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 UBI: Add basic UBI support to U-Boot (Part 7/8) 2008-11-19 20:34:39 +01:00
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 Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
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
_exports.h export SPI functions to standalone apps 2009-08-09 22:34:51 +02:00
ACEX1K.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
addr_map.h Introduce addr_map library 2008-12-15 22:05:36 +01:00
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 Coding Style cleanup; update CHANGELOG 2008-04-13 09:59:26 -07:00
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 Big white-space cleanup. 2008-05-21 00:14:08 +02:00
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 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
atmel_lcdc.h Add ATMEL LCD driver 2008-05-10 11:44:55 +02:00
bcd.h Replace BCD2BIN and BIN2BCD macros with inline functions 2009-08-25 12:57:55 +02:00
bcm5221.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
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 Big white-space cleanup. 2008-05-21 00:14:08 +02:00
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 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
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 Big white-space cleanup. 2008-05-21 00:14:08 +02:00
dp83848.h [ARM] TI DaVinci support, hopefully final 2007-08-10 20:26:18 +02:00
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 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
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 Remove non-ascii characters from fat code 2008-12-04 20:51:44 +01:00
fdc.h
fdt.h powerpc: Fix bootm to boot up again with a Ramdisk 2008-09-13 02:03:38 +02:00
fdt_support.h 83xx: Replace CONFIG_MPC83XX with CONFIG_MPC83xx 2009-06-12 20:47:17 +02:00
fis.h ata: add the fis struct for SATA 2008-03-26 23:38:54 +01:00
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 hush: add showvar command for hush shell. 2008-10-18 21:54:02 +02:00
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 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
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 Stop using immap_t for cpm offset on 85xx 2007-12-11 22:34:19 -06:00
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 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
lh7a400.h
lh7a404.h
libata.h ata: update the libata.h from ata.h of linux kernel 2008-04-13 23:20:16 -07:00
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 Fix LMB type issues 2008-07-10 00:39:28 +02:00
logbuff.h Avoid initrd and logbuffer area overlaps 2008-06-03 19:34:19 +02:00
lpd7a400_cpld.h
lxt971a.h Remove duplicate definitions in include/lxt971a.h. 2008-07-06 23:44:34 -07:00
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
MCD_dma.h ColdFire: Add MCF547x_8x dma code and header files 2008-01-17 14:59:42 -06:00
MCD_progCheck.h ColdFire: Add MCF547x_8x dma code and header files 2008-01-17 14:59:42 -06:00
MCD_tasksInit.h ColdFire: Add MCF547x_8x dma code and header files 2008-01-17 14:59:42 -06: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 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mmc.h include/mmc.h: Fix typo in IS_SD() macro 2009-08-23 22:11:30 +02:00
mpc5xx.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc5xxx.h mpc52xx: Add SPI driver. 2009-06-14 23:01:38 +02:00
mpc5xxx_sdma.h Move MPC5xxx_FEC driver to drivers/net 2008-08-29 13:58:07 -06:00
mpc8xx.h Coding stylke cleanup; rebuild CHANGELOG 2007-06-22 23:59:00 +02:00
mpc8xx_irq.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc83xx.h mpc83xx: add missing CSCONFIG_ODT_WR_CFG for 832x CPUs 2009-08-21 17:10:35 -05:00
mpc85xx.h 83xx/85xx: further localbus cleanups 2008-06-10 18:22:25 -05:00
mpc86xx.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
mpc106.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc824x.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
mpc8220.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc8260.h Coding stylke cleanup; rebuild CHANGELOG 2007-06-22 23:59:00 +02:00
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 Big white-space cleanup. 2008-05-21 00:14:08 +02:00
nios2-io.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
nios2.h
nomadik.h Added nomadik.h header 2009-02-22 13:39:27 +01:00
ns7520_eth.h Remove duplicate definitions in include/lxt971a.h. 2008-07-06 23:44:34 -07:00
ns9750_bbus.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns9750_eth.h Remove duplicate definitions in include/lxt971a.h. 2008-07-06 23:44:34 -07:00
ns9750_mem.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns9750_ser.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns9750_sys.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns16550.h include/ns16550.h: Unify structure declaration for registers 2009-04-04 01:23:56 +02:00
ns87308.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
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 Big white-space cleanup. 2008-05-21 00:14:08 +02:00
pca953x.h Add support for PCA953x I2C gpio devices 2008-12-19 18:11:49 -06:00
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 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
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 e500 needs ppc_asm.tmp MCK_EXCEPTION 2007-08-14 01:21:22 -05:00
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 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
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 ARM: Add arm1176 core with S3C6400 SoC 2008-08-31 00:39:46 +02:00
s3c2400.h
s3c2410.h Fix compiler warning in include/s3c2410.h 2007-08-29 02:05:53 +02:00
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 Big white-space cleanup. 2008-05-21 00:14:08 +02:00
SA-1100.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
sata.h SATA: do not auto-initialize during boot 2009-01-27 23:42:39 +01:00
scsi.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
sed156x.h
sed13806.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
serial.h stdio/device: rework function naming convention 2009-07-18 00:27:46 +02:00
sha1.h Add support for calculating hashes with watchdog triggering 2008-04-25 00:01:06 +02:00
sha256.h include/sha256.h: fix file permissions. 2008-07-06 01:21:46 +02:00
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 Move conditional compilation of MPC8XXX SPI driver to Makefile 2008-07-01 21:02:11 +02:00
spi_flash.h SPI Flash subsystem 2008-06-03 20:31:34 +02:00
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 Big white-space cleanup. 2008-05-21 00:14:08 +02:00
systemace.h
timestamp.h Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
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 Makefile: fix "error: version_autogenerated.h: No such file or directory" 2008-05-13 23:15:52 +02:00
vfd_logo.h
video.h
video_ad7176.h
video_ad7177.h
video_ad7179.h
video_easylogo.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
video_fb.h
video_font.h
video_logo.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
virtex2.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
vsc7385.h Cleanup coding style, update CHANGELOG 2008-03-26 11:48:46 +01:00
vxworks.h vxworks.h: Fix build problem introduced by commits 29a4c24d/e9084b23 2008-12-09 00:24:30 +01:00
w83c553f.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
watchdog.h
xilinx.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
xyzModem.h