intel_galileo_rev_g: remove platform code from core
* Using hook functionality swap_complex is now done in the pre direction * set area. Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
This commit is contained in:
@@ -402,11 +402,9 @@ mraa_gpio_dir(mraa_gpio_context dev, gpio_dir_t dir)
|
||||
|
||||
char bu[MAX_SIZE];
|
||||
int length;
|
||||
int out_switch = 0;
|
||||
switch(dir) {
|
||||
case MRAA_GPIO_OUT:
|
||||
length = snprintf(bu, sizeof(bu), "out");
|
||||
out_switch = 1;
|
||||
break;
|
||||
case MRAA_GPIO_IN:
|
||||
length = snprintf(bu, sizeof(bu), "in");
|
||||
@@ -416,12 +414,6 @@ mraa_gpio_dir(mraa_gpio_context dev, gpio_dir_t dir)
|
||||
return MRAA_ERROR_FEATURE_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
if (dev->phy_pin >= 0) {
|
||||
mraa_result_t swap_res = mraa_swap_complex_gpio(dev->phy_pin, out_switch);
|
||||
if (swap_res != MRAA_SUCCESS)
|
||||
return swap_res;
|
||||
}
|
||||
|
||||
if (write(direction, bu, length*sizeof(char)) == -1) {
|
||||
close(direction);
|
||||
return MRAA_ERROR_INVALID_RESOURCE;
|
||||
|
||||
@@ -29,6 +29,29 @@
|
||||
#include "common.h"
|
||||
#include "intel_galileo_rev_g.h"
|
||||
|
||||
mraa_result_t
|
||||
mraa_intel_galileo_gen2_dir_pre(mraa_gpio_context dev, gpio_dir_t dir)
|
||||
{
|
||||
if (dev->phy_pin >= 0) {
|
||||
int pin = dev->phy_pin;
|
||||
if (plat->pins[pin].gpio.complex_cap.complex_pin != 1)
|
||||
return MRAA_SUCCESS;
|
||||
|
||||
if (plat->pins[pin].gpio.complex_cap.output_en == 1) {
|
||||
mraa_gpio_context output_e;
|
||||
output_e = mraa_gpio_init_raw(plat->pins[pin].gpio.output_enable);
|
||||
if (mraa_gpio_dir(output_e, MRAA_GPIO_OUT) != MRAA_SUCCESS)
|
||||
return MRAA_ERROR_INVALID_RESOURCE;
|
||||
int output_val = 1;
|
||||
if (dir == MRAA_GPIO_OUT)
|
||||
output_val = 0;
|
||||
if (mraa_gpio_write(output_e, output_val) != MRAA_SUCCESS)
|
||||
return MRAA_ERROR_INVALID_RESOURCE;
|
||||
}
|
||||
}
|
||||
return MRAA_SUCCESS;
|
||||
}
|
||||
|
||||
mraa_board_t*
|
||||
mraa_intel_galileo_gen2()
|
||||
{
|
||||
@@ -42,6 +65,8 @@ mraa_intel_galileo_gen2()
|
||||
b->adc_raw = 12;
|
||||
b->adc_supported = 10;
|
||||
|
||||
advance_func->gpio_dir_pre = &mraa_intel_galileo_gen2_dir_pre;
|
||||
|
||||
b->pins = (mraa_pininfo_t*) malloc(sizeof(mraa_pininfo_t)*MRAA_INTEL_GALILEO_GEN_2_PINCOUNT);
|
||||
|
||||
strncpy(b->pins[0].name, "IO0", 8);
|
||||
|
||||
37
src/mraa.c
37
src/mraa.c
@@ -383,43 +383,6 @@ mraa_setup_mmap_gpio(int pin)
|
||||
return ret;
|
||||
}
|
||||
|
||||
mraa_result_t
|
||||
mraa_swap_complex_gpio(int pin, int out)
|
||||
{
|
||||
if (plat == NULL)
|
||||
return MRAA_ERROR_INVALID_PLATFORM;
|
||||
|
||||
switch (platform_type) {
|
||||
case MRAA_INTEL_GALILEO_GEN2:
|
||||
if (plat->pins[pin].gpio.complex_cap.complex_pin != 1)
|
||||
return MRAA_SUCCESS;
|
||||
if (plat->pins[pin].gpio.complex_cap.output_en == 1) {
|
||||
mraa_gpio_context output_e;
|
||||
output_e = mraa_gpio_init_raw(plat->pins[pin].gpio.output_enable);
|
||||
if (mraa_gpio_dir(output_e, MRAA_GPIO_OUT) != MRAA_SUCCESS)
|
||||
return MRAA_ERROR_INVALID_RESOURCE;
|
||||
int output_val;
|
||||
if (plat->pins[pin].gpio.complex_cap.output_en_high == 1)
|
||||
output_val = out;
|
||||
else
|
||||
if (out == 1)
|
||||
output_val = 0;
|
||||
else
|
||||
output_val = 1;
|
||||
if (mraa_gpio_write(output_e, output_val) != MRAA_SUCCESS)
|
||||
return MRAA_ERROR_INVALID_RESOURCE;
|
||||
}
|
||||
//if (plat->pins[pin].gpio.complex_cap.pullup_en == 1) {
|
||||
// mraa_gpio_context pullup_e;
|
||||
// pullup_e = mraa_gpio_init_raw(plat->pins[pin].gpio.pullup_enable);
|
||||
// if (mraa_gpio_mode(pullup_e, MRAA_GPIO_HIZ) != MRAA_SUCCESS)
|
||||
// return MRAA_ERROR_INVALID_RESOURCE;
|
||||
//}
|
||||
break;
|
||||
default: return MRAA_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
mraa_platform_t mraa_get_platform_type()
|
||||
{
|
||||
return platform_type;
|
||||
|
||||
Reference in New Issue
Block a user