aboutsummaryrefslogtreecommitdiffstats
path: root/src/sam4e8e/gpio.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-12-25 11:12:00 -0500
committerKevin O'Connor <kevin@koconnor.net>2019-01-07 19:30:17 -0500
commitf0715de0049b238b4bbcb0389fe5848fd271118e (patch)
tree92e0476087aba9d2ee51a2d19c2c13e429a85c68 /src/sam4e8e/gpio.c
parent9a2160f660534eecf2b1bb59e9447b7240e7d5d0 (diff)
downloadkutter-f0715de0049b238b4bbcb0389fe5848fd271118e.tar.gz
kutter-f0715de0049b238b4bbcb0389fe5848fd271118e.tar.xz
kutter-f0715de0049b238b4bbcb0389fe5848fd271118e.zip
sam4e8e: Move gpio_set_peripheral() definition from gpio.h to internal.h
Use internal.h in a similar way to the internal.h in sam3x8e. Also, move the twi pin definitions from internal.h to i2c.c (as they are only used there). Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/sam4e8e/gpio.c')
-rw-r--r--src/sam4e8e/gpio.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/sam4e8e/gpio.c b/src/sam4e8e/gpio.c
index 6f736b65..48695fc9 100644
--- a/src/sam4e8e/gpio.c
+++ b/src/sam4e8e/gpio.c
@@ -4,22 +4,23 @@
//
// This file may be distributed under the terms of the GNU GPLv3 license.
-#include "gpio.h"
-#include "sam4e.h"
-
#include "autoconf.h" // CONFIG_CLOCK_FREQ
#include "board/irq.h" // irq_save
#include "command.h" // shutdown
+#include "gpio.h" // gpio_out_setup
+#include "internal.h" // gpio_set_peripheral
+#include "sam4e.h" // Pio
#include "sched.h" // sched_shutdown
-#define GPIO(PORT, NUM) (((PORT)-'A') * 32 + (NUM))
-#define GPIO2PORT(PIN) ((PIN) / 32)
-#define GPIO2BIT(PIN) (1<<((PIN) % 32))
-
static Pio * const digital_regs[] = {
PIOA, PIOB, PIOC, PIOD, PIOE
};
+
+/****************************************************************
+ * Pin multiplexing
+ ****************************************************************/
+
void
gpio_set_peripheral(char bank, const uint32_t bit, char ptype, uint32_t pull_up) {
@@ -67,6 +68,11 @@ gpio_set_peripheral(char bank, const uint32_t bit, char ptype, uint32_t pull_up)
}
}
+
+/****************************************************************
+ * General Purpose Input Output (GPIO) pins
+ ****************************************************************/
+
struct gpio_out
gpio_out_setup(uint8_t pin, uint8_t val)
{