From 5e0c6d380759c4d7287cf1383e75ce4d7b6baf3a Mon Sep 17 00:00:00 2001 From: Srinivas Kandagatla Date: Fri, 11 Dec 2015 16:28:10 +0000 Subject: [PATCH] spi.c: make use of no_bus_mux flag This patch makes use of no_bus_mux flag in mraa_board_t to skip unnessary mux checks. Signed-off-by: Srinivas Kandagatla Signed-off-by: Brendan Le Foll --- src/spi/spi.c | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/spi/spi.c b/src/spi/spi.c index d270451..384cc20 100644 --- a/src/spi/spi.c +++ b/src/spi/spi.c @@ -77,35 +77,37 @@ mraa_spi_init(int bus) } } - int pos = plat->spi_bus[bus].sclk; - if (plat->pins[pos].spi.mux_total > 0) { - if (mraa_setup_mux_mapped(plat->pins[pos].spi) != MRAA_SUCCESS) { - syslog(LOG_ERR, "spi: failed to set-up spi sclk multiplexer"); - return NULL; + if (!plat->no_bus_mux) { + int pos = plat->spi_bus[bus].sclk; + if (plat->pins[pos].spi.mux_total > 0) { + if (mraa_setup_mux_mapped(plat->pins[pos].spi) != MRAA_SUCCESS) { + syslog(LOG_ERR, "spi: failed to set-up spi sclk multiplexer"); + return NULL; + } } - } - pos = plat->spi_bus[bus].mosi; - if (plat->pins[pos].spi.mux_total > 0) { - if (mraa_setup_mux_mapped(plat->pins[pos].spi) != MRAA_SUCCESS) { - syslog(LOG_ERR, "spi: failed to set-up spi mosi multiplexer"); - return NULL; + pos = plat->spi_bus[bus].mosi; + if (plat->pins[pos].spi.mux_total > 0) { + if (mraa_setup_mux_mapped(plat->pins[pos].spi) != MRAA_SUCCESS) { + syslog(LOG_ERR, "spi: failed to set-up spi mosi multiplexer"); + return NULL; + } } - } - pos = plat->spi_bus[bus].miso; - if (plat->pins[pos].spi.mux_total > 0) { - if (mraa_setup_mux_mapped(plat->pins[pos].spi) != MRAA_SUCCESS) { - syslog(LOG_ERR, "spi: failed to set-up spi miso multiplexer"); - return NULL; + pos = plat->spi_bus[bus].miso; + if (plat->pins[pos].spi.mux_total > 0) { + if (mraa_setup_mux_mapped(plat->pins[pos].spi) != MRAA_SUCCESS) { + syslog(LOG_ERR, "spi: failed to set-up spi miso multiplexer"); + return NULL; + } } - } - pos = plat->spi_bus[bus].cs; - if (plat->pins[pos].spi.mux_total > 0) { - if (mraa_setup_mux_mapped(plat->pins[pos].spi) != MRAA_SUCCESS) { - syslog(LOG_ERR, "spi: failed to set-up spi cs multiplexer"); - return NULL; + pos = plat->spi_bus[bus].cs; + if (plat->pins[pos].spi.mux_total > 0) { + if (mraa_setup_mux_mapped(plat->pins[pos].spi) != MRAA_SUCCESS) { + syslog(LOG_ERR, "spi: failed to set-up spi cs multiplexer"); + return NULL; + } } } mraa_spi_context dev = mraa_spi_init_raw(plat->spi_bus[bus].bus_id, plat->spi_bus[bus].slave_s); -- 2.7.4