[PATCH Resend v5 00/16] spi/spi-atmel: add dmaengine support for atmel spi controller and to test the device tree support

Yang, Wenyou Wenyou.Yang at atmel.com
Wed Feb 27 21:16:08 EST 2013


Hi, Robert,

> -----Original Message-----
> From: Robert Nelson [mailto:robertcnelson at gmail.com]
> Sent: 2013年2月28日 1:52
> To: Yang, Wenyou
> Cc: linux-arm-kernel at lists.infradead.org; richard.genoud at gmail.com; Lin, JM;
> Ferre, Nicolas; grant.likely at secretlab.ca; plagnioj at jcrosoft.com;
> dgilbert at interlog.com
> Subject: Re: [PATCH Resend v5 00/16] spi/spi-atmel: add dmaengine support for
> atmel spi controller and to test the device tree support
> 
> On Tue, Feb 26, 2013 at 6:34 PM, Wenyou Yang <wenyou.yang at atmel.com>
> wrote:
> > Hi All,
> >
> > This set of patches is to add dmaengine support for atmel spi and to test
> device tree support.
> >
> > The work is based on Nicolas and Richard's work.
> >
> > Because the Atmel DMA device tree support hasn't on mainline, to
> at91sam9x5ek and at91sam9n12ek
> > with dma support, it doesn't work on the dmaengine mode, only on PIO mode
> so far.
> >
> > It has been tested as below:
> >  1./tested on v3.8, by using mtd utils, "mount", "umount" and "cp"
> commands.
> >  2./tested on "spi/next" git tree after removing commit "spi: make sure all
> transfer has proper speed set".
> >  3./tested by using Documentation/spi/spidev_test.c on "/dev/spidev".
> >  4./tested on on at91sam9x5ek, at91sam9m10g45ek, at91sam9263ek and
> at91sam9g20ek boards
> 
> Hi Wenyou,
> 
> Is this patchset missing another enablement patch? With v3.8.0 on the
> at91sam9g35ek (device tree boot) I'm getting..
> 
> debian at arm:~$ dmesg | grep -i spi
> [    0.890625] atmel_spi f0000000.spi: version: 0x212
> [    0.890625] atmel_spi f0000000.spi: DMA channel not available,
> unable to use SPI
> [    0.898437] atmel_spi f0000000.spi: Atmel SPI Controller using PIO only
> [    0.906250] atmel_spi f0000000.spi: Atmel SPI Controller at
> 0xf0000000 (irq 30)
> [    0.914062] atmel_spi f0000000.spi: master is unqueued, this is
> deprecated
> debian at arm:~$ ls /dev/spi*
> ls: cannot access /dev/spi*: No such file or directory
> 
> .config for reference, encase i missed something obvious:
> https://github.com/RobertCNelson/armv5_devel/blob/v3.8.x-at91/patches/def
> config
> 
> CONFIG_SPI=y
> # CONFIG_SPI_DEBUG is not set
> CONFIG_SPI_MASTER=y
> 
> CONFIG_SPI_ATMEL=y
> 
> CONFIG_SPI_SPIDEV=y
> 
> Regards,
> 
> --
> Robert Nelson
> http://www.rcn-ee.com/

Thanks a lot for your feedback.
1./ using the at25df32 dataflash on the board, 
	based on at91_dt_defconfig default configuration, you need to add the below items:
	
	+CONFIG_MTD_M25P80=y
	+CONFIG_JFFS2_FS=y
	+CONFIG_AT_HDMAC=y

After running in the board, you will get the following message in the starting:

atmel_spi f0000000.spi: version: 0x212
atmel_spi f0000000.spi: DMA channel not available, unable to use SPI
atmel_spi f0000000.spi: Atmel SPI Controller using PIO only
atmel_spi f0000000.spi: Atmel SPI Controller at 0xf0000000 (irq 30)
atmel_spi f0000000.spi: master is unqueued, this is deprecated
m25p80 spi32766.0: at25df321a (4096 Kbytes)

# cat /proc/mtd | grep spi
mtd5: 00400000 00001000 "spi32766.0"

# ls /dev/mtdblock*
/dev/mtdblock0  /dev/mtdblock2  /dev/mtdblock4
/dev/mtdblock1  /dev/mtdblock3  /dev/mtdblock5


2./ using "spidev", based on at91_dt_defconfig default configuration, you need to add the below items:
	
	+CONFIG_SPI_SPIDEV=y

	And you need to change at91sam9x5ek.dtsi as below:

diff --git a/arch/arm/boot/dts/at91sam9x5ek.dtsi b/arch/arm/boot/dts/at91sam9x5ek.dtsi
index 09f5e66..4c48ba2 100644
--- a/arch/arm/boot/dts/at91sam9x5ek.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5ek.dtsi
@@ -89,7 +89,7 @@
                                status = "okay";
                                cs-gpios = <&pioA 14 0>, <0>, <0>, <0>;
                                m25p80 at 0 {
-                                       compatible = "atmel,at25df321a";
+                                       compatible = "spidev";
                                        spi-max-frequency = <50000000>;
                                        reg = <0>;
                                };

After running in the board, you will get the following message :

# ls /dev/spi*
/dev/spidev32766.0

Best Regards,
Wenyou Yang



More information about the linux-arm-kernel mailing list