spi bugfixes

This commit is contained in:
2021-02-23 18:01:28 +01:00
parent cb0fa384ca
commit 84ebc71b23
4 changed files with 84 additions and 25 deletions

View File

@ -88,12 +88,12 @@ ReturnValue_t SpiComIF::initializeInterface(CookieIF *cookie) {
return fileHelper.getOpenResult();
}
int retval = ioctl(fileDescriptor, SPI_IOC_WR_MODE, static_cast<int>(spiMode));
int retval = ioctl(fileDescriptor, SPI_IOC_WR_MODE, reinterpret_cast<uint8_t*>(&spiMode));
if(retval != 0) {
utility::handleIoctlError("SpiComIF::initializeInterface: Setting SPI mode failed!");
}
retval = ioctl(fileDescriptor, SPI_IOC_WR_MAX_SPEED_HZ, spiSpeed);
retval = ioctl(fileDescriptor, SPI_IOC_WR_MAX_SPEED_HZ, &spiSpeed);
if(retval != 0) {
utility::handleIoctlError("SpiComIF::initializeInterface: Setting SPI speed failed!");
}
@ -117,19 +117,19 @@ ReturnValue_t SpiComIF::initializeInterface(CookieIF *cookie) {
currentMode |= SPI_CS_HIGH;
}
/* Write adapted mode */
retval = ioctl(fileDescriptor, SPI_IOC_WR_MODE32, currentMode);
retval = ioctl(fileDescriptor, SPI_IOC_WR_MODE32, &currentMode);
if(retval != 0) {
utility::handleIoctlError("SpiComIF::initialiezInterface: Could not write full mode!");
}
}
if(params.lsbFirst) {
retval = ioctl(fileDescriptor, SPI_IOC_WR_LSB_FIRST, true);
retval = ioctl(fileDescriptor, SPI_IOC_WR_LSB_FIRST, &params.lsbFirst);
if(retval != 0) {
utility::handleIoctlError("SpiComIF::initializeInterface: Setting LSB first failed");
}
}
if(params.bitsPerWord != 8) {
retval = ioctl(fileDescriptor, SPI_IOC_WR_BITS_PER_WORD, params.bitsPerWord);
retval = ioctl(fileDescriptor, SPI_IOC_WR_BITS_PER_WORD, &params.bitsPerWord);
if(retval != 0) {
utility::handleIoctlError("SpiComIF::initializeInterface: "
"Could not write bits per word!");