#include #include "encoding.h" #include "platform.h" int eos_gpio_get(uint32_t reg, int pin) { return !!(GPIO_REG(reg) & (1 << pin)); } void eos_gpio_set(uint32_t reg, int pin) { if ((reg == GPIO_OUTPUT_VAL) || (reg == GPIO_LOW_IE)) clear_csr(mstatus, MSTATUS_MIE); GPIO_REG(reg) |= (1 << pin); if ((reg == GPIO_OUTPUT_VAL) || (reg == GPIO_LOW_IE)) set_csr(mstatus, MSTATUS_MIE); } void eos_gpio_clear(uint32_t reg, int pin) { if ((reg == GPIO_OUTPUT_VAL) || (reg == GPIO_LOW_IE)) clear_csr(mstatus, MSTATUS_MIE); GPIO_REG(reg) &= ~(1 << pin); if ((reg == GPIO_OUTPUT_VAL) || (reg == GPIO_LOW_IE)) set_csr(mstatus, MSTATUS_MIE); }