Enabling spidev in MCSPI1
Subsystems (3)
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
arch/arm/mach-omap2/board-overo.c +16 -1
@@ -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 );
Quoted 14 lines
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.
arch/arm/mach-omap2/board-overo.c +4
-0+#if 0 +spi_register_board_info (overo_mcspi_board_info, +ARRAY_SIZE (overo_mcspi_board_info)); +#endif
Quoted 2 lines
Does anyone see anything obviously wrong with what I am doing?
Is SPI1 also used for touchscreen on your board, if so it might be conflicting
Hi Philip,
Quoted 6 lines · Philip Balister
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).
Maybe try enabling early printk support if you haven't already?
http://www.mail-archive.com/[email protected]/msg21017.html
- Paul
Quoted 8 lines · Paul Walmsley
Hi Philip,
Quoted 4 lines · Philip Balister
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.
Quoted 6 lines
Quoted 2 lines
I've attached the diff I use to add the spi driver to the board file. (OVero + Summit).
Maybe try enabling early printk support if you haven't already?
I think the early printk stuff was stopping me seeing the message ....
Unfortunately, I found the conflicting driver, the 7846 touchscreen driver, and disabled it, so the kernel boots again. (Before I could boot with debugging messages enabled)
I suspect the kernel should not crash if two drivers try to claim the spi device. If someone is interested, I can reanable the bad configuration and try to collect better data.
Philip