This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

McSPI4 on OMAP3530 EVM

Other Parts Discussed in Thread: OMAP3530Normal 0 false false false EN-US X-NONE X-NONE MicrosoftInternetExplorer4

I have been trying to get the McSPI drivers/ports working on the Mistral OMAP3530 evm.

I am using the TI dvsdk_3_00_00_29 which uses OMAP35x_SDK_1.0.2 which uses linux-2.6.22.
 
So far I have tried reconfiguring uboot to re-configure the multiplexed McSPI output pins and adding the required spi_board_info struct.
 
I have tried make changes to Support McSPI1, 2, 3 and 4 with various results.
 
MCSPI1 looks like it is being used by the touch-screen controller on CS 0 so I tried using CS 3.
MCSPI2 looks like the out pins are connected and re-configured for the daughter card USB controller.  But I tried CS0 anyway.
 
MCSPI4 looks like it should be available, although defaulted to have the out pins muxed to the MCBSP1.
 
I have modified u-boot/board/omap3evm/omap3evm.c by changing the following:
      MUX_VAL(CP(McBSP1_CLKR),    (IEN  | PTD | DIS | M1)) /*msj mcspi4_clk - McBSP1_CLKR  */\
      MUX_VAL(CP(McBSP1_DX),      (IEN  | PTD | DIS | M1)) /*msj mcspi4_ simo - GPIO_158*/\
      MUX_VAL(CP(McBSP1_DR),      (IEN  | PTD | DIS | M1)) /*msj mcspi4_ somi - McBSP1_DR*/\
      MUX_VAL(CP(McBSP1_FSX),     (IEN  | PTD | DIS | M1)) /*msj mcspi4_cs0 - McBSP1_FSX*/\
 
Rebuilt u-boot and burned to flash.  U-boot still boots.
 
I have modified my linux kernel .config file by setting:
CONFIG_SPI=y
CONFIG_SPI_DEBUG=y
CONFIG_SPI_MASTER=y
 
CONFIG_SPI_OMAP24XX_OMAP34XX=y
CONFIG_SPI_TI_OMAP_TEST=y
CONFIG_SPI_SPIDEV=y
 
I have added the following to the kernel file arch/arm/mach-omap2/board-omap3evm.c:
// For McSPI4
 static struct spi_board_info omap3evm_spi_board_info[] = {
   {
        /* the modalias must be the same as spi device driver name */
        .modalias = "spidev",        /* This always has to "spidev" to create node under /dev in the user space */
        .max_speed_hz = 48000000,    /* Speed that matches with the device */
        .bus_num = 4,                /* Bus number on which the device is connected */
        .chip_select = 1,            /* Chip select from the bus, connected to device */
        .platform_data = NULL,        /* If any data to be paased to the device, though this is not usefull with this driver */
        .mode = SPI_MODE_0,            /* The SPI protocol that device uses to communicate with OMAP Master */
    },
 
};

But the /dev/spi4.1 driver does not show up, and sometimes the kernel does not boot.  If I change the .bus_num to 2, I do get /dev/spi2.1
 
I have not tried to exercise McSPI2 as it appears the pad are configured for the USB on the daughter card.
 
does any one have any clues how to get McSPI4 functional with the linux kernel?
 
Thanks for any help.