diff options
| author | Anatolij Gustschin <agust@denx.de> | 2011-12-07 06:05:55 +0000 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2011-12-12 08:17:05 +0100 | 
| commit | 02ab0970b3ae7b2d535a1231ad259e3114d09772 (patch) | |
| tree | 7917eae245a8871c19e8af7367f57239e5215ce0 /board/intercontrol/digsy_mtc/digsy_mtc.c | |
| parent | b2eb7d9bc6032e16b7dd898f7c0ea654f63b61db (diff) | |
| download | olio-uboot-2014.01-02ab0970b3ae7b2d535a1231ad259e3114d09772.tar.xz olio-uboot-2014.01-02ab0970b3ae7b2d535a1231ad259e3114d09772.zip | |
mpc5200: digsy_mtc: Fix extension board detection
Switch to extension board detection using pci_find_device()
instead of detecting by i2c access to EEPROM device on
extension board.
This is a cleaner detection method since EEPROM addresses
can be different on different board revisions. This also
avoids "i2c_read: failed to address chip" error messages
in the boot log on boards without extension board which
may confuse users.
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Diffstat (limited to 'board/intercontrol/digsy_mtc/digsy_mtc.c')
| -rw-r--r-- | board/intercontrol/digsy_mtc/digsy_mtc.c | 15 | 
1 files changed, 8 insertions, 7 deletions
| diff --git a/board/intercontrol/digsy_mtc/digsy_mtc.c b/board/intercontrol/digsy_mtc/digsy_mtc.c index 4d6b33d9a..4aa56b22e 100644 --- a/board/intercontrol/digsy_mtc/digsy_mtc.c +++ b/board/intercontrol/digsy_mtc/digsy_mtc.c @@ -49,6 +49,7 @@  #include <libfdt.h>  #include <fdt_support.h>  #include <i2c.h> +#include <mb862xx.h>  DECLARE_GLOBAL_DATA_PTR; @@ -226,11 +227,6 @@ static void exbo_hw_init(void)  	struct mpc5xxx_gpio *gpio = (struct mpc5xxx_gpio *)MPC5XXX_GPIO;  	struct mpc5xxx_wu_gpio *wu_gpio =  				(struct mpc5xxx_wu_gpio *)MPC5XXX_WU_GPIO; -	unsigned char val; - -	/* 1st, check if extension board is present */ -	if (i2c_read(CONFIG_SYS_EXBO_EE_I2C_ADDRESS, 0, 1, &val, 1)) -		return;  	/* configure IrDA pins (PSC6 port) as gpios */  	gpio->port_config &= 0xFF8FFFFF; @@ -285,8 +281,6 @@ int board_early_init_r(void)  	/* enable CS0 */  	setbits_be32((void *)MPC5XXX_ADDECR, (1 << 16)); -	exbo_hw_init(); -  #if defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT)  	/* Low level USB init, required for proper kernel operation */  	usb_cpu_init(); @@ -326,8 +320,15 @@ void board_get_enetaddr (uchar * enet)  int misc_init_r(void)  { +	pci_dev_t devbusfn;  	uchar enetaddr[6]; +	/* check if graphic extension board is present */ +	devbusfn = pci_find_device(PCI_VENDOR_ID_FUJITSU, +				   PCI_DEVICE_ID_CORAL_PA, 0); +	if (devbusfn != -1) +		exbo_hw_init(); +  	if (!eth_getenv_enetaddr("ethaddr", enetaddr)) {  		board_get_enetaddr(enetaddr);  		eth_setenv_enetaddr("ethaddr", enetaddr); |