#ifndef __PIN_CONFIGURATION_H__
#define __PIN_CONFIGURATION_H__

#include "gpio.h"
#include "pin_names.h"
#include "pin_functions.h"

typedef struct {
	PinNames			name;
	uint32_t			options;
} Pin;

void ConfigureAllPins(Pin pt[]) {
	for (uint32_t i = 0; pt[i].name != END_OF_PINS; i++) {
		uint32_t port = pt[i].name >> 4;
		GPIO* gpio = reinterpret_cast<GPIO*>(GPIOA_BASE + (port * sizeof(GPIO)));
		gpio->ConfigurePin(pt[i].name, pt[i].options);
	}
}

#endif // __PIN_CONFIGURATION_H__
