Private
Public Access
2
0

mraa_adv_func: Updated signature of gpio_init_internal_replace()

mraa_adv_func_t->gpio_init_internal_replace() now has mraa_gpio_context
parameter so that override function can access both physical and logical
pin numbers.

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Henry Bruce
2016-01-05 12:00:01 -08:00
committed by Brendan Le Foll
parent 86a0e10c03
commit ed0124cc70
3 changed files with 5 additions and 4 deletions

View File

@@ -32,7 +32,7 @@
#define IS_FUNC_DEFINED(dev, func) (dev != NULL && dev->advance_func != NULL && dev->advance_func->func != NULL)
typedef struct {
mraa_result_t (*gpio_init_internal_replace) (int pin);
mraa_result_t (*gpio_init_internal_replace) (mraa_gpio_context dev, int pin);
mraa_result_t (*gpio_init_pre) (int pin);
mraa_result_t (*gpio_init_post) (mraa_gpio_context dev);

View File

@@ -72,7 +72,7 @@ mraa_gpio_init_internal(mraa_adv_func_t* func_table, int pin)
dev->pin = pin;
if (IS_FUNC_DEFINED(dev, gpio_init_internal_replace)) {
status = dev->advance_func->gpio_init_internal_replace(pin);
status = dev->advance_func->gpio_init_internal_replace(dev, pin);
if (status == MRAA_SUCCESS)
return dev;
else
@@ -165,7 +165,8 @@ mraa_gpio_init(int pin)
syslog(LOG_CRIT, "gpio: mraa_gpio_init_raw(%d) returned error", pin);
return NULL;
}
r->phy_pin = pin;
if (r->phy_pin == -1)
r->phy_pin = pin;
if (IS_FUNC_DEFINED(r, gpio_init_post)) {
mraa_result_t ret = r->advance_func->gpio_init_post(r);

View File

@@ -400,7 +400,7 @@ mraa_ftdi_ft4222_i2c_stop(mraa_i2c_context dev)
/******************* GPIO functions *******************/
static mraa_result_t
mraa_ftdi_ft4222_gpio_init_internal_replace(int pin)
mraa_ftdi_ft4222_gpio_init_internal_replace(mraa_gpio_context dev, int pin)
{
if ((pin - numI2cGpioExpanderPins) == 0 || (pin - numI2cGpioExpanderPins) == 1) {
syslog(LOG_NOTICE, "Closing I2C interface to enable GPIO%d\n", pin);