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>
This commit is contained in:
Anatolij Gustschin 2011-12-07 06:05:55 +00:00 committed by Wolfgang Denk
parent b2eb7d9bc6
commit 02ab0970b3
2 changed files with 8 additions and 14 deletions

View File

@ -49,6 +49,7 @@
#include <libfdt.h> #include <libfdt.h>
#include <fdt_support.h> #include <fdt_support.h>
#include <i2c.h> #include <i2c.h>
#include <mb862xx.h>
DECLARE_GLOBAL_DATA_PTR; 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_gpio *gpio = (struct mpc5xxx_gpio *)MPC5XXX_GPIO;
struct mpc5xxx_wu_gpio *wu_gpio = struct mpc5xxx_wu_gpio *wu_gpio =
(struct mpc5xxx_wu_gpio *)MPC5XXX_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 */ /* configure IrDA pins (PSC6 port) as gpios */
gpio->port_config &= 0xFF8FFFFF; gpio->port_config &= 0xFF8FFFFF;
@ -285,8 +281,6 @@ int board_early_init_r(void)
/* enable CS0 */ /* enable CS0 */
setbits_be32((void *)MPC5XXX_ADDECR, (1 << 16)); setbits_be32((void *)MPC5XXX_ADDECR, (1 << 16));
exbo_hw_init();
#if defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT) #if defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT)
/* Low level USB init, required for proper kernel operation */ /* Low level USB init, required for proper kernel operation */
usb_cpu_init(); usb_cpu_init();
@ -326,8 +320,15 @@ void board_get_enetaddr (uchar * enet)
int misc_init_r(void) int misc_init_r(void)
{ {
pci_dev_t devbusfn;
uchar enetaddr[6]; 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)) { if (!eth_getenv_enetaddr("ethaddr", enetaddr)) {
board_get_enetaddr(enetaddr); board_get_enetaddr(enetaddr);
eth_setenv_enetaddr("ethaddr", enetaddr); eth_setenv_enetaddr("ethaddr", enetaddr);

View File

@ -289,13 +289,6 @@
#define CONFIG_SYS_DS1339_TCR_VAL 0xAB /* diode + 4k resistor */ #define CONFIG_SYS_DS1339_TCR_VAL 0xAB /* diode + 4k resistor */
#endif #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 * Flash configuration
*/ */