#pragma once
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
#include "common.h"
-#include "mraa_adv_func.h"
#include "mraa_internal_types.h"
+ extern mraa_adv_func advance_func;
+
/** Setup gpio
*
* Will check input is valid for gpio and will also setup required multiplexers.
*/
mraa_result_t mraa_swap_complex_gpio(int pin, int out);
+/** Setup uart muxes to exposes the pins physically.
+ *
+ * @param index of the uart in the board definition to expose physically
+ * @return mraa_result_t of operation
+ */
+mraa_result_t mraa_setup_uart(int index);
++
+ #ifdef __cplusplus
+ }
+ #endif
mraa_gpio_context
mraa_gpio_init_raw(int pin)
{
+ if (advance_func.gpio_init_pre != NULL) {
+ printf("Actually entering\n");
+ if (advance_func.gpio_init_pre(pin) != MRAA_SUCCESS)
+ return NULL;
+ }
++
if (pin < 0)
return NULL;
mraa_result_t
mraa_gpio_dir(mraa_gpio_context dev, gpio_dir_t dir)
{
+ if (advance_func.gpio_dir_replace != NULL)
+ return advance_func.gpio_dir_replace(dev,dir);
+ if (advance_func.gpio_dir_pre != NULL) {
+ mraa_result_t pre_ret = (advance_func.gpio_dir_pre(dev,dir));
+ if(pre_ret != MRAA_SUCCESS)
+ return pre_ret;
+ }
++
if (dev == NULL) {
return MRAA_ERROR_INVALID_HANDLE;
}