42void gpio_init(uint32_t port, uint32_t pins,
enum gpio_flags flags)
44 switch (flags & 0x7) {
45 case GPIO_FLAG_GPINPUT:
49 case GPIO_FLAG_GPOUTPUT:
53 case GPIO_FLAG_PERIPHA:
54 PIO_ABSR(port) &= ~pins;
57 case GPIO_FLAG_PERIPHB:
58 PIO_ABSR(port) |= pins;
62 if (flags & GPIO_FLAG_OPEN_DRAIN) {
63 PIO_MDER(port) = pins;
65 PIO_MDDR(port) = pins;
68 if (flags & GPIO_FLAG_PULL_UP) {
69 PIO_PUER(port) = pins;
71 PIO_PUDR(port) = pins;
void gpio_init(uint32_t port, uint32_t pins, enum gpio_flags flags)
Initialize GPIO pins.