/* * gpio.h * * Created on: 29.07.2018 * Author: eyck */ #ifndef GPIO_H_ #define GPIO_H_ #include #include template class gpio_regs { public: static inline uint32_t& value_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_INPUT_VAL); } static inline uint32_t& input_en_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_INPUT_EN); } static inline uint32_t& output_en_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_OUTPUT_EN); } static inline uint32_t& port_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_OUTPUT_VAL); } static inline uint32_t& pue_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_PULLUP_EN); } static inline uint32_t& ds_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_DRIVE); } static inline uint32_t& rise_ie_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_RISE_IE); } static inline uint32_t& rise_ip_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_RISE_IP); } static inline uint32_t& fall_ie_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_FALL_IE); } static inline uint32_t& fall_ip_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_FALL_IP); } static inline uint32_t& high_ie_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_HIGH_IE); } static inline uint32_t& high_ip_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_HIGH_IP); } static inline uint32_t& low_ie_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_LOW_IE); } static inline uint32_t& low_ip_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_LOW_IP); } static inline uint32_t& iof_en_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_IOF_EN); } static inline uint32_t& iof_sel_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_IOF_SEL); } static inline uint32_t& out_xor_reg(){ return *reinterpret_cast(BASE_ADDR+GPIO_OUTPUT_XOR); } }; #endif /* GPIO_H_ */