mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
spi: Document SPI slave controller support
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
6c364062bf
commit
aa2ea9115b
@ -62,8 +62,8 @@ chips described as using "three wire" signaling: SCK, data, nCSx.
|
||||
(That data line is sometimes called MOMI or SISO.)
|
||||
|
||||
Microcontrollers often support both master and slave sides of the SPI
|
||||
protocol. This document (and Linux) currently only supports the master
|
||||
side of SPI interactions.
|
||||
protocol. This document (and Linux) supports both the master and slave
|
||||
sides of SPI interactions.
|
||||
|
||||
|
||||
Who uses it? On what kinds of systems?
|
||||
@ -154,9 +154,8 @@ control audio interfaces, present touchscreen sensors as input interfaces,
|
||||
or monitor temperature and voltage levels during industrial processing.
|
||||
And those might all be sharing the same controller driver.
|
||||
|
||||
A "struct spi_device" encapsulates the master-side interface between
|
||||
those two types of driver. At this writing, Linux has no slave side
|
||||
programming interface.
|
||||
A "struct spi_device" encapsulates the controller-side interface between
|
||||
those two types of drivers.
|
||||
|
||||
There is a minimal core of SPI programming interfaces, focussing on
|
||||
using the driver model to connect controller and protocol drivers using
|
||||
@ -177,10 +176,24 @@ shows up in sysfs in several locations:
|
||||
/sys/bus/spi/drivers/D ... driver for one or more spi*.* devices
|
||||
|
||||
/sys/class/spi_master/spiB ... symlink (or actual device node) to
|
||||
a logical node which could hold class related state for the
|
||||
controller managing bus "B". All spiB.* devices share one
|
||||
a logical node which could hold class related state for the SPI
|
||||
master controller managing bus "B". All spiB.* devices share one
|
||||
physical SPI bus segment, with SCLK, MOSI, and MISO.
|
||||
|
||||
/sys/devices/.../CTLR/slave ... virtual file for (un)registering the
|
||||
slave device for an SPI slave controller.
|
||||
Writing the driver name of an SPI slave handler to this file
|
||||
registers the slave device; writing "(null)" unregisters the slave
|
||||
device.
|
||||
Reading from this file shows the name of the slave device ("(null)"
|
||||
if not registered).
|
||||
|
||||
/sys/class/spi_slave/spiB ... symlink (or actual device node) to
|
||||
a logical node which could hold class related state for the SPI
|
||||
slave controller on bus "B". When registered, a single spiB.*
|
||||
device is present here, possible sharing the physical SPI bus
|
||||
segment with other SPI slave devices.
|
||||
|
||||
Note that the actual location of the controller's class state depends
|
||||
on whether you enabled CONFIG_SYSFS_DEPRECATED or not. At this time,
|
||||
the only class-specific state is the bus number ("B" in "spiB"), so
|
||||
|
Loading…
Reference in New Issue
Block a user