Hi ,
I use imx6 ,linux kenerl version 4.1.15, I have patched "imx_add_spi_slave_mode.path" and I have two boards(one work in spi master, the other work in spi slave). when I use spidev_test the spi slave function, MOSI,CS and CLK have correct signal, but MISO line is no signal,why?
My configures are as follow:
1.Connect both boards SPI buses directly :
cs->cs
clk->clk
miso->miso
mosi->mosi
2.devicetree;
1) spi slave board
&ecspi1 {
pinctrl-0 = <&pinctrl_ecspi1>;
status = "okay";
spi-slave;
slave@0{
compatible = "rohm,dh2228fv";
spi-max-frequency = <20000000>;
reg = <0>;
};
};
imx6qdl-sabresd {
pinctrl_ecspi1: ecspi1grp {
fsl,pins = <
MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x100b1
MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x100b1
MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x100b1
MX6QDL_PAD_KEY_ROW1__ECSPI1_SS0 0x100b1
>;
};
2) spi master board:
&ecspi1 {
fsl,spi-num-chipselects = <1>;
cs-gpios = <&gpio4 9 0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi1>;
status = "okay";
spidev:spidev@0{
compatible = "rohm,dh2228fv";
spi-max-frequency = <20000000>;
reg = <0>;
};
};
pinctrl_ecspi1: ecspi1grp {
fsl,pins = <
MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x100b1
MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x100b1
MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x100b1
MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x1b0b0
>;
};
3. I run the spidev_test application on the slave board firstly:(at this momnet,all spi buses are no signals )
spidev_test -D /dev/spidev0.0 -p "SLAVE_HELLO_TO_MASTER" -v
and then run the spidev_test on the master board :(CS, CLK and MOSI have correct signals, but MISO's line no any signal)
spidev_test -D /dev/spidev0.0 -p "MASTER_HELLO_TO_SLAVE" -v
Can any one give me suggestion? thanks.
and I add the patch file to the attachment.
Hi all,
If anyone get solution for this issue.Pleae help us to know root cause of issue.As we facing the same issue.
Thanks
Hi lsharat,
Have you set the DMA Control Register RX_THRESHOLD ?The RXFIFO Data Request Interrupt will trigger.
Hi wu,
I am also facing the same issue .If you are able to get solution of it ,please provide the solution of it.
Thanks
Hi wu
one can check ecspi slave patch on
[PATCH RFC 0/5] *** SPI Slave mode support ***
and its limitations
[PATCH RFC 5/5] spi: imx: Add support for SPI Slave mode for imx53 and imx6 chips
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
hi igorpadykov
thanks for your respond
the link you gived is the mail list, how to use it? should I diff every item of the mail list?
do you have a complete patch file for kernel4.1.15 and imx6?
thanks!
Hi wu
you can try to apply them manually in your sources
Best regards
igor
Hi igor
my kernel's version is 4.1.15, and the mail list's patch maybe base other version,
so there are so many different places between these two codes,
could you provide a patch file based on 4.1.15, please?
thanks!
Hi wu
nxp has special service for helping customers to port software
Commercial Support and Engineering Services | NXP
Best regards
igor
Hi igor
I debug the spi slave driver,
firstly, I sends 32-byte data on slave board, and then I sends the same bytes data on the master board,
slave board didn't enter interrupt service routing(spi_imx_isr) no matter whether master board sends data or not,
why?
Hi wu
one can try to debug using ecspi baremetal test:
rt-thread/spi_test.c at master · RT-Thread/rt-thread · GitHub
Best regards
igor