26 lines
992 B
ReStructuredText
26 lines
992 B
ReStructuredText
|
==================
|
||
|
SPI Device Drivers
|
||
|
==================
|
||
|
|
||
|
- ``include/nuttx/spi/spi.h``. All structures and APIs needed
|
||
|
to work with SPI drivers are provided in this header file.
|
||
|
|
||
|
- ``struct spi_ops_s``. Each SPI device driver must implement
|
||
|
an instance of ``struct spi_ops_s``. That structure defines a
|
||
|
call table with the following methods:
|
||
|
|
||
|
- **Binding SPI Drivers**. SPI drivers are not normally directly
|
||
|
accessed by user code, but are usually bound to another, higher
|
||
|
level device driver. See for example,
|
||
|
``int mmcsd_spislotinitialize(int minor, int slotno, FAR struct spi_dev_s *spi)``
|
||
|
in ``drivers/mmcsd/mmcsd_spi.c``. In general, the binding
|
||
|
sequence is:
|
||
|
|
||
|
#. Get an instance of ``struct spi_dev_s`` from the
|
||
|
hardware-specific SPI device driver, and
|
||
|
#. Provide that instance to the initialization method of the
|
||
|
higher level device driver.
|
||
|
|
||
|
- **Examples**: ``drivers/loop.c``,
|
||
|
``drivers/mmcsd/mmcsd_spi.c``, ``drivers/ramdisk.c``, etc.
|