#include "hal/hal.h"
-extern gioPORT_t *port_id_map[MAX_PORT_CNT];
-extern pin_map_element_t pin_map[MAX_PIN_CNT];
+uint8_t hal_gpio_get_pin_cnt();
+pin_map_element_t* hal_gpio_get_pin_map();
/**
* Get port base assigned to port number
#include "hal/hal.h"
+extern gioPORT_t *port_id_map[MAX_PORT_CNT];
+extern pin_map_element_t pin_map[MAX_PIN_CNT];
+
+uint8_t hal_gpio_get_pin_cnt() {
+ return MAX_PIN_CNT;
+}
+
+pin_map_element_t* hal_gpio_get_pin_map() {
+ return pin_map;
+}
+
gioPORT_t *hal_gpio_get_port_base(uint32_t port_num)
{
return port_id_map[port_num];
unsigned pin;
gioREG->GCR0 = 1; // Bring GIO out of reset
+ pin_map_element_t* pin_map = hal_gpio_get_pin_map();
- for (pin = 0; pin < sizeof(pin_map)/sizeof(*pin_map); pin++) {
+
+ for (pin = 0; pin < hal_gpio_get_pin_cnt(); pin++) {
int port_num = hal_gpio_pin_get_port_num(pin_map[pin].pin_desc);
if ((init_ports & (1 << port_num)) &&
!(ports_initialized & (1 << port_num)))