diff options
author | Clyne Sullivan <tullivan99@gmail.com> | 2018-11-30 10:51:10 -0500 |
---|---|---|
committer | Clyne Sullivan <tullivan99@gmail.com> | 2018-11-30 10:51:10 -0500 |
commit | 42eff60714a32942b307d6b139aa400ca0df296a (patch) | |
tree | 7258326a1e2b1c0d6f42dbc744a9f1aac14068e6 /src/kernel | |
parent | cef5647a1542ac8520df07f15216a35ee35881ac (diff) |
libgpio, better initrd structure
Diffstat (limited to 'src/kernel')
-rw-r--r-- | src/kernel/gpio.c | 5 | ||||
-rw-r--r-- | src/kernel/svc.c | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/kernel/gpio.c b/src/kernel/gpio.c index 0932e51..33423b9 100644 --- a/src/kernel/gpio.c +++ b/src/kernel/gpio.c @@ -27,7 +27,7 @@ static GPIO_TypeDef *gpio_ports[8] = { void gpio_svc(uint32_t *args) { - GPIO_TypeDef *port = gpio_ports[args[1] / 16]; + GPIO_TypeDef *port = gpio_ports[args[1] >> 4]; uint32_t pin = args[1] & 0xF; switch (args[0]) { @@ -46,6 +46,9 @@ void gpio_svc(uint32_t *args) case 4: gpio_dout(port, pin, args[2]); break; + case 5: + *((int *)args[2]) = gpio_din(port, pin); + break; } } diff --git a/src/kernel/svc.c b/src/kernel/svc.c index 1455841..9044141 100644 --- a/src/kernel/svc.c +++ b/src/kernel/svc.c @@ -59,6 +59,7 @@ void SVC_Handler(void) { * 2 - gpio_pupd * 3 - gpio_speed * 4 - gpio_dout + * 5 - gpio_din */ gpio_svc(args); break; |