#ifndef BASE_GPIO_H #define BASE_GPIO_H #include "base/Peripheral.h" #include "base/defines_gpio.h" namespace base { class Gpio : public base::Peripheral { protected: public: static const char* name(int n); Gpio(base::Board* board); virtual ~Gpio(); int setSyncBaud(int gpio_nr, uint32_t ratediv); int setSyncBaud(int gpio_nr, uint32_t offset, uint32_t even, uint32_t odd); int getSyncBaud(int gpio_nr, uint32_t& ratediv); int getSyncBaud(int gpio_nr, uint32_t& offset, uint32_t& even, uint32_t& odd); int setSyncScale(uint32_t val); int getSyncScale(uint32_t& val); int getConfig(uint32_t& mask); int setConfig(uint32_t mask); int setConfig(int gpio_nr, bool riseedge, bool falledge, bool throttled, bool extrafunc, bool altin); static bool packConfig(uint32_t& mask, int gpio_nr, bool riseedge, bool falledge, bool throttled, bool extrafunc, bool altin); static bool unpackConfig(uint32_t mask, int gpio_nr, bool& riseedge, bool& falledge, bool& throttled, bool& extrafunc, bool& altin); static void addAddrMap(base::Board* board); }; } #endif