Hi again, On Tue, Dec 11, 2012 at 01:48:10PM +0200, Felipe Balbi wrote: > On Tue, Dec 11, 2012 at 10:38:58AM +0000, Jack Mitchell wrote: > > On 11/12/12 10:20, Felipe Balbi wrote: > > >Hi, > > > > > >On Tue, Dec 11, 2012 at 10:17:42AM +0000, Jack Mitchell wrote: > > > > > ><big snip> > > > > > >>Shubhro, Felipe, > > >> > > >>Thank you, the reordering dma patch fixed the dma issue I was having! > > >>However, the bad news, I now get the same results for the dma and > > >>non-dma spidev test. While the scope shows the SPI clk and data is > > >>fine, the reading from the program still shows 0x00 for all words. > > ><removed spidev_test output> > > > > > >>dmesg shows nothing of interest apart from the spi bus setting up. > > >>Any ideas? > > >> > > >>To iterate for my own sanity; I have bridged pins 18 and 21 on the P9 > > >>header which should be the d0 and d1 spi data pins for spi0. This > > >>result of 0x00 usually comes from a result of not joining the pins, > > >>but I can assure you they are joined! > > >> > > >>Thank you for the help so far. > > >according to the schematics [1], those pins are muxed as UART2_TXD and > > >I2C1_SDA, have you remuxed them properly ? Can you try with pins 29 and > > >30 on the same header ? That's SPI1, so you will have to add DT data for > > >spidev on that bus too. > > > > > >[1] http://beagleboard.org/static/beaglebone/latest/Docs/Hardware/BONE_SCH.pdf > > > > > > > No change unfortunately: > > > > root@beaglebone:~# ./spidev > > spi mode: 0 > > bits per word: 16 > > max speed: 24000000 Hz (24000 KHz) > > > > 00 00 00 00 00 00 > > 00 00 00 00 00 00 > > 00 00 00 00 00 00 > > 00 00 00 00 00 00 > > 00 00 00 00 00 00 > > 00 00 00 00 00 00 > > 00 00 > > > > root@beaglebone:~# ./spidev -D /dev/s > > shm/ spidev1.0 spidev2.0 stderr stdin stdout > > root@beaglebone:~# ./spidev -D /dev/spidev2.0 one thing caught my attention, shouldn't you be passing '-l' argument here for loopback testing ? That would mean you need to make sure your "spi->mode" has SPI_LOOP flag set. Currently there is no way to do that via DeviceTree (AFAICT), so please apply ths patch to your tree and set spi-loopback; property for your spidev entry: diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt index 296015e..1949586 100644 --- a/Documentation/devicetree/bindings/spi/spi-bus.txt +++ b/Documentation/devicetree/bindings/spi/spi-bus.txt @@ -55,6 +55,8 @@ contain the following properties. chip select active high - spi-3wire - (optional) Empty property indicating device requires 3-wire mode. +- spi-loopback - (optional) Empty property indicating device requires + loopback mode. If a gpio chipselect is used for the SPI slave the gpio number will be passed via the cs_gpio diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 3f1b9ee..6bcdc03 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -868,6 +868,8 @@ static void of_register_spi_devices(struct spi_master *master) spi->mode |= SPI_CS_HIGH; if (of_find_property(nc, "spi-3wire", NULL)) spi->mode |= SPI_3WIRE; + if (of_find_property(nc, "spi-loopback", NULL)) + spi->mode |= SPI_LOOP; /* Device speed */ prop = of_get_property(nc, "spi-max-frequency", &len); -- balbi
Attachment:
signature.asc
Description: Digital signature