diff --git a/include/mraa_adv_func.h b/include/mraa_adv_func.h index 8874e0e..f3f6759 100644 --- a/include/mraa_adv_func.h +++ b/include/mraa_adv_func.h @@ -61,6 +61,7 @@ typedef struct { mraa_result_t (*spi_init_pre) (int bus); mraa_result_t (*spi_init_post) (mraa_spi_context spi); + mraa_result_t (*spi_lsbmode_replace) (mraa_spi_context dev, mraa_boolean_t lsb); mraa_result_t (*uart_init_pre) (int index); mraa_result_t (*uart_init_post) (mraa_uart_context uart); diff --git a/src/spi/spi.c b/src/spi/spi.c index 7af38d9..5eb5b4f 100644 --- a/src/spi/spi.c +++ b/src/spi/spi.c @@ -196,6 +196,10 @@ mraa_spi_frequency(mraa_spi_context dev, int hz) mraa_result_t mraa_spi_lsbmode(mraa_spi_context dev, mraa_boolean_t lsb) { + if (advance_func->spi_lsbmode_replace != NULL) { + return advance_func->spi_lsbmode_replace(dev, lsb); + } + uint8_t lsb_mode = (uint8_t) lsb; if (ioctl(dev->devfd, SPI_IOC_WR_LSB_FIRST, &lsb_mode) < 0) { syslog(LOG_ERR, "spi: Failed to set bit order");