ARM: shmobile: marzen: add HSPI support
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 11 Oct 2012 02:57:02 +0000 (19:57 -0700)
committerSimon Horman <horms@verge.net.au>
Tue, 30 Oct 2012 07:25:51 +0000 (15:25 +0800)
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
arch/arm/configs/marzen_defconfig
arch/arm/mach-shmobile/board-marzen.c

index 53382b6c8bb43345ae75b8f1ea39ab509d161980..5b8215f424c5a72e283fb979b5d4828f1d386738 100644 (file)
@@ -69,6 +69,10 @@ CONFIG_SERIAL_SH_SCI=y
 CONFIG_SERIAL_SH_SCI_NR_UARTS=6
 CONFIG_SERIAL_SH_SCI_CONSOLE=y
 # CONFIG_HW_RANDOM is not set
+CONFIG_I2C=y
+CONFIG_I2C_RCAR=y
+CONFIG_SPI=y
+CONFIG_SPI_SH_HSPI=y
 CONFIG_GPIO_SYSFS=y
 # CONFIG_HWMON is not set
 CONFIG_THERMAL=y
index b8a7525a4e2f17a9b4a7ded338fbe22b3b04f3fc..69f7f464eff84bb4446e76500e627d5e03e12d78 100644 (file)
@@ -30,6 +30,8 @@
 #include <linux/regulator/fixed.h>
 #include <linux/regulator/machine.h>
 #include <linux/smsc911x.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/sh_hspi.h>
 #include <linux/mmc/sh_mobile_sdhi.h>
 #include <linux/mfd/tmio.h>
 #include <mach/hardware.h>
@@ -126,10 +128,27 @@ static struct platform_device thermal_device = {
        .num_resources  = ARRAY_SIZE(thermal_resources),
 };
 
+/* HSPI */
+static struct resource hspi_resources[] = {
+       [0] = {
+               .start          = 0xFFFC7000,
+               .end            = 0xFFFC7018 - 1,
+               .flags          = IORESOURCE_MEM,
+       },
+};
+
+static struct platform_device hspi_device = {
+       .name   = "sh-hspi",
+       .id     = 0,
+       .resource       = hspi_resources,
+       .num_resources  = ARRAY_SIZE(hspi_resources),
+};
+
 static struct platform_device *marzen_devices[] __initdata = {
        &eth_device,
        &sdhi0_device,
        &thermal_device,
+       &hspi_device,
 };
 
 static void __init marzen_init(void)
@@ -163,6 +182,12 @@ static void __init marzen_init(void)
        gpio_request(GPIO_FN_SD0_CD, NULL);
        gpio_request(GPIO_FN_SD0_WP, NULL);
 
+       /* HSPI 0 */
+       gpio_request(GPIO_FN_HSPI_CLK0, NULL);
+       gpio_request(GPIO_FN_HSPI_CS0,  NULL);
+       gpio_request(GPIO_FN_HSPI_TX0,  NULL);
+       gpio_request(GPIO_FN_HSPI_RX0,  NULL);
+
        r8a7779_add_standard_devices();
        platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices));
 }