22 #include <sys/ioctl.h> 23 #include <linux/types.h> 24 #include <linux/spi/spidev.h> 35 void LinuxSpiDriverComponentImpl::SpiReadWrite_handler(
39 if (this->m_fd == -1) {
45 memset(&tr, 0,
sizeof(tr));
46 tr.tx_buf =
reinterpret_cast<__u64
>(writeBuffer.
getData());
47 tr.rx_buf =
reinterpret_cast<__u64
>(readBuffer.
getData());
64 this->m_bytes += readBuffer.
getSize();
73 this->m_device = device;
74 this->m_select = select;
116 ret = ioctl(fd, SPI_IOC_WR_MODE, &mode);
122 ret = ioctl(fd, SPI_IOC_RD_MODE, &mode);
132 ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits);
138 ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits);
147 ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &clock);
153 ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &clock);
164 (void) close(this->m_fd);
void log_WARNING_HI_SPI_ConfigError(I32 device, I32 select, I32 error) const
PlatformIntType NATIVE_INT_TYPE
void log_WARNING_HI_SPI_WriteError(I32 device, I32 select, I32 error)
void tlmWrite_SPI_Bytes(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
const char * toChar() const
#define FW_USE_PRINTF_FAMILY_FUNCTIONS_IN_STRING_FORMATTING
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void log_WARNING_HI_SPI_OpenError(I32 device, I32 select, I32 error) const
~LinuxSpiDriverComponentImpl()
C++-compatible configuration header for fprime configuration.
uint8_t U8
8-bit unsigned integer
bool open(NATIVE_INT_TYPE device, NATIVE_INT_TYPE select, SpiFrequency clock, SpiMode spiMode=SpiMode::SPI_MODE_CPOL_LOW_CPHA_LOW)
Open device.
FormatStatus
status of string format calls