#include "gpio.h"
#include "gpio_registers.h"

void Pins::ConfigureAsOutput(PINS pins)
{
  regWrite(GPIO::IOPM, static_cast<uint32_t> (pins));
}

void Pins::ConfigureAsInput(PINS pins)
{
  regWrite(GPIO::IOPM, static_cast<uint32_t> (~pins));
}

void Pins::SetOutput(PINS pins)
{
  regWrite(GPIO::IOPD, static_cast<uint32_t> (pins));
}

void Pins::ClearOutput(PINS pins)
{
  regWrite(GPIO::IOPD, static_cast<uint32_t> (~pins));
}

void Pins::WriteAllPins(uint32_t pins)
{
    regWrite(GPIO::IOPD, pins);
}


uint32_t Pins::ReadAllPins( void )
{
    return regRead(GPIO::IOPD);
}
