I'm trying to enable spidev on mcspi1, but when I do, the kernel while
booting after the kernel is uncompressed. No useful messages are
displayed. This is with a current git.
I've attached the diff I use to add the spi driver to the board file.
(OVero + Summit).
With the #if 0 inplace the kernel boots, enable that code and it fails.
+#if 0
+ spi_register_board_info(overo_mcspi_board_info,
+ ARRAY_SIZE(overo_mcspi_board_info));
+#endif
Does anyone see anything obviously wrong with what I am doing?
Philip
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index d192dd9..804d88f 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -33,6 +33,8 @@
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>
+#include <linux/spi/spi.h>
+
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/flash.h>
@@ -184,6 +186,16 @@ static inline void __init overo_init_smsc911x(void)
static inline void __init overo_init_smsc911x(void) { return; }
#endif
+static struct spi_board_info overo_mcspi_board_info[] = {
+ {
+ .modalias = "spidev",
+ .max_speed_hz = 12000000, // 12 MHz
+ .bus_num = 1,
+ .chip_select = 0,
+ .mode = SPI_MODE_1,
+ },
+};
+
static struct mtd_partition overo_nand_partitions[] = {
{
.name = "xloader",
@@ -424,7 +436,10 @@ static void __init overo_init(void)
usb_ehci_init(&ehci_pdata);
overo_ads7846_init();
overo_init_smsc911x();
-
+#if 0
+ spi_register_board_info(overo_mcspi_board_info,
+ ARRAY_SIZE(overo_mcspi_board_info));
+#endif
/* Ensure SDRC pins are mux'd for self-refresh */
omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);