Private
Public Access
2
0

spi: Use new feature of pinmap to get split info.

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Thomas Ingleby
2014-05-20 16:52:40 +01:00
committed by Brendan Le Foll
parent b7c2b701aa
commit 66550f9487
3 changed files with 23 additions and 19 deletions

View File

@@ -208,9 +208,9 @@ unsigned int maa_check_i2c();
/** Check spi interface, sets up multiplexer on device.
*
* @return unsigned int if using /dev/spi-1.0 returned would be 1.0
* @return spi bus type
*/
double maa_check_spi();
maa_spi_bus_t* maa_check_spi(int bus);
/** Check PWM
*

View File

@@ -31,7 +31,7 @@
#include "gpio.h"
#include "version.h"
static maa_pininfo_t* pindata;
//static maa_pininfo_t* pindata;
static maa_board_t* plat = NULL;
const char *
@@ -144,34 +144,38 @@ maa_check_i2c(int bus_s)
return plat->i2c_bus[bus].bus_id;
}
double
maa_check_spi(int bus_s)
maa_spi_bus_t*
maa_check_spi(int bus)
{
if (plat == NULL)
return -3;
return NULL;
if (plat->i2c_bus_count >! 0) {
if (plat->spi_bus_count >! 0) {
fprintf(stderr, "No spi buses defined in platform");
return -1;
return NULL;
}
if (bus >= plat->spi_bus_count) {
fprintf(stderr, "Above spi bus count");
return NULL;
}
int bus = 0;
int pos = plat->spi_bus[0].sclk;
int pos = plat->spi_bus[bus].sclk;
if (plat->pins[pos].spi.mux_total > 0)
if (maa_setup_mux_mapped(plat->pins[pos].spi) != MAA_SUCCESS)
return -2;
return NULL;
pos = plat->spi_bus[0].mosi;
pos = plat->spi_bus[bus].mosi;
if (plat->pins[pos].spi.mux_total > 0)
if (maa_setup_mux_mapped(plat->pins[pos].spi) != MAA_SUCCESS)
return -2;
return NULL;
pos = plat->spi_bus[0].miso;
pos = plat->spi_bus[bus].miso;
if (plat->pins[pos].spi.mux_total > 0)
if (maa_setup_mux_mapped(plat->pins[pos].spi) != MAA_SUCCESS)
return -2;
return NULL;
return plat->spi_bus[bus].bus_id;
maa_spi_bus_t *spi = &(plat->spi_bus[bus]);
return spi;
}
maa_pin_t*

View File

@@ -44,9 +44,9 @@ struct _spi {
};
maa_spi_context
maa_spi_init()
maa_spi_init(int bus)
{
double bus = maa_check_spi();
maa_spi_bus_t *spi = maa_check_spi(bus);
if(bus < 0) {
fprintf(stderr, "Failed. SPI platform Error\n");
return NULL;
@@ -55,7 +55,7 @@ maa_spi_init()
memset(dev, 0, sizeof(struct _spi));
char path[MAX_SIZE];
sprintf(path, "/dev/spidev%.1f", bus);
sprintf(path, "/dev/spidev%u.%u", spi->bus_id, spi->slave_s);
dev->devfd = open(path, O_RDWR);
if (dev->devfd < 0) {