summaryrefslogtreecommitdiff
path: root/peripheral/libmraa/src/spi/spi.c
diff options
context:
space:
mode:
Diffstat (limited to 'peripheral/libmraa/src/spi/spi.c')
-rw-r--r--peripheral/libmraa/src/spi/spi.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/peripheral/libmraa/src/spi/spi.c b/peripheral/libmraa/src/spi/spi.c
index 570c207..384cc20 100644
--- a/peripheral/libmraa/src/spi/spi.c
+++ b/peripheral/libmraa/src/spi/spi.c
@@ -143,12 +143,10 @@ mraa_spi_init_raw(unsigned int bus, unsigned int cs)
}
int speed = 0;
- if (ioctl(dev->devfd, SPI_IOC_RD_MAX_SPEED_HZ, &speed) != -1) {
+ if ((ioctl(dev->devfd, SPI_IOC_RD_MAX_SPEED_HZ, &speed) != -1) && (speed < 4000000)) {
dev->clock = speed;
} else {
- // We had this on Galileo Gen1, so let it be a fallback value
dev->clock = 4000000;
- syslog(LOG_WARNING, "spi: Max speed query failed, setting %d", dev->clock);
}
if (mraa_spi_mode(dev, MRAA_SPI_MODE0) != MRAA_SUCCESS) {
@@ -267,7 +265,7 @@ mraa_spi_write(mraa_spi_context dev, uint8_t data)
return (int) recv;
}
-int
+uint16_t
mraa_spi_write_word(mraa_spi_context dev, uint16_t data)
{
struct spi_ioc_transfer msg;
@@ -286,7 +284,7 @@ mraa_spi_write_word(mraa_spi_context dev, uint16_t data)
syslog(LOG_ERR, "spi: Failed to perform dev transfer");
return -1;
}
- return (int) recv;
+ return recv;
}
mraa_result_t