Merge branch 'master' of github.com:tingleby/maa into tingleby-master
This commit is contained in:
62
api/maa.h
62
api/maa.h
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Author: Brendan Le Foll
|
||||
*
|
||||
* Author: Brendan Le Foll <brendan.le.foll@intel.com>
|
||||
* Author: Thomas Ingleby <thomas.c.ingleby@intel.com>
|
||||
* Copyright © 2014 Intel Corporation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
@@ -82,35 +82,75 @@ typedef struct {
|
||||
/*@{*/
|
||||
unsigned int pin; /**< Raw GPIO pin id */
|
||||
unsigned int value; /**< Raw GPIO value */
|
||||
/*@}*/
|
||||
} maa_mux_t;
|
||||
|
||||
/**
|
||||
* A Strucutre representing a singular I/O pin. i.e GPIO/PWM
|
||||
*/
|
||||
typedef struct {
|
||||
/*@{*/
|
||||
unsigned int pinmap;
|
||||
unsigned int parent_id;
|
||||
unsigned int mux_total;
|
||||
maa_mux_t mux[6];
|
||||
/*@}*/
|
||||
} maa_pin_t;
|
||||
|
||||
/**
|
||||
* A Structure representing a physical Pin.
|
||||
*/
|
||||
typedef struct {
|
||||
/*@{*/
|
||||
char name[8]; /**< Pin's real world name */
|
||||
unsigned int pin; /**< Pin ID */
|
||||
int parent_id; /**< IO Parent ID*/
|
||||
maa_pincapabilities_t capabilites; /**< Pin Capabiliites */
|
||||
maa_mux_t mux[4]; /**< Multiplexer array */
|
||||
unsigned int mux_total; /**< Total Multiplexors required */
|
||||
maa_pin_t gpio; /**< GPIO structure */
|
||||
maa_pin_t pwm; /**< PWM structure */
|
||||
maa_pin_t aio; /**< Anaglog Pin */
|
||||
maa_pin_t fast_gpio; /**< Fast GPIO */
|
||||
maa_pin_t i2c; /**< i2c bus/pin */
|
||||
maa_pin_t spi; /**< spi bus/pin */
|
||||
/*@}*/
|
||||
} maa_pininfo_t;
|
||||
|
||||
/**
|
||||
* A Structure representing the physical properties of a i2c bus.
|
||||
*/
|
||||
typedef struct {
|
||||
/*@{*/
|
||||
unsigned int bus_id; /**< ID as exposed in the system */
|
||||
unsigned int scl; /**< i2c SCL */
|
||||
unsigned int sda; /**< i2c SDA */
|
||||
/*@}*/
|
||||
} maa_i2c_bus_t;
|
||||
|
||||
/**
|
||||
* A Structure representing the physical properties of a spi bus.
|
||||
*/
|
||||
typedef struct {
|
||||
/*@{*/
|
||||
double bus_id; /**< The Bus ID as exposed to the system. */
|
||||
maa_boolean_t three_wire; /**< Is the bus only a three wire system */
|
||||
unsigned int sclk; /**< Serial Clock */
|
||||
unsigned int mosi; /**< Master Out, Slave In. */
|
||||
unsigned int miso; /**< Master In, Slave Out. */
|
||||
unsigned int cs; /**< Chip Select, used when the board is a spi slave */
|
||||
/*@}*/
|
||||
} maa_spi_bus_t;
|
||||
|
||||
/**
|
||||
* A Structure representing a platform/board.
|
||||
*/
|
||||
typedef struct {
|
||||
/*@{*/
|
||||
unsigned int phy_pin_count; /**< The Total IO pins on board */
|
||||
unsigned int gpio_count; /**< GPIO Count */
|
||||
unsigned int aio_count; /**< Analog In Count */
|
||||
unsigned int pwm_count; /**< PWM Count */
|
||||
unsigned int aio_count; /**< Analog side Count */
|
||||
unsigned int i2c_bus_count; /**< Usable i2c Count */
|
||||
unsigned int i2c_bus[8]; /**< Array of i2c */
|
||||
maa_i2c_bus_t i2c_bus[6]; /**< Array of i2c */
|
||||
unsigned int def_i2c_bus; /**< Position in array of default i2c bus */
|
||||
unsigned int spi_bus_count; /**< Usable spi Count */
|
||||
double spi_bus[8]; /**< Array of spi */
|
||||
maa_spi_bus_t spi_bus[6]; /**< Array of spi */
|
||||
unsigned int def_spi_bus; /**< Position in array of defult spi bus */
|
||||
maa_pininfo_t* pins; /**< Pointer to pin array */
|
||||
/*@}*/
|
||||
} maa_board_t;
|
||||
|
||||
@@ -34,193 +34,232 @@ maa_intel_galileo_rev_d()
|
||||
if(b == NULL)
|
||||
return NULL;
|
||||
|
||||
b->phy_pin_count = 20;
|
||||
b->gpio_count = 14;
|
||||
b->aio_count = 6;
|
||||
b->pwm_count = 5;
|
||||
|
||||
b->i2c_bus_count = 1;
|
||||
b->i2c_bus[0] = 0;
|
||||
|
||||
b->spi_bus_count = 1;
|
||||
b->spi_bus[0] = 1.0;
|
||||
|
||||
b->pins = (maa_pininfo_t*) malloc(sizeof(maa_pininfo_t)*25);
|
||||
|
||||
//GPIO
|
||||
//GPIO IO0 - IO10
|
||||
strncpy(b->pins[0].name, "IO0", 8);
|
||||
b->pins[0].pin = 50;
|
||||
b->pins[0].parent_id = 0;
|
||||
b->pins[0].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,0,0};
|
||||
b->pins[0].mux_total = 1;
|
||||
b->pins[0].mux[0].pin = 40;
|
||||
b->pins[0].mux[0].value = 1;
|
||||
b->pins[0].gpio.pinmap = 50;
|
||||
b->pins[0].gpio.parent_id = 0;
|
||||
b->pins[0].gpio.mux_total = 1;
|
||||
b->pins[0].gpio.mux[0].pin = 40;
|
||||
b->pins[0].gpio.mux[0].value = 1;
|
||||
|
||||
strncpy(b->pins[1].name, "IO1", 8);
|
||||
b->pins[1].pin = 51;
|
||||
b->pins[1].parent_id = 0;
|
||||
b->pins[1].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,0,0};
|
||||
b->pins[1].mux_total = 1;
|
||||
b->pins[1].mux[0].pin = 41;
|
||||
b->pins[1].mux[0].value = 1;
|
||||
b->pins[1].gpio.pinmap = 51;
|
||||
b->pins[1].gpio.mux_total = 1;
|
||||
b->pins[1].gpio.mux[0].pin = 41;
|
||||
b->pins[1].gpio.mux[0].value = 1;
|
||||
|
||||
strncpy(b->pins[2].name, "IO2", 8);
|
||||
b->pins[2].pin = 32;
|
||||
b->pins[2].parent_id = 0;
|
||||
b->pins[2].capabilites = (maa_pincapabilities_t) {1,1,0,1,0,0,0};
|
||||
b->pins[2].mux_total = 1;
|
||||
b->pins[2].mux[0].pin = 31;
|
||||
b->pins[2].mux[0].value = 1;
|
||||
b->pins[2].gpio.pinmap = 32;
|
||||
b->pins[2].gpio.mux_total = 1;
|
||||
b->pins[2].gpio.mux[0].pin = 31;
|
||||
b->pins[2].gpio.mux[0].value = 1;
|
||||
|
||||
strncpy(b->pins[3].name, "IO3", 8);
|
||||
b->pins[3].pin = 18;
|
||||
b->pins[3].parent_id = 0;
|
||||
b->pins[3].capabilites = (maa_pincapabilities_t) {1,1,1,1,0,0,0};
|
||||
b->pins[3].mux_total = 1;
|
||||
b->pins[3].mux[0].pin = 30;
|
||||
b->pins[3].mux[0].value = 1;
|
||||
b->pins[3].gpio.pinmap = 18;
|
||||
b->pins[3].gpio.mux_total = 1;
|
||||
b->pins[3].gpio.mux[0].pin = 30;
|
||||
b->pins[3].gpio.mux[0].value = 1;
|
||||
b->pins[3].fast_gpio.pinmap = 15;
|
||||
b->pins[3].fast_gpio.mux_total = 1;
|
||||
b->pins[3].fast_gpio.mux[0].pin = 30;
|
||||
b->pins[3].fast_gpio.mux[0].value = 0;
|
||||
|
||||
strncpy(b->pins[4].name, "IO4", 8);
|
||||
b->pins[4].pin = 28;
|
||||
b->pins[4].parent_id = 0;
|
||||
b->pins[4].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,0,0};
|
||||
b->pins[4].mux_total = 0;
|
||||
b->pins[4].gpio.pinmap = 28;
|
||||
b->pins[4].gpio.mux_total = 0;
|
||||
|
||||
strncpy(b->pins[5].name, "IO5", 8);
|
||||
b->pins[5].pin = 17;
|
||||
b->pins[5].parent_id = 0;
|
||||
b->pins[5].capabilites = (maa_pincapabilities_t) {1,1,1,0,0,0,0};
|
||||
b->pins[5].mux_total = 0;
|
||||
b->pins[5].gpio.pinmap = 17;
|
||||
b->pins[5].gpio.mux_total = 0;
|
||||
b->pins[5].pwm.pinmap = 5;
|
||||
b->pins[5].pwm.parent_id = 0;
|
||||
b->pins[5].pwm.mux_total = 0;
|
||||
|
||||
strncpy(b->pins[6].name, "IO6", 8);
|
||||
b->pins[6].pin = 24;
|
||||
b->pins[6].parent_id = 0;
|
||||
b->pins[6].gpio.pinmap = 24;
|
||||
b->pins[6].capabilites = (maa_pincapabilities_t) {1,1,1,0,0,0,0};
|
||||
b->pins[6].mux_total = 0;
|
||||
b->pins[6].gpio.mux_total = 0;
|
||||
b->pins[6].pwm.pinmap = 6;
|
||||
b->pins[6].pwm.parent_id = 0;
|
||||
b->pins[6].pwm.mux_total = 0;
|
||||
|
||||
strncpy(b->pins[7].name, "IO7", 8);
|
||||
b->pins[7].pin = 27;
|
||||
b->pins[7].parent_id = 0;
|
||||
b->pins[7].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,0,0};
|
||||
b->pins[7].mux_total = 0;
|
||||
b->pins[7].gpio.pinmap = 27;
|
||||
b->pins[7].gpio.mux_total = 0;
|
||||
|
||||
strncpy(b->pins[8].name, "IO8", 8);
|
||||
b->pins[8].pin = 26;
|
||||
b->pins[8].parent_id = 0;
|
||||
b->pins[8].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,0,0};
|
||||
b->pins[8].mux_total = 0;
|
||||
b->pins[8].gpio.pinmap = 26;
|
||||
b->pins[8].gpio.mux_total = 0;
|
||||
|
||||
strncpy(b->pins[9].name, "IO9", 8);
|
||||
b->pins[9].pin = 19;
|
||||
b->pins[9].parent_id = 0;
|
||||
b->pins[9].capabilites = (maa_pincapabilities_t) {1,1,1,0,0,0,0};
|
||||
b->pins[9].mux_total = 0;
|
||||
b->pins[9].gpio.pinmap = 19;
|
||||
b->pins[9].gpio.mux_total = 0;
|
||||
|
||||
strncpy(b->pins[10].name, "IO10", 8);
|
||||
b->pins[10].pin = 16;
|
||||
b->pins[10].parent_id = 0;
|
||||
b->pins[10].capabilites = (maa_pincapabilities_t) {1,1,1,0,1,0,0};
|
||||
b->pins[10].mux_total = 1;
|
||||
b->pins[10].mux[0].pin = 42;
|
||||
b->pins[10].mux[0].value = 1;
|
||||
b->pins[10].gpio.pinmap = 16;
|
||||
b->pins[10].gpio.mux_total = 1;
|
||||
b->pins[10].gpio.mux[0].pin = 42;
|
||||
b->pins[10].gpio.mux[0].value = 1;
|
||||
b->pins[10].pwm.pinmap = 7;
|
||||
b->pins[10].pwm.parent_id = 0;
|
||||
b->pins[10].pwm.mux_total = 1;
|
||||
b->pins[10].pwm.mux[0].pin = 42;
|
||||
b->pins[10].pwm.mux[0].value = 1;
|
||||
b->pins[10].spi.pinmap = 1;
|
||||
b->pins[10].spi.mux_total = 1;
|
||||
b->pins[10].spi.mux[0].pin = 42;
|
||||
b->pins[10].spi.mux[0].value = 0;
|
||||
|
||||
strncpy(b->pins[11].name, "IO11", 8);
|
||||
b->pins[11].pin = 25;
|
||||
b->pins[11].parent_id = 0;
|
||||
b->pins[11].capabilites = (maa_pincapabilities_t) {1,1,1,0,1,0,0};
|
||||
b->pins[11].mux_total = 1;
|
||||
b->pins[11].mux[0].pin = 43;
|
||||
b->pins[11].mux[0].value = 1;
|
||||
b->pins[11].gpio.pinmap = 25;
|
||||
b->pins[11].gpio.mux_total = 1;
|
||||
b->pins[11].gpio.mux[0].pin = 43;
|
||||
b->pins[11].gpio.mux[0].value = 1;
|
||||
b->pins[11].pwm.pinmap = 4;
|
||||
b->pins[11].pwm.parent_id = 0;
|
||||
b->pins[11].pwm.mux_total = 1;
|
||||
b->pins[11].pwm.mux[0].pin = 43;
|
||||
b->pins[11].gpio.mux[0].value = 1;
|
||||
b->pins[11].spi.pinmap = 1;
|
||||
b->pins[11].spi.mux_total = 1;
|
||||
b->pins[11].spi.mux[0].pin = 43;
|
||||
b->pins[11].spi.mux[0].value = 0;
|
||||
|
||||
strncpy(b->pins[12].name, "IO12", 8);
|
||||
b->pins[12].pin = 38;
|
||||
b->pins[12].parent_id = 0;
|
||||
b->pins[12].capabilites = (maa_pincapabilities_t) {1,1,1,0,1,0,0};
|
||||
b->pins[12].mux_total = 1;
|
||||
b->pins[12].mux[0].pin = 54;
|
||||
b->pins[12].mux[0].value = 1;
|
||||
b->pins[12].capabilites = (maa_pincapabilities_t) {1,1,0,0,1,0,0};
|
||||
b->pins[12].gpio.pinmap = 38;
|
||||
b->pins[12].gpio.mux_total = 1;
|
||||
b->pins[12].gpio.mux[0].pin = 54;
|
||||
b->pins[12].gpio.mux[0].value = 1;
|
||||
b->pins[12].spi.pinmap = 1;
|
||||
b->pins[12].spi.mux_total = 1;
|
||||
b->pins[12].spi.mux[0].pin = 54;
|
||||
b->pins[12].spi.mux[0].value = 0;
|
||||
|
||||
strncpy(b->pins[13].name, "IO13", 8);
|
||||
b->pins[13].pin = 39;
|
||||
b->pins[13].parent_id = 0;
|
||||
b->pins[13].capabilites = (maa_pincapabilities_t) {1,1,1,0,1,0,0};
|
||||
b->pins[13].mux_total = 1;
|
||||
b->pins[13].mux[0].pin = 55;
|
||||
b->pins[13].mux[0].value = 1;
|
||||
b->pins[13].capabilites = (maa_pincapabilities_t) {1,1,0,0,1,0,0};
|
||||
b->pins[13].gpio.pinmap = 39;
|
||||
b->pins[13].gpio.mux_total = 1;
|
||||
b->pins[13].gpio.mux[0].pin = 55;
|
||||
b->pins[13].gpio.mux[0].value = 1;
|
||||
b->pins[13].spi.pinmap = 1;
|
||||
b->pins[13].spi.mux_total = 1;
|
||||
b->pins[13].spi.mux[0].pin = 55;
|
||||
b->pins[13].spi.mux[0].value = 0;
|
||||
|
||||
//Analog in mapping and mux.
|
||||
strncpy(b->pins[14].name, "A0", 8);
|
||||
b->pins[14].pin = 0;
|
||||
b->pins[14].parent_id = 0;
|
||||
b->pins[14].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,0,1};
|
||||
b->pins[14].mux_total = 1;
|
||||
b->pins[14].mux[0].pin = 37;
|
||||
b->pins[14].mux[0].value = 0;
|
||||
b->pins[14].gpio.pinmap = 44;
|
||||
b->pins[14].gpio.mux_total = 1;
|
||||
b->pins[14].gpio.mux[0].pin = 37;
|
||||
b->pins[14].gpio.mux[0].value = 1;
|
||||
b->pins[14].aio.pinmap = 0;
|
||||
b->pins[14].aio.mux_total = 1;
|
||||
b->pins[14].aio.mux[0].pin = 37;
|
||||
b->pins[14].aio.mux[0].value = 0;
|
||||
|
||||
strncpy(b->pins[15].name, "A1", 8);
|
||||
b->pins[15].pin = 1;
|
||||
b->pins[15].parent_id = 0;
|
||||
b->pins[15].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,0,1};
|
||||
b->pins[15].mux_total = 1;
|
||||
b->pins[15].mux[0].pin = 36;
|
||||
b->pins[15].mux[0].value = 0;
|
||||
b->pins[15].gpio.pinmap = 45;
|
||||
b->pins[15].gpio.mux_total = 1;
|
||||
b->pins[15].gpio.mux[0].pin = 36;
|
||||
b->pins[15].gpio.mux[0].value = 1;
|
||||
b->pins[15].aio.pinmap = 1;
|
||||
b->pins[15].aio.mux_total = 1;
|
||||
b->pins[15].aio.mux[0].pin = 36;
|
||||
b->pins[15].aio.mux[0].value = 0;
|
||||
|
||||
strncpy(b->pins[16].name, "A2", 8);
|
||||
b->pins[16].pin = 2;
|
||||
b->pins[16].parent_id = 0;
|
||||
b->pins[16].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,0,1};
|
||||
b->pins[16].mux_total = 1;
|
||||
b->pins[16].mux[0].pin = 23;
|
||||
b->pins[16].mux[0].value = 0;
|
||||
b->pins[16].gpio.pinmap = 46;
|
||||
b->pins[16].gpio.mux_total = 1;
|
||||
b->pins[16].gpio.mux[0].pin = 23;
|
||||
b->pins[16].gpio.mux[0].value = 1;
|
||||
b->pins[16].aio.pinmap = 2;
|
||||
b->pins[16].aio.mux_total = 1;
|
||||
b->pins[16].aio.mux[0].pin = 23;
|
||||
b->pins[16].aio.mux[0].value = 0;
|
||||
|
||||
strncpy(b->pins[17].name, "A3", 8);
|
||||
b->pins[17].pin = 3;
|
||||
b->pins[17].parent_id = 0;
|
||||
b->pins[17].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,0,1};
|
||||
b->pins[17].mux_total = 1;
|
||||
b->pins[17].mux[0].pin = 22;
|
||||
b->pins[17].mux[0].value = 0;
|
||||
b->pins[17].gpio.pinmap = 47;
|
||||
b->pins[17].gpio.mux_total = 1;
|
||||
b->pins[17].gpio.mux[0].pin = 22;
|
||||
b->pins[17].gpio.mux[0].value = 1;
|
||||
b->pins[17].aio.pinmap = 3;
|
||||
b->pins[17].aio.mux_total = 1;
|
||||
b->pins[17].aio.mux[0].pin = 22;
|
||||
b->pins[17].aio.mux[0].value = 0;
|
||||
|
||||
strncpy(b->pins[18].name, "A4", 8);
|
||||
b->pins[18].pin = 4;
|
||||
b->pins[18].parent_id = 0;
|
||||
b->pins[18].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,1,1};
|
||||
b->pins[18].mux_total = 2;
|
||||
b->pins[18].mux[0].pin = 29;
|
||||
b->pins[18].mux[0].value = 1;
|
||||
b->pins[18].mux[1].pin = 21;
|
||||
b->pins[18].mux[1].value = 0;
|
||||
b->pins[18].gpio.pinmap = 48;
|
||||
b->pins[18].gpio.mux_total = 2;
|
||||
b->pins[18].gpio.mux[0].pin = 29;
|
||||
b->pins[18].gpio.mux[0].value = 1;
|
||||
b->pins[18].gpio.mux[1].pin = 21;
|
||||
b->pins[18].gpio.mux[1].value = 1;
|
||||
b->pins[18].i2c.pinmap = 1;
|
||||
b->pins[18].i2c.mux_total = 1;
|
||||
b->pins[18].i2c.mux[0].pin = 29;
|
||||
b->pins[18].i2c.mux[0].value = 0;
|
||||
b->pins[18].aio.pinmap = 4;
|
||||
b->pins[18].aio.mux_total = 2;
|
||||
b->pins[18].aio.mux[0].pin = 29;
|
||||
b->pins[18].aio.mux[0].value = 1;
|
||||
b->pins[18].aio.mux[1].pin = 21;
|
||||
b->pins[18].aio.mux[1].value = 0;
|
||||
|
||||
strncpy(b->pins[19].name, "A5", 8);
|
||||
b->pins[19].pin = 5;
|
||||
b->pins[19].parent_id = 0;
|
||||
b->pins[19].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,1,1};
|
||||
b->pins[19].mux_total = 2;
|
||||
b->pins[19].mux[0].pin = 29;
|
||||
b->pins[19].mux[0].value = 1;
|
||||
b->pins[19].mux[1].pin = 20;
|
||||
b->pins[19].mux[1].value = 0;
|
||||
b->pins[19].gpio.pinmap = 49;
|
||||
b->pins[19].gpio.mux_total = 2;
|
||||
b->pins[19].gpio.mux[0].pin = 29;
|
||||
b->pins[19].gpio.mux[0].value = 1;
|
||||
b->pins[19].gpio.mux[1].pin = 20;
|
||||
b->pins[19].gpio.mux[1].value = 1;
|
||||
b->pins[19].i2c.pinmap = 1;
|
||||
b->pins[19].i2c.mux_total = 1;
|
||||
b->pins[19].i2c.mux[0].pin = 29;
|
||||
b->pins[19].i2c.mux[0].value = 0;
|
||||
b->pins[19].aio.pinmap = 5;
|
||||
b->pins[19].aio.mux_total = 2;
|
||||
b->pins[19].aio.mux[0].pin = 29;
|
||||
b->pins[19].aio.mux[0].value = 1;
|
||||
b->pins[19].aio.mux[1].pin = 20;
|
||||
b->pins[19].aio.mux[1].value = 0;
|
||||
|
||||
strncpy(b->pins[20].name, "I2C", 8);
|
||||
b->pins[20].pin = 0;
|
||||
b->pins[20].parent_id = 0;
|
||||
b->pins[20].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,1,1};
|
||||
b->pins[20].mux_total = 1;
|
||||
b->pins[20].mux[0].pin = 29;
|
||||
b->pins[20].mux[0].value = 0;
|
||||
//BUS DEFINITIONS
|
||||
b->i2c_bus_count = 1;
|
||||
b->def_i2c_bus = 0;
|
||||
b->i2c_bus[0].bus_id = 0;
|
||||
b->i2c_bus[0].sda = 17;
|
||||
b->i2c_bus[0].scl = 18;
|
||||
|
||||
strncpy(b->pins[21].name, "SPI-1.0", 8);
|
||||
b->pins[21].pin = 1;
|
||||
b->pins[21].parent_id = 0;
|
||||
b->pins[21].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,1,1};
|
||||
b->pins[21].mux_total = 4;
|
||||
b->pins[21].mux[0].pin = 42;
|
||||
b->pins[21].mux[0].value = 0;
|
||||
b->pins[21].mux[1].pin = 43;
|
||||
b->pins[21].mux[1].value = 0;
|
||||
b->pins[21].mux[2].pin = 54;
|
||||
b->pins[21].mux[2].value = 0;
|
||||
b->pins[21].mux[3].pin = 55;
|
||||
b->pins[21].mux[3].value = 0;
|
||||
b->spi_bus_count = 1;
|
||||
b->def_spi_bus = 0;
|
||||
b->spi_bus[0].bus_id = 1;
|
||||
b->spi_bus[0].cs = 10;
|
||||
b->spi_bus[0].mosi = 11;
|
||||
b->spi_bus[0].miso = 12;
|
||||
b->spi_bus[0].sclk = 13;
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
43
src/maa.c
43
src/maa.c
@@ -50,7 +50,7 @@ maa_init()
|
||||
}
|
||||
|
||||
static maa_result_t
|
||||
maa_setup_mux_mapped(maa_pininfo_t meta)
|
||||
maa_setup_mux_mapped(maa_pin_t meta)
|
||||
{
|
||||
int mi;
|
||||
for (mi = 0; mi < meta.mux_total; mi++) {
|
||||
@@ -72,12 +72,16 @@ maa_check_gpio(int pin)
|
||||
if (plat == NULL)
|
||||
return -1;
|
||||
|
||||
if (pin < 0 || pin > plat->gpio_count)
|
||||
if (pin < 0 || pin > plat->phy_pin_count)
|
||||
return -1;
|
||||
if (plat->pins[pin].mux_total > 0)
|
||||
if (maa_setup_mux_mapped(plat->pins[pin]) != MAA_SUCCESS)
|
||||
|
||||
if(plat->pins[pin].capabilites.gpio != 1)
|
||||
return -1;
|
||||
|
||||
if (plat->pins[pin].gpio.mux_total > 0)
|
||||
if (maa_setup_mux_mapped(plat->pins[pin].gpio) != MAA_SUCCESS)
|
||||
return -1;
|
||||
return plat->pins[pin].pin;
|
||||
return plat->pins[pin].gpio.pinmap;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
@@ -91,15 +95,18 @@ maa_check_aio(int aio)
|
||||
|
||||
int pin = aio + plat->gpio_count;
|
||||
|
||||
if (plat->pins[pin].mux_total > 0)
|
||||
if (maa_setup_mux_mapped(plat->pins[pin]) != MAA_SUCCESS)
|
||||
return -2;
|
||||
if(plat->pins[pin].capabilites.aio != 1)
|
||||
return -1;
|
||||
|
||||
if (plat->pins[pin].aio.mux_total > 0)
|
||||
if (maa_setup_mux_mapped(plat->pins[pin].aio) != MAA_SUCCESS)
|
||||
return -1;
|
||||
return plat->pins[pin].aio.pinmap;
|
||||
|
||||
return plat->pins[pin].pin;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
maa_check_i2c(int bus)
|
||||
maa_check_i2c(int bus_s)
|
||||
{
|
||||
if (plat == NULL)
|
||||
return -3;
|
||||
@@ -108,11 +115,17 @@ maa_check_i2c(int bus)
|
||||
fprintf(stderr, "No i2c buses defined in platform");
|
||||
return -1;
|
||||
}
|
||||
int pin = (plat->gpio_count + plat->aio_count) + bus;
|
||||
int bus = 0;
|
||||
|
||||
if (plat->pins[pin].mux_total > 0)
|
||||
if (maa_setup_mux_mapped(plat->pins[pin]) != MAA_SUCCESS)
|
||||
return -2;
|
||||
int pos = plat->i2c_bus[bus].sda;
|
||||
if (plat->pins[pos].i2c.mux_total > 0)
|
||||
if (maa_setup_mux_mapped(plat->pins[pos].i2c) != MAA_SUCCESS)
|
||||
return -2;
|
||||
|
||||
return plat->pins[pin].pin;
|
||||
pos = plat->i2c_bus[bus].scl;
|
||||
if (plat->pins[pos].i2c.mux_total > 0)
|
||||
if (maa_setup_mux_mapped(plat->pins[pos].i2c) != MAA_SUCCESS)
|
||||
return -2;
|
||||
|
||||
return plat->i2c_bus[bus].bus_id;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user