From 42eff60714a32942b307d6b139aa400ca0df296a Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Fri, 30 Nov 2018 10:51:10 -0500 Subject: libgpio, better initrd structure --- src/kernel/gpio.c | 5 ++++- src/kernel/svc.c | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src/kernel') 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; -- cgit v1.2.3