Add some gpio helper functions. Note that these are not very effective unless the...
authorNathael Pajani <nathael.pajani@ed3l.fr>
Sun, 22 Feb 2015 01:50:14 +0000 (02:50 +0100)
committerNathael Pajani <nathael.pajani@ed3l.fr>
Tue, 8 Nov 2022 16:03:04 +0000 (17:03 +0100)
include/drivers/gpio.h

index 5e2d1a5..6d14312 100644 (file)
@@ -60,6 +60,31 @@ void remove_gpio_callback(const struct pio* gpio);
 void gpio_on(void);
 void gpio_off(void);
 
+#define gpio_dir_in(gpio) \
+{ \
+       struct lpc_gpio* gpio_port = LPC_GPIO_REGS(gpio.port); \
+       gpio_port->data_dir &= ~(1 << gpio->pin);\
+}
+
+#define gpio_dir_out(gpio) \
+{ \
+       struct lpc_gpio* gpio_port = LPC_GPIO_REGS(gpio.port); \
+       gpio_port->data_dir |= (1 << gpio->pin);\
+}
+
+
+#define gpio_set(gpio) \
+{ \
+       struct lpc_gpio* gpio_port = LPC_GPIO_REGS(gpio.port); \
+       gpio_port->set = (1 << gpio->pin);\
+}
+
+#define gpio_clear(gpio) \
+{ \
+       struct lpc_gpio* gpio_port = LPC_GPIO_REGS(gpio.port); \
+       gpio_port->clear = (1 << gpio.pin);\
+}
+
 
 /* GPIO Configuration
  * This function calls the config_pio() function for the gpio with the given