summaryrefslogtreecommitdiff
path: root/arch/blackfin/mach-bf533/boards/stamp.c
diff options
context:
space:
mode:
authorMike Frysinger <michael.frysinger@analog.com>2007-05-21 18:09:25 +0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-21 09:50:22 -0700
commitc0fc525dcc407a516132fc11af82375319ebdadb (patch)
tree780ce2b81784bbb8b1aa6cd3dca6dfb23938458c /arch/blackfin/mach-bf533/boards/stamp.c
parent95e493c00ac0d2371c3f627fdb99d776d29a8166 (diff)
downloadlwn-c0fc525dcc407a516132fc11af82375319ebdadb.tar.gz
lwn-c0fc525dcc407a516132fc11af82375319ebdadb.zip
Blackfin arch: move board specific setup out of common init code and into the board specific init code
Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/blackfin/mach-bf533/boards/stamp.c')
-rw-r--r--arch/blackfin/mach-bf533/boards/stamp.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c
index 7d3dfcbc54aa..9a472fe15833 100644
--- a/arch/blackfin/mach-bf533/boards/stamp.c
+++ b/arch/blackfin/mach-bf533/boards/stamp.c
@@ -338,12 +338,25 @@ static struct platform_device *stamp_devices[] __initdata = {
static int __init stamp_init(void)
{
+ int ret;
+
printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__);
- platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
+ ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
+ if (ret < 0)
+ return ret;
+
+#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
+# if defined(CONFIG_BFIN_SHARED_FLASH_ENET)
+ /* setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC */
+ bfin_write_FIO_DIR(bfin_read_FIO_DIR() | (1 << CONFIG_ENET_FLASH_PIN));
+ bfin_write_FIO_FLAG_S(1 << CONFIG_ENET_FLASH_PIN);
+ SSYNC();
+# endif
+#endif
+
#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
- spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
+ return spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
#endif
- return 0;
}
arch_initcall(stamp_init);