1.1 --- a/stage2/task_gpio.c Mon Oct 03 18:27:56 2016 +0200
1.2 +++ b/stage2/task_gpio.c Mon Oct 03 21:46:10 2016 +0200
1.3 @@ -35,10 +35,20 @@
1.4 virtual += page_size(STAGE2_PAGESIZE), physical += page_size(STAGE2_PAGESIZE))
1.5 {
1.6 init_page_table(STAGE2_PAGE_TABLE_BASE, virtual, physical,
1.7 - page_size(STAGE2_PAGESIZE), TLB_WRITE, task);
1.8 + page_size(STAGE2_PAGESIZE), TLB_UNCACHED | TLB_DIRTY | TLB_VALID, task);
1.9 }
1.10 }
1.11
1.12 +void task_gpio_as_input(unsigned short pin)
1.13 +{
1.14 + TASK_REG_GPIO_PXDIRC(pin / 32) = (1 << (pin % 32));
1.15 +}
1.16 +
1.17 +void task_gpio_as_output(unsigned short pin)
1.18 +{
1.19 + TASK_REG_GPIO_PXDIRS(pin / 32) = (1 << (pin % 32));
1.20 +}
1.21 +
1.22 inline void task_gpio_set_pin(unsigned short pin)
1.23 {
1.24 TASK_REG_GPIO_PXDATS(pin / 32) = (1 << (pin % 32));