From 02ab0970b3ae7b2d535a1231ad259e3114d09772 Mon Sep 17 00:00:00 2001 From: Anatolij Gustschin Date: Wed, 7 Dec 2011 06:05:55 +0000 Subject: [PATCH] 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 --- board/intercontrol/digsy_mtc/digsy_mtc.c | 15 ++++++++------- include/configs/digsy_mtc.h | 7 ------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/board/intercontrol/digsy_mtc/digsy_mtc.c b/board/intercontrol/digsy_mtc/digsy_mtc.c index 4d6b33d9aa..4aa56b22ef 100644 --- a/board/intercontrol/digsy_mtc/digsy_mtc.c +++ b/board/intercontrol/digsy_mtc/digsy_mtc.c @@ -49,6 +49,7 @@ #include #include #include +#include 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); diff --git a/include/configs/digsy_mtc.h b/include/configs/digsy_mtc.h index d0d1eda608..d5173349c4 100644 --- a/include/configs/digsy_mtc.h +++ b/include/configs/digsy_mtc.h @@ -289,13 +289,6 @@ #define CONFIG_SYS_DS1339_TCR_VAL 0xAB /* diode + 4k resistor */ #endif -/* ExBo I2C Addresses */ -#if defined(CONFIG_DIGSY_REV5) -#define CONFIG_SYS_EXBO_EE_I2C_ADDRESS 0x54 -#else -#define CONFIG_SYS_EXBO_EE_I2C_ADDRESS 0x56 -#endif - /* * Flash configuration */ -- 2.39.5