From ef4bdeebaa6cb809512a2bdeea91926169fddfea Mon Sep 17 00:00:00 2001 From: Thomas Ingleby Date: Mon, 5 May 2014 20:13:58 +0100 Subject: [PATCH] maa: Update functions within maa to use new api. * Use new board definitions. Signed-off-by: Thomas Ingleby --- src/intel_galileo_rev_d.c | 13 ++++++------ src/maa.c | 43 +++++++++++++++++++++++++-------------- 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/src/intel_galileo_rev_d.c b/src/intel_galileo_rev_d.c index 2304da9..03ec721 100644 --- a/src/intel_galileo_rev_d.c +++ b/src/intel_galileo_rev_d.c @@ -62,7 +62,7 @@ maa_intel_galileo_rev_d() 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].capabilites = (maa_pincapabilities_t) {1,1,1,1,0,0,0}; b->pins[3].gpio.pinmap = 18; @@ -73,7 +73,7 @@ maa_intel_galileo_rev_d() 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].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,0,0}; b->pins[4].gpio.pinmap = 28; @@ -86,7 +86,7 @@ maa_intel_galileo_rev_d() 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].gpio.pinmap = 24; b->pins[6].capabilites = (maa_pincapabilities_t) {1,1,1,0,0,0,0}; @@ -109,7 +109,6 @@ maa_intel_galileo_rev_d() b->pins[9].capabilites = (maa_pincapabilities_t) {1,1,1,0,0,0,0}; b->pins[9].gpio.pinmap = 19; b->pins[9].gpio.mux_total = 0; - strncpy(b->pins[10].name, "IO10", 8); b->pins[10].capabilites = (maa_pincapabilities_t) {1,1,1,0,1,0,0}; @@ -210,13 +209,13 @@ maa_intel_galileo_rev_d() b->pins[17].aio.mux[0].value = 0; strncpy(b->pins[18].name, "A4", 8); - b->pins[18].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,1,1}; + b->pins[18].capabilites = (maa_pincapabilities_t) {1,1,0,0,0,1,1}; 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].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; @@ -235,7 +234,7 @@ maa_intel_galileo_rev_d() 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].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; diff --git a/src/maa.c b/src/maa.c index 97f7619..971c239 100644 --- a/src/maa.c +++ b/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; }