On Mon, Apr 24, 2017 at 12:55:21PM +0200, Geert Uytterhoeven wrote: > On Fri, Apr 14, 2017 at 7:39 AM, Jiada Wang wrote: > > Our use case is to use spidev as an interface to communicate with external > > SPI master devices. > > meanwhile the SPI bus controller can also act as master device to send data > > to other > > SPI slave devices on the board. > That sounds a bit hackish to me. SPI was never meant to be a multi-master bus. > While it can be done, you will need external synchronization (signals) to > avoid conflicts between the SPI masters. > > I found in your implementation, SPI bus controller is limited to either work > > in master mode or > > slave mode, is there any reasoning to not configure SPI mode based on SPI > > devices use case? > If you really need both master and slave support, you can use 2 subnodes > in DT, the first representing the master, the second the slave. > Mark, what's your opinion about this? That sounds like a mess... we *could* put the slave flag on the device rather than the controller I guess but there's also going to need to be something representing whatever avoids collisions on the bus somewhere.