I'm wanting to use the SPI in slave mode (as a platform_device) in Linux 3.0.35. Is this possible? I've set the SPI registers (slave mode, CPOL/CPHA etc) but I don't seem to be getting anything in ECSPIx_RXDATA register when the master on the other side is sending data. I've checked the SPI lines and it seems valid.
Here are my SPI register values:
ECSPI2_CONREG | = 0x01f00001 |
ECSPI2_CONFREG | = 0x00000000 |
ECSPI2_INTREG | = 0x00000024 |
ECSPI2_DMAREG | = 0x00010001 |
ECSPI2_STATREG | = 0x00000003 |
Is there anything obviously wrong in the register values or do I need to set registers other than the SPI specific registers to make it work?
已解决! 转到解答。
You are not setting Chip Select signal polarity. Set the value of SS_POL as 1 (Active high) on ECSPIx_CONFIGREG register for slave mode.
Steve
If you set burst length as 32 then you will get second word as zeros. And it happens again after 128 words.
I played with all the registers and the results are all same. ss_ctl is not supported in slave mode. this issue is something deeper.
I am still trying to find a solution for it.
If you find something interesting please update us.
Alam
Hi Mohammad Alam
I am writing a custom driver to enable spi slave in i.MX6 using DMA. Do we need to enable any type of clock configuration or clock form i.MX6 side for spi slave to work?
Thanks
Sebi
Hi Steve,
Can you share your custom SPI slave driver using DMA on IMX6
My email is kiruthikanv@gmail.com
Thanks,
Kiruthika