aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-u300/core.c
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@stericsson.com>2009-08-14 10:59:05 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-08-15 15:36:29 +0100
commitc7c8c78fdf6e9bd65d8ee879115dc2cd5d9fd0dc (patch)
tree91f59159fed1c22277c72e2529317561778657b9 /arch/arm/mach-u300/core.c
parentdf1e0520f9434b5b771c854a13dd928727d8673a (diff)
downloadkernel_samsung_smdk4412-c7c8c78fdf6e9bd65d8ee879115dc2cd5d9fd0dc.zip
kernel_samsung_smdk4412-c7c8c78fdf6e9bd65d8ee879115dc2cd5d9fd0dc.tar.gz
kernel_samsung_smdk4412-c7c8c78fdf6e9bd65d8ee879115dc2cd5d9fd0dc.tar.bz2
ARM: 5667/3: U300 SSP/SPI board setup and test
This adds a U300 board configuration for the PL022 SSP/SPI PrimeCell driver recently merged to the 2.6.31-rc series. Further it adds a dummy loopback SPI chip that can be used for testing the SPI functionality on a running system using the loopback mode of PL022. Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-u300/core.c')
-rw-r--r--arch/arm/mach-u300/core.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-u300/core.c b/arch/arm/mach-u300/core.c
index 89b3ccf..38d08a1 100644
--- a/arch/arm/mach-u300/core.c
+++ b/arch/arm/mach-u300/core.c
@@ -32,6 +32,7 @@
#include "clock.h"
#include "mmc.h"
+#include "spi.h"
/*
* Static I/O mappings that are needed for booting the U300 platforms. The
@@ -611,6 +612,8 @@ void __init u300_init_devices(void)
/* Wait for the PLL208 to lock if not locked in yet */
while (!(readw(U300_SYSCON_VBASE + U300_SYSCON_CSR) &
U300_SYSCON_CSR_PLL208_LOCK_IND));
+ /* Initialize SPI device with some board specifics */
+ u300_spi_init(&pl022_device);
/* Register the AMBA devices in the AMBA bus abstraction layer */
u300_clock_primecells();
@@ -622,6 +625,9 @@ void __init u300_init_devices(void)
u300_assign_physmem();
+ /* Register subdevices on the SPI bus */
+ u300_spi_register_board_devices();
+
/* Register the platform devices */
platform_add_devices(platform_devs, ARRAY_SIZE(platform_devs));