#ifndef GIO_H_
#define GIO_H_
-#include "drv/digital_io.h"
+#include "types.h"
#define RPP_GIO_PORT_GIOA 0x2
#define RPP_GIO_PORT_GIOB 0x4
int8_t rpp_gio_init(uint32_t init_ports);
+int8_t rpp_gio_set_val(const char* pin_name, uint8_t value);
+
+int8_t rpp_gio_get_val(const char* pin_name);
+
+int8_t rpp_gio_set_output(const char* pin_name, uint8_t value);
+
+int8_t rpp_gio_set_input(const char* pin_name);
+
+int8_t rpp_gio_set_push_pull(const char* pin_name, boolean_t pull_up);
+
+int8_t rpp_gio_set_open_drain(const char* pin_name);
+
+int8_t rpp_gio_set_pull_up(const char* pin_name);
+
+int8_t rpp_gio_set_pull_down(const char* pin_name);
+
+boolean_t rpp_gio_is_dir_output(const char* pin_name);
+
+boolean_t rpp_gio_is_push_pull(const char* pin_name);
+
+boolean_t rpp_gio_is_pull_up(const char* pin_name);
+
+uint32_t rpp_gio_get_pin_cnt();
+
+int8_t rpp_gio_get_pin_names(const char** pin_names, uint8_t max_names_cnt);
+
+int8_t rpp_port_set_val(const char* port_name, uint8_t port_num_vals, const uint32_t* values);
+
+int8_t rpp_port_get_val(const char* port_name, uint8_t port_num_vals, uint32_t* values);
+
+int32_t rpp_port_get_pin_cnt(const char* port_name);
+
+int32_t rpp_port_get_port_cnt();
+
+int8_t rpp_port_get_port_names(const char** port_names, uint8_t max_names_cnt);
+
+int8_t rpp_port_get_interface_type(const char* port_name);
+
+
#endif /* GIO_H_ */