| ================== |
| 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. |