diff mbox

[6/6] ARM: mx5/mx51_babbage: Add spi support

Message ID 1283438523-19697-6-git-send-email-u.kleine-koenig@pengutronix.de (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Uwe Kleine-König Sept. 2, 2010, 2:42 p.m. UTC
None
diff mbox

Patch

diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig
index 0848db5..f55b0f5 100644
--- a/arch/arm/mach-mx5/Kconfig
+++ b/arch/arm/mach-mx5/Kconfig
@@ -10,6 +10,7 @@  comment "MX5 platforms:"
 
 config MACH_MX51_BABBAGE
 	bool "Support MX51 BABBAGE platforms"
+	select IMX_HAVE_PLATFORM_SPI_IMX
 	help
 	  Include support for MX51 Babbage platform, also known as MX51EVK in
 	  u-boot. This includes specific configurations for the board and its
diff --git a/arch/arm/mach-mx5/board-mx51_babbage.c b/arch/arm/mach-mx5/board-mx51_babbage.c
index 6e384d9..4ed0a9a 100644
--- a/arch/arm/mach-mx5/board-mx51_babbage.c
+++ b/arch/arm/mach-mx5/board-mx51_babbage.c
@@ -17,6 +17,7 @@ 
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/fsl_devices.h>
+#include <linux/spi/spi.h>
 
 #include <mach/common.h>
 #include <mach/hardware.h>
@@ -31,6 +32,7 @@ 
 #include <asm/mach/arch.h>
 #include <asm/mach/time.h>
 
+#include "devices-imx51.h"
 #include "devices.h"
 
 #define BABBAGE_USB_HUB_RESET	(0*32 + 7)	/* GPIO_1_7 */
@@ -240,6 +242,31 @@  static int __init babbage_otg_mode(char *options)
 }
 __setup("otg_mode=", babbage_otg_mode);
 
+#define BABBAGE_ECSPI1_CS0	(3 * 32 + 24)
+#define BABBAGE_ECSPI1_CS1	(3 * 32 + 25)
+
+static const struct spi_board_info mx51_babbage_spi_board_info[] __initconst = {
+	{
+		/* mc13892 */
+		.modalias = "spidev",
+		.max_speed_hz = 300000,
+		.bus_num = 0,
+		.chip_select = 0,
+	}, {
+		.modalias = "spidev",
+		.max_speed_hz = 300000,
+		.bus_num = 0,
+		.chip_select = 1,
+	},
+};
+
+static int mx51_babbage_ecspi0_cs[] = {BABBAGE_ECSPI1_CS0, BABBAGE_ECSPI1_CS1};
+
+static const struct spi_imx_master mx51_babbage_ecspi0_data __initconst = {
+	.chipselect = mx51_babbage_ecspi0_cs,
+	.num_chipselect = ARRAY_SIZE(mx51_babbage_ecspi0_cs),
+};
+
 /*
  * Board specific initialization.
  */
@@ -268,6 +295,10 @@  static void __init mxc_board_init(void)
 	/* setback USBH1_STP to be function */
 	mxc_iomux_v3_setup_pad(&usbh1stp);
 	babbage_usbhub_reset();
+
+	spi_register_board_info(mx51_babbage_spi_board_info,
+			ARRAY_SIZE(mx51_babbage_spi_board_info));
+	imx51_add_ecspi_imx(0, &mx51_babbage_ecspi0_data);
 }
 
 static void __init mx51_babbage_timer_init(void)