diff options
author | Heiko Schocher <hs@denx.de> | 2008-11-21 08:29:40 +0100 |
---|---|---|
committer | Kim Phillips <kim.phillips@freescale.com> | 2008-11-24 18:41:34 -0600 |
commit | 9482a8e3d6ac766d90e5059dce777b1e4c868a30 (patch) | |
tree | cf56b880b353feae0765d987112070c75c30ea33 /board/keymile/common | |
parent | fed36ac5ae613773b6cd90e61e292c45440e10c8 (diff) | |
download | u-boot-imx-9482a8e3d6ac766d90e5059dce777b1e4c868a30.zip u-boot-imx-9482a8e3d6ac766d90e5059dce777b1e4c868a30.tar.gz u-boot-imx-9482a8e3d6ac766d90e5059dce777b1e4c868a30.tar.bz2 |
powerpc: keymile: Add a check for the PIGGY debug board
Check the presence of the PIGGY on the keymile boards mgcoge,
mgsuvd and kmeter1. If the PIGGY is not present, dont register
this Ethernet device.
Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Diffstat (limited to 'board/keymile/common')
-rw-r--r-- | board/keymile/common/common.c | 23 | ||||
-rw-r--r-- | board/keymile/common/common.h | 20 |
2 files changed, 41 insertions, 2 deletions
diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c index a4cf24c..1338950 100644 --- a/board/keymile/common/common.c +++ b/board/keymile/common/common.c @@ -22,10 +22,14 @@ */ #include <common.h> +#if defined(CONFIG_MGCOGE) #include <mpc8260.h> +#endif #include <ioports.h> #include <malloc.h> #include <hush.h> +#include <net.h> +#include <asm/io.h> #if defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT) #include <libfdt.h> @@ -33,8 +37,6 @@ #if defined(CONFIG_HARD_I2C) || defined(CONFIG_SOFT_I2C) #include <i2c.h> -#endif -#include <asm/io.h> extern int i2c_soft_read_pin (void); @@ -495,6 +497,7 @@ void i2c_init_board(void) #endif } #endif +#endif #if defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT) int fdt_set_node_and_value (void *blob, @@ -521,3 +524,19 @@ int fdt_set_node_and_value (void *blob, return ret; } #endif + +int ethernet_present (void) +{ + return (in_8((u8 *)CONFIG_SYS_PIGGY_BASE + CONFIG_SYS_SLOT_ID_OFF) & 0x80); +} + +int board_eth_init (bd_t *bis) +{ +#ifdef CONFIG_KEYMILE_HDLC_ENET + (void)keymile_hdlc_enet_initialize (bis); +#endif + if (ethernet_present ()) { + return -1; + } + return 0; +} diff --git a/board/keymile/common/common.h b/board/keymile/common/common.h new file mode 100644 index 0000000..d3d6814 --- /dev/null +++ b/board/keymile/common/common.h @@ -0,0 +1,20 @@ +/* + * (C) Copyright 2008 + * Heiko Schocher, DENX Software Engineering, hs@denx.de. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __KEYMILE_COMMON_H +#define __KEYMILE_COMMON_H + +int ethernet_present (void); +int ivm_read_eeprom (void); + +#ifdef CONFIG_KEYMILE_HDLC_ENET +int keymile_hdlc_enet_initialize (bd_t *bis); +#endif +#endif /* __KEYMILE_COMMON_H */ |