From f6a05b128d86fd4874b1619e0f8d985f104a5231 Mon Sep 17 00:00:00 2001 From: Thomas Ingleby Date: Fri, 12 Dec 2014 12:25:29 +0000 Subject: [PATCH] x86/edison: only toggle tristate on physical pins Signed-off-by: Thomas Ingleby --- src/x86/intel_edison_fab_c.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/x86/intel_edison_fab_c.c b/src/x86/intel_edison_fab_c.c index bf99361..cd424d1 100644 --- a/src/x86/intel_edison_fab_c.c +++ b/src/x86/intel_edison_fab_c.c @@ -96,13 +96,13 @@ mraa_intel_edison_pinmode_change(int sysfs, int mode) mraa_result_t mraa_intel_edison_gpio_dir_pre(mraa_gpio_context dev, gpio_dir_t dir) { - if (mraa_gpio_write(tristate, 0) != MRAA_SUCCESS) { - // call can sometimes fail, this does not actually mean much except - // that the kernel drivers don't always behave very well - syslog(LOG_NOTICE, "edison: Failed to write to tristate"); - } if (dev->phy_pin >= 0) { + if (mraa_gpio_write(tristate, 0) != MRAA_SUCCESS) { + // call can sometimes fail, this does not actually mean much except + // that the kernel drivers don't always behave very well + syslog(LOG_NOTICE, "edison: Failed to write to tristate"); + } int pin = dev->phy_pin; mraa_gpio_context output_e; @@ -131,7 +131,10 @@ mraa_intel_edison_gpio_dir_pre(mraa_gpio_context dev, gpio_dir_t dir) mraa_result_t mraa_intel_edison_gpio_dir_post(mraa_gpio_context dev, gpio_dir_t dir) { - return mraa_gpio_write(tristate, 1); + if (dev->phy_pin >= 0) { + return mraa_gpio_write(tristate, 1); + } + return MRAA_SUCCESS; } mraa_result_t