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:
committed by
Brendan Le Foll
parent
b7c2b701aa
commit
66550f9487
@@ -208,9 +208,9 @@ unsigned int maa_check_i2c();
|
|||||||
|
|
||||||
/** Check spi interface, sets up multiplexer on device.
|
/** 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
|
/** Check PWM
|
||||||
*
|
*
|
||||||
|
|||||||
32
src/maa.c
32
src/maa.c
@@ -31,7 +31,7 @@
|
|||||||
#include "gpio.h"
|
#include "gpio.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
|
|
||||||
static maa_pininfo_t* pindata;
|
//static maa_pininfo_t* pindata;
|
||||||
static maa_board_t* plat = NULL;
|
static maa_board_t* plat = NULL;
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
@@ -144,34 +144,38 @@ maa_check_i2c(int bus_s)
|
|||||||
return plat->i2c_bus[bus].bus_id;
|
return plat->i2c_bus[bus].bus_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
double
|
maa_spi_bus_t*
|
||||||
maa_check_spi(int bus_s)
|
maa_check_spi(int bus)
|
||||||
{
|
{
|
||||||
if (plat == NULL)
|
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");
|
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 (plat->pins[pos].spi.mux_total > 0)
|
||||||
if (maa_setup_mux_mapped(plat->pins[pos].spi) != MAA_SUCCESS)
|
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 (plat->pins[pos].spi.mux_total > 0)
|
||||||
if (maa_setup_mux_mapped(plat->pins[pos].spi) != MAA_SUCCESS)
|
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 (plat->pins[pos].spi.mux_total > 0)
|
||||||
if (maa_setup_mux_mapped(plat->pins[pos].spi) != MAA_SUCCESS)
|
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*
|
maa_pin_t*
|
||||||
|
|||||||
@@ -44,9 +44,9 @@ struct _spi {
|
|||||||
};
|
};
|
||||||
|
|
||||||
maa_spi_context
|
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) {
|
if(bus < 0) {
|
||||||
fprintf(stderr, "Failed. SPI platform Error\n");
|
fprintf(stderr, "Failed. SPI platform Error\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -55,7 +55,7 @@ maa_spi_init()
|
|||||||
memset(dev, 0, sizeof(struct _spi));
|
memset(dev, 0, sizeof(struct _spi));
|
||||||
|
|
||||||
char path[MAX_SIZE];
|
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);
|
dev->devfd = open(path, O_RDWR);
|
||||||
if (dev->devfd < 0) {
|
if (dev->devfd < 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user