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.

AM3517 McSPI1 driver does not seem to work in Linux

Other Parts Discussed in Thread: AM3517, AB15, DM3725

The problem I have is that sPI signals don't seem to get on the i/o connector pins dedicated to McSPI bus #1. After investigating the problem, I found which Linux kernel source file was doing BGA ball assignment and mux'ing. The file in question is mux34xx.c . [ref.1]

Since the kernel was built for the AM3517 EVM board with the CONFIG_OMAP_PACKAGE_CBB=y build option, the following ball assignments were used with their respective McSPI signals, as defined by  the ~/arch/arm/mach-omap2mux34xx.c kernel source file:

 

static struct omap_ball __initdata omap3_cbb_ball[] = {

   _OMAP3_BALLENTRY(MCSPI1_CLK, "ab3", NULL),

   _OMAP3_BALLENTRY(MCSPI1_CS0, "ac2", NULL),

    _OMAP3_BALLENTRY(MCSPI1_CS1, "ac3", NULL),

   _OMAP3_BALLENTRY(MCSPI1_CS2, "ab1", NULL),

   _OMAP3_BALLENTRY(MCSPI1_CS3, "ab2", NULL),

   _OMAP3_BALLENTRY(MCSPI1_SIMO, "ab4", NULL),

   _OMAP3_BALLENTRY(MCSPI1_SOMI, "aa4", NULL),

};

It should be noted that the source file does not define 'ZCN' ball assignments.

It seems to me that the second parameter indicates a grid location. However, locations for McSPI bus #1 location do not match TI's documented location. I used package type 'ZCN' from the chip itself. As documented, assignments for McSPI bus #1 is as follows: [ref.2]

    MCSPI1_SOMI: AC15

   MCSPI1_CLK : AC14

   MCSPI1_SIMO: AD15

   MCSPI1_CS0 : AB15

 

Clearly, that does not match with Linux kernel i/o mapping. Interestingly, Linux is functional, except for SPI support.

So, either there is something I missed when I built the kernel or either I'm using the wrong kernel 'mux' source file. I would have expected a mux35xx.c file somewhere in the kernel source tree, but the latter does not seem to exist.

That would explain why SPI transmissions don't work. Any pointers/logical explanations about this?

Help!

 

Yves McDonald

ymcdonald@leapmedical.ca

 

References:

1- SOURCE: ARM35x-OMAP35x-LINUX-PSP-04.02.00.07

2- SOURCE: AM3517/05 Sitara ARM Microprocessor (Rev. C) (PDF 2053 KB) 29 Mar 2011 (http://www.ti.com/litv/pdf/sprs550c)