/* * 2013 by Fabian Vogt */ #include #include "interrupt.h" #define NSPIRE_GPIO_SECTION_SIZE 0x40 #define NSPIRE_GPIO_DIRECTION_OFFSET 0x10 #define NSPIRE_GPIO_OUTPUT_OFFSET 0x14 #define NSPIRE_GPIO_BIT(x) (x&7) #define NSPIRE_GPIO_SECTION_OFFSET(x) (((x>>3)&3)*NSPIRE_GPIO_SECTION_SIZE) #define NSPIRE_GPIO(x, t) (*(uint32_t*)(0x90000000 + \ NSPIRE_GPIO_SECTION_OFFSET(x) + NSPIRE_GPIO_##t##_OFFSET)) static inline void gpio_dir_out(uint8_t pin, uint8_t value) { uint32_t val = NSPIRE_GPIO(pin, OUTPUT); if(value) val |= 1<