#ifndef __GPIO_H__
#define __GPIO_H__

#include <stdint.h>

enum PINS
{
    GPIO_00                 = (1 <<  0),
    GPIO_01                 = (1 <<  1),
    GPIO_02                 = (1 <<  2),
    GPIO_03                 = (1 <<  3),
    GPIO_04                 = (1 <<  4),
    GPIO_05                 = (1 <<  5),
    GPIO_06                 = (1 <<  6),
    GPIO_07                 = (1 <<  7),
    GPIO_08                 = (1 <<  8),
    GPIO_09                 = (1 <<  9),
    GPIO_10                 = (1 << 10),
    GPIO_11                 = (1 << 11),
    GPIO_12                 = (1 << 12),
    GPIO_13                 = (1 << 13),
    GPIO_14                 = (1 << 14),
    GPIO_15                 = (1 << 15) 
};

class Pins
{
  public:
    static void ConfigureAsOutput(PINS pins);
    static void ConfigureAsInput(PINS pins);
    static void SetOutput(PINS pins);
    static void ClearOutput(PINS pins); 
    static void WriteAllPins(uint32_t pins);
    static uint32_t ReadAllPins( void );
    
};

#endif // __GPIO_H__

