Ah, what you are trying to do cannot be done with the current SPI driver 
because Linux SPI framework does not support SPI slave mode. Recently someone 
added I2C slave support to the I2C framework and that might be your first place 
to look. My approach would be to create a custom SPI driver that does not use 
the SPI framework. The length and frequency of messages will define the driver 
design. For example, if the message length is smaller than the SPI receive FIFO 
size, I would do this with interrupts, but the interrupt would occur only when 
exceeding the FIFO threshold and then dump the full FIFO in the bottom half 
interrupt handler. This way, you would get an interrupt on every say every 32 
receive bytes, which will reduce the interrupt overhead and improve throughput. 

If the message length is more than the FIFO length, or if the message is 
cyclical, then I would use DMA to copy the SPI data into a ping-pong buffer 
arrangement. From the use space app, you would use poll to wait for a complete 
buffer, and then read that buffer via read or mmap. 

Question is, how experienced are you at writing Linux drivers? This isn’t a 
trivial task. 

Regards,
John




> On Mar 27, 2016, at 12:26 AM, Yaron Yzhak Lederman <[email protected]> 
> wrote:
> 
> John Hi,
> 
> Thank you for coming back on this.
> 
> I'm trying to connect 2 SPI busses on the BBB (HDMI disabled) and configure 
> SPI1 as SPI slave so that I can sent messages from SPI0 to SPI1 - this allows 
> me my application development and laterone I'll connect the respective SPI 
> slave and master devices
> 
> Thank you
> Yaron
> 
> On Wed, Mar 23, 2016 at 10:37 PM, John Syne <[email protected] 
> <mailto:[email protected]>> wrote:
> What exactly are you trying to do? Please explain your application so that we 
> can propose a solution.
> 
> Regards,
> John
> 
> 
> 
> 
>> On Mar 23, 2016, at 4:29 AM, [email protected] 
>> <mailto:[email protected]> wrote:
>> 
>> Hi,
>> 
>> Is there any resolution about this ? Since I'm having the same consideration
>> 
>> Thanks !
>> 
>> 
>> On Wednesday, November 4, 2015 at 4:15:23 PM UTC+2, [email protected] 
>> <http://gmail.com/> wrote:
>> Hi,
>> 
>> I'm trying to setup SPI slave mode with same above method and changed 
>> OMAP2_MCSPI_MODULCTRL_MS set to 0 for slave mode.
>> 
>> i'm facing issue in master mode and slave both on sckl pin configuration. 
>> 
>> http://elinux.org/BeagleBone_Black_Enable_SPIDEV 
>> <http://elinux.org/BeagleBone_Black_Enable_SPIDEV> in this link why sckl pin 
>> is configured as INPUT 0x33 but it will work with same configuration if i 
>> change it to OUTPUT it doesn't work with any slave device and no clock on 
>> that pin.
>> 
>> Please anyone clarify this doubt and issues.
>> 
>> For slave mode i tried to change OMAP2_MCSPI_MODULCTRL_MS bit in driver file 
>> spi_omap2_mcspi.c but no use. still its master only. 
>> 
>> Please provide any suggestion or exact procedure.
>> 
>> Thank you in advance.
>> 
>> Regard s
>> Ravi 
>> 
>> On Thursday, September 18, 2014 at 5:45:47 AM UTC+5:30, [email protected] <> 
>> wrote:
>> 
>> I am having issues with SPI between two BBB that may be simple to solve. I 
>> have spidev_test loopback working on each board but am having problems 
>> connecting the two.
>> 
>> spi0 master dts:
>>                   0x150 0x10  /* spi0_sclk, OUTPUT_PULLUP | MODE0 */
>>                   0x154 0x30  /* spi0_d0, INPUT_PULLUP | MODE0 */
>>                   0x158 0x10  /* spi0_d1, OUTPUT_PULLUP | MODE0 */
>>                   0x15c 0x10  /* spi0_cs0, OUTPUT_PULLUP | MODE0 */
>> 
>> spi slave dts:
>>                   0x150 0x30  /* spi0_sclk, INPUT_PULLUP | MODE0 */
>>                   0x154 0x10  /* spi0_d0, OUTPUT_PULLUP | MODE0 */
>>                   0x158 0x30  /* spi0_d1, INPUT_PULLUP | MODE0 */
>>                   0x15c 0x30  /* spi0_cs0, INPUT_PULLUP | MODE0 */
>> 
>> 
>> The oscilloscope shows activity when spi0_sckl (P9_17) is not connected but 
>> nothing when P9_17 is connected between both boards. 
>> I am sending bytes from master with the command: echo 1 > /dev/spidev1.0
>> 
>> I need 4-8mbit/sec transfer, is this achievable by bit banging over GPIO and 
>> would that be a viable alternative to getting SPI working?
>> 
>> 
>> -- 
>> For more options, visit http://beagleboard.org/discuss 
>> <http://beagleboard.org/discuss>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "BeagleBoard" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] 
>> <mailto:[email protected]>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> For more options, visit http://beagleboard.org/discuss 
> <http://beagleboard.org/discuss>
> --- 
> You received this message because you are subscribed to a topic in the Google 
> Groups "BeagleBoard" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/beagleboard/jQ1LH6IDH1A/unsubscribe 
> <https://groups.google.com/d/topic/beagleboard/jQ1LH6IDH1A/unsubscribe>.
> To unsubscribe from this group and all its topics, send an email to 
> [email protected] 
> <mailto:[email protected]>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.
> 
> 
> 
> -- 
> בברכה,
> 
> ירון יצחק לדרמן
> 08-6909594
> 
> -- 
> For more options, visit http://beagleboard.org/discuss 
> <http://beagleboard.org/discuss>
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" 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.

Reply via email to