]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/baylibre-acme/gpio.c
output/csv: use intermediate time_t var, silence compiler warning
[libsigrok.git] / src / hardware / baylibre-acme / gpio.c
index 93daff7b2636425bf1bd8418609c72e8ba19f110..d86d24113b9b3c7fe647a4f1733f64f4d0f3feee 100644 (file)
@@ -17,6 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <glib.h>
 #include <glib/gstdio.h>
 #include <unistd.h>
@@ -63,6 +64,10 @@ SR_PRIV int sr_gpio_export(unsigned gpio)
        if (exported)
                return 0; /* Already exported. */
 
+       status = sr_gpio_set_direction(gpio, GPIO_DIR_OUT);
+       if (status < 0)
+               return status;
+
        buf = g_string_sized_new(16);
        g_string_printf(buf, "%u\n", gpio);
        status = open_and_write("/sys/class/gpio/export", buf->str);
@@ -142,10 +147,6 @@ SR_PRIV int sr_gpio_setval_export(int gpio, int value)
        if (status < 0)
                return status;
 
-       status = sr_gpio_set_direction(gpio, GPIO_DIR_OUT);
-       if (status < 0)
-               return status;
-
        status = sr_gpio_set_value(gpio, value);
        if (status < 0)
                return status;
@@ -161,9 +162,5 @@ SR_PRIV int sr_gpio_getval_export(int gpio)
        if (status < 0)
                return status;
 
-       status = sr_gpio_set_direction(gpio, GPIO_DIR_IN);
-       if (status < 0)
-               return status;
-
        return sr_gpio_get_value(gpio);
 }