ARM: mx5/mx51_3ds: add eCSPI2 support on the imx51_3ds board
authorJason Wang <jason77.wang@gmail.com>
Thu, 2 Sep 2010 07:52:03 +0000 (15:52 +0800)
committerSascha Hauer <s.hauer@pengutronix.de>
Fri, 1 Oct 2010 07:32:20 +0000 (09:32 +0200)
Signed-off-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/mach-mx5/Kconfig
arch/arm/mach-mx5/board-mx51_3ds.c

index e57caefb1f282099e9ceaa2183af4e279b3300f3..2735314a78e00849c8040daebfddcf686bf77355 100644 (file)
@@ -18,6 +18,7 @@ config MACH_MX51_BABBAGE
 
 config MACH_MX51_3DS
        bool "Support MX51PDK (3DS)"
+       select IMX_HAVE_PLATFORM_SPI_IMX
        select MXC_DEBUG_BOARD
        help
          Include support for MX51PDK (3DS) platform. This includes specific
index f95c2fd94667c25ee97a5be10c95782d26cb5095..c9c41282c996b0d402d08a77238512fd22b03f86 100644 (file)
 #include <mach/imx-uart.h>
 #include <mach/3ds_debugboard.h>
 
+#include "devices-imx51.h"
 #include "devices.h"
 
 #define EXPIO_PARENT_INT       (MXC_INTERNAL_IRQS + GPIO_PORTA + 6)
+#define MX51_3DS_ECSPI2_CS     (GPIO_PORTC + 28)
 
 static struct pad_desc mx51_3ds_pads[] = {
        /* UART1 */
@@ -61,6 +63,12 @@ static struct pad_desc mx51_3ds_pads[] = {
        MX51_PAD_KEY_COL3__KEY_COL3,
        MX51_PAD_KEY_COL4__KEY_COL4,
        MX51_PAD_KEY_COL5__KEY_COL5,
+
+       /* eCSPI2 */
+       MX51_PAD_NANDF_RB2__ECSPI2_SCLK,
+       MX51_PAD_NANDF_RB3__ECSPI2_MISO,
+       MX51_PAD_NANDF_D15__ECSPI2_MOSI,
+       MX51_PAD_NANDF_D12__GPIO_3_28,
 };
 
 /* Serial ports */
@@ -127,6 +135,16 @@ static inline void mxc_init_keypad(void)
 }
 #endif
 
+static int mx51_3ds_spi2_cs[] = {
+       MXC_SPI_CS(0),
+       MX51_3DS_ECSPI2_CS,
+};
+
+static const struct spi_imx_master mx51_3ds_ecspi2_pdata __initconst = {
+       .chipselect     = mx51_3ds_spi2_cs,
+       .num_chipselect = ARRAY_SIZE(mx51_3ds_spi2_cs),
+};
+
 /*
  * Board specific initialization.
  */
@@ -136,6 +154,8 @@ static void __init mxc_board_init(void)
                                        ARRAY_SIZE(mx51_3ds_pads));
        mxc_init_imx_uart();
 
+       imx51_add_ecspi(1, &mx51_3ds_ecspi2_pdata);
+
        if (mxc_expio_init(MX51_CS5_BASE_ADDR, EXPIO_PARENT_INT))
                printk(KERN_WARNING "Init of the debugboard failed, all "
                                    "devices on the board are unusable.\n");