All of the sunxi 3.16 trees that I have tried are broken in various ways. In general early -rc releases of kernels don't work very well.
I pushed my current 3.15 build here: https://github.com/jonsmirl/lpc31xx/tree/jds-merge copy /config to .config and build It has the user space SPI driver enabled. This is using Emilio's DMA driver for SPI. root@linaro-developer:~# ls /dev/*spi* /dev/spidev32766.2 I have no clue if it works, I am not using SPI in the audio code. But it builds and the correct device appears. Look in Documentation/spi for an example of how to use it. On Sat, Jul 5, 2014 at 9:14 AM, bruce bushby <[email protected]> wrote: > > update: I added spi0 to my dts file and everything appears to build and boot > smoothly.....however I still don't see anything under "/dev/*spi*" > ......perhaps something simple as a missing udev rule or mknod script. I'm > not sure who or what should create the "/dev/*spi*" device(s). > > I've tried a couple of things now, thought I would post my results for any > other newbies playing with the same board (Olimex_A20-SOM) > > > I use buildroot to build my images and I'm using "sunxi_defconfig" + SPI > configs: > > [bruce@core a20-som]$ pwd > /disk/software/drone/buildroot/board/olimex/a20-som > [bruce@core a20-som]$ grep SPI sunxi_defconfig > CONFIG_SPI=y > CONFIG_SPI_SUN4I=y > CONFIG_SPI_SUN6I=y > CONFIG_SPI_MASTER=y > CONFIG_SPI_SPIDEV=y > [bruce@core a20-som]$ > > > > > My buildroot kernel config: > > [bruce@core buildroot]$ pwd > /disk/software/drone/buildroot > [bruce@core buildroot]$ cat configs/olimex_a20-som_defconfig | grep KERNEL > BR2_LINUX_KERNEL_PATCH="board/olimex/a20-som/kernel-headers" > BR2_LINUX_KERNEL=y > BR2_LINUX_KERNEL_CUSTOM_GIT=y > BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/torvalds/linux.git" > BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="77c4cf17ae867ba93233b3832bda3de7adaae326" > BR2_LINUX_KERNEL_VERSION="master" > BR2_LINUX_KERNEL_PATCH="board/olimex/a20-som/kernel/" > BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y > BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/olimex/a20-som/sunxi_defconfig" > BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x40008000" > BR2_LINUX_KERNEL_APPENDED_UIMAGE=n > BR2_LINUX_KERNEL_DTS_SUPPORT=y > BR2_LINUX_KERNEL_APPENDED_DTB=n > BR2_LINUX_KERNEL_USE_INTREE_DTS=y > BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-som" > [bruce@core buildroot]$ > > > The build runs through ok, I boot and can see the following spi kernel procs > and devices: > # ps -ef | grep -i spi > 28 root [spi0] > 29 root [spi1] > 30 root [spi2] > 91 root grep -i spi > # > > > > # find /sys -iname "*spi*" > /sys/bus/spi > /sys/bus/spi/drivers/spidev > /sys/bus/platform/devices/1c05000.spi > /sys/bus/platform/devices/1c06000.spi > /sys/bus/platform/devices/1c17000.spi > /sys/bus/platform/drivers/sun4i-spi > /sys/bus/platform/drivers/sun4i-spi/1c05000.spi > /sys/bus/platform/drivers/sun4i-spi/1c06000.spi > /sys/bus/platform/drivers/sun4i-spi/1c17000.spi > /sys/bus/platform/drivers/sun6i-spi > /sys/devices/soc@01c00000/1c05000.spi > /sys/devices/soc@01c00000/1c05000.spi/spi_master > /sys/devices/soc@01c00000/1c05000.spi/spi_master/spi0 > /sys/devices/soc@01c00000/1c06000.spi > /sys/devices/soc@01c00000/1c06000.spi/spi_master > /sys/devices/soc@01c00000/1c06000.spi/spi_master/spi1 > /sys/devices/soc@01c00000/1c17000.spi > /sys/devices/soc@01c00000/1c17000.spi/spi_master > /sys/devices/soc@01c00000/1c17000.spi/spi_master/spi2 > /sys/class/spi_master > /sys/class/spi_master/spi0 > /sys/class/spi_master/spi1 > /sys/class/spi_master/spi2 > /sys/class/spidev > /sys/firmware/devicetree/base/soc@01c00000/spi@01c05000 > /sys/firmware/devicetree/base/soc@01c00000/spi@01c06000 > /sys/firmware/devicetree/base/soc@01c00000/spi@01c17000 > /sys/firmware/devicetree/base/soc@01c00000/spi@01c1f000 > /sys/firmware/devicetree/base/soc@01c00000/pinctrl@01c20800/spi0@0 > /sys/firmware/devicetree/base/soc@01c00000/pinctrl@01c20800/spi1@0 > /sys/firmware/devicetree/base/soc@01c00000/pinctrl@01c20800/spi2@0 > /sys/firmware/devicetree/base/aliases/spi0 > /sys/firmware/devicetree/base/aliases/spi1 > /sys/firmware/devicetree/base/aliases/spi2 > /sys/module/spidev > # > > > > > > Then I changed my buildroot config file to test Emilio's kernel: > > BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://bitbucket.org/emiliolopez/linux.git" > BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="f97f72ee433f4b5c1ee1ba78abcec588cbe9565b" > BR2_LINUX_KERNEL_VERSION="sunxi-dma" > > > The build runs through and boots to login....this time I don't see any "spi" > processes, but I do see spi messages in dmesg and I can see some spi stuff > in "/proc/devices" and "/sys": > # > # ps -ef | grep -i spi > 81 root grep -i spi > # > # dmesg | grep -i spi > [ 0.820043] sun4i-spi 1c05000.spi: Unable to acquire DMA channel TX > [ 0.826621] sun4i-spi 1c06000.spi: Unable to acquire DMA channel TX > [ 0.833164] sun4i-spi 1c17000.spi: Unable to acquire DMA channel TX > # > # grep -i spi /proc/devices > 153 spi > # > # find /sys -iname "*spi*" > /sys/bus/spi > /sys/bus/spi/drivers/spidev > /sys/bus/platform/devices/1c05000.spi > /sys/bus/platform/devices/1c06000.spi > /sys/bus/platform/devices/1c17000.spi > /sys/bus/platform/drivers/sun4i-spi > /sys/bus/platform/drivers/sun6i-spi > /sys/devices/soc@01c00000/1c05000.spi > /sys/devices/soc@01c00000/1c06000.spi > /sys/devices/soc@01c00000/1c17000.spi > /sys/class/spi_master > /sys/class/spidev > /sys/firmware/devicetree/base/soc@01c00000/spi@01c05000 > /sys/firmware/devicetree/base/soc@01c00000/spi@01c06000 > /sys/firmware/devicetree/base/soc@01c00000/spi@01c17000 > /sys/firmware/devicetree/base/soc@01c00000/spi@01c1f000 > /sys/firmware/devicetree/base/soc@01c00000/pinctrl@01c20800/spi0@0 > /sys/firmware/devicetree/base/soc@01c00000/pinctrl@01c20800/spi1@0 > /sys/firmware/devicetree/base/soc@01c00000/pinctrl@01c20800/spi2@0 > /sys/firmware/devicetree/base/aliases/spi0 > /sys/firmware/devicetree/base/aliases/spi1 > /sys/firmware/devicetree/base/aliases/spi2 > /sys/module/spidev > # > # ls -l /dev/*spi* > ls: /dev/*spi*: No such file or directory > # > > > Perhaps I need to add "dma" attributes in my "sun7i-a20-som.dts" > (sun7i-a20.dtsi already has dma configured for spi devices) > > Perhaps everything is all working and I've been starring at it for so long > I've forgotten some simple udev/mknod step? > > As always....any tips or questions appreciated! > > Thanks > Bruce > > > > > > > > > > > > > > > On Fri, Jul 4, 2014 at 5:18 PM, bruce bushby <[email protected]> wrote: >> >> *downloaded.....rather then purchased: >> >> http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf >> >> Maxime: Thanks for the link! >> >> >> On Fri, Jul 4, 2014 at 4:28 PM, bruce bushby <[email protected]> >> wrote: >>> >>> Got it, I wanted to make sure there wasn't some multiplexing voodoo >>> which I had never heard about. I remember the Beaglebone had the omap pin >>> mux ....so figured pin control was similar. >>> >>> Fortunately I don't need ethernet, but looking at the Olimex A20-SOM I'm >>> not sure all the SPI devices are available anyway. >>> >>> Just purchased Device Tree for Dummies which should help things along. >>> >>> Thanks for the help! >>> >>> >>> >>> On Fri, Jul 4, 2014 at 3:24 PM, Maxime Ripard >>> <[email protected]> wrote: >>>> >>>> On Fri, Jul 04, 2014 at 02:27:32PM +0100, bruce bushby wrote: >>>> > Does this mean that it's not possible to have SPI0-SPI3 + ethernet >>>> > working at the same time? >>>> >>>> It is. The EMAC pins are also routed in the PH bank. So if your board >>>> uses the relevant PA pins for the SPI controllers, and the PH pins for >>>> the EMAC, it's fine. >>>> >>>> If you're using the PA pins for the EMAC, you're screwed, at least for >>>> SPI3. >>>> >>>> Maxime >>>> >>>> -- >>>> Maxime Ripard, Free Electrons >>>> Embedded Linux, Kernel and Android engineering >>>> http://free-electrons.com >>> >>> >> > > -- > You received this message because you are subscribed to the Google Groups > "linux-sunxi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- Jon Smirl [email protected] -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
