//! \file spi.c //! \author tkl //! \date Feb 11, 2012 //! \brief Source file of the architecture independent spi driver. #include #include "spi.h" //----------------------------------------------------------------------------- int spi_open(const struct spi *device) { if(device == NULL) { return -1; } spi_fp_open_t open = device->fp->open; return open(device->arch_dep_device); } //----------------------------------------------------------------------------- int spi_close(const struct spi *device) { if(device == NULL) { return -1; } spi_fp_close_t close = device->fp->close; return close(device->arch_dep_device); } //----------------------------------------------------------------------------- void spi_assert_cs(const struct spi * device) { if(device == NULL) { return; } spi_fp_assert_cs_t assert_cs = device->fp->assert_cs; assert_cs(device->arch_dep_device); } //----------------------------------------------------------------------------- void spi_deassert_cs(const struct spi * device) { if(device == NULL) { return; } spi_fp_deassert_cs_t deassert_cs = device->fp->deassert_cs; deassert_cs(device->arch_dep_device); } //----------------------------------------------------------------------------- char spi_rxtx_byte(const struct spi * device, char byte) { if(device == NULL) { return 0; } spi_fp_rxtx_byte_t rxtx_byte = device->fp->rxtx_byte; return rxtx_byte(device->arch_dep_device, byte); }