Private
Public Access
2
0

mraa: Remove global advance_func struct and place it in platform configuration

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Brendan Le Foll
2015-09-03 15:28:36 +01:00
parent fc55088c03
commit 07343e2ee7
19 changed files with 277 additions and 179 deletions

View File

@@ -287,11 +287,22 @@ mraa_banana()
}
}
b->pins = (mraa_pininfo_t*) calloc(b->phy_pin_count, sizeof(mraa_pininfo_t));
b->adv_func = (mraa_adv_func_t*) calloc(1, sizeof(mraa_adv_func_t));
if (b->adv_func == NULL) {
free(b);
return NULL;
}
advance_func->spi_init_pre = &mraa_banana_spi_init_pre;
advance_func->i2c_init_pre = &mraa_banana_i2c_init_pre;
advance_func->gpio_mmap_setup = &mraa_banana_mmap_setup;
b->pins = (mraa_pininfo_t*) calloc(b->phy_pin_count, sizeof(mraa_pininfo_t));
if (b->pins == NULL) {
free(b->adv_func);
free(b);
return NULL;
}
b->adv_func->spi_init_pre = &mraa_banana_spi_init_pre;
b->adv_func->i2c_init_pre = &mraa_banana_i2c_init_pre;
b->adv_func->gpio_mmap_setup = &mraa_banana_mmap_setup;
strncpy(b->pins[0].name, "INVALID", MRAA_PIN_NAME_SIZE);
b->pins[0].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };

View File

@@ -513,11 +513,20 @@ mraa_beaglebone()
b->pwm_min_period = 1;
b->pins = (mraa_pininfo_t*) malloc(sizeof(mraa_pininfo_t) * b->phy_pin_count);
if (b->pins == NULL) {
goto error;
}
advance_func->uart_init_pre = &mraa_beaglebone_uart_init_pre;
advance_func->spi_init_pre = &mraa_beaglebone_spi_init_pre;
advance_func->i2c_init_pre = &mraa_beaglebone_i2c_init_pre;
advance_func->pwm_init_replace = &mraa_beaglebone_pwm_init_replace;
b->adv_func = (mraa_adv_func_t*) calloc(1, sizeof(mraa_adv_func_t));
if (b->adv_func == NULL) {
free(b->pins);
goto error;
}
b->adv_func->uart_init_pre = &mraa_beaglebone_uart_init_pre;
b->adv_func->spi_init_pre = &mraa_beaglebone_spi_init_pre;
b->adv_func->i2c_init_pre = &mraa_beaglebone_i2c_init_pre;
b->adv_func->pwm_init_replace = &mraa_beaglebone_pwm_init_replace;
strncpy(b->pins[0].name, "INVALID", MRAA_PIN_NAME_SIZE);
b->pins[0].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };

View File

@@ -271,13 +271,25 @@ mraa_raspberry_pi()
if (b->phy_pin_count == 0) {
free(b);
syslog(LOG_ERR, "raspberrypi: Failed to detect platform revision");
return NULL;
return NULL;
}
b->pins = (mraa_pininfo_t*) malloc(sizeof(mraa_pininfo_t) * b->phy_pin_count);
advance_func->spi_init_pre = &mraa_raspberry_pi_spi_init_pre;
advance_func->i2c_init_pre = &mraa_raspberry_pi_i2c_init_pre;
advance_func->gpio_mmap_setup = &mraa_raspberry_pi_mmap_setup;
b->adv_func = (mraa_adv_func_t*) calloc(1, sizeof(mraa_adv_func_t));
if (b->adv_func == NULL) {
free(b);
return NULL;
}
b->pins = (mraa_pininfo_t*) malloc(sizeof(mraa_pininfo_t) * b->phy_pin_count);
if (b->pins == NULL) {
free(b->adv_func);
free(b);
return NULL;
}
b->adv_func->spi_init_pre = &mraa_raspberry_pi_spi_init_pre;
b->adv_func->i2c_init_pre = &mraa_raspberry_pi_i2c_init_pre;
b->adv_func->gpio_mmap_setup = &mraa_raspberry_pi_mmap_setup;
strncpy(b->pins[0].name, "INVALID", MRAA_PIN_NAME_SIZE);
b->pins[0].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };