1 #ifndef __TASK_GPIO_H__ 2 #define __TASK_GPIO_H__ 3 4 #include "memory.h" 5 #include "xburst_types.h" 6 7 /* Special task versions of GPIO operations. */ 8 9 #define GPIO_BASE_PHYSICAL (GPIO_BASE - KSEG1_BASE) 10 11 #define TASK_GPIO_PXPIN(n) (TASK_GPIO_BASE + (0x00 + (n)*0x100)) /* PIN Level Register */ 12 #define TASK_GPIO_PXDAT(n) (TASK_GPIO_BASE + (0x10 + (n)*0x100)) /* Port Data Register */ 13 #define TASK_GPIO_PXDATS(n) (TASK_GPIO_BASE + (0x14 + (n)*0x100)) /* Port Data Set Register */ 14 #define TASK_GPIO_PXDATC(n) (TASK_GPIO_BASE + (0x18 + (n)*0x100)) /* Port Data Clear Register */ 15 16 #define TASK_GPIO_PXDIR(n) (TASK_GPIO_BASE + (0x60 + (n)*0x100)) /* Direction Register */ 17 #define TASK_GPIO_PXDIRS(n) (TASK_GPIO_BASE + (0x64 + (n)*0x100)) /* Direction Set Register */ 18 #define TASK_GPIO_PXDIRC(n) (TASK_GPIO_BASE + (0x68 + (n)*0x100)) /* Direction Clear Register */ 19 20 #define TASK_REG_GPIO_PXPIN(n) REG32(TASK_GPIO_PXPIN((n))) 21 #define TASK_REG_GPIO_PXDAT(n) REG32(TASK_GPIO_PXDAT((n))) 22 #define TASK_REG_GPIO_PXDATS(n) REG32(TASK_GPIO_PXDATS((n))) 23 #define TASK_REG_GPIO_PXDATC(n) REG32(TASK_GPIO_PXDATC((n))) 24 25 #define TASK_REG_GPIO_PXDIR(n) REG32(TASK_GPIO_PXDIR((n))) 26 #define TASK_REG_GPIO_PXDIRS(n) REG32(TASK_GPIO_PXDIRS((n))) 27 #define TASK_REG_GPIO_PXDIRC(n) REG32(TASK_GPIO_PXDIRC((n))) 28 29 void task_gpio_init(uint8_t task); 30 void task_gpio_as_input(uint8_t pin); 31 void task_gpio_as_output(uint8_t pin); 32 void task_gpio_set_pin(uint8_t pin); 33 void task_gpio_clear_pin(uint8_t pin); 34 int task_gpio_get_pin(uint8_t pin); 35 36 #endif /* __TASK_GPIO_H__ */