aboutsummaryrefslogtreecommitdiffstats
path: root/src/initial_pins.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/initial_pins.c')
-rw-r--r--src/initial_pins.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/initial_pins.c b/src/initial_pins.c
new file mode 100644
index 00000000..cd478508
--- /dev/null
+++ b/src/initial_pins.c
@@ -0,0 +1,25 @@
+// Support setting gpio pins at mcu start
+//
+// Copyright (C) 2019 Kevin O'Connor <kevin@koconnor.net>
+//
+// This file may be distributed under the terms of the GNU GPLv3 license.
+
+#include "autoconf.h" // CONFIG_INITIAL_PINS
+#include "board/gpio.h" // gpio_out_setup
+#include "board/pgm.h" // READP
+#include "ctr.h" // DECL_CTR
+#include "initial_pins.h" // initial_pins
+#include "sched.h" // DECL_INIT
+
+DECL_CTR("DECL_INITIAL_PINS " __stringify(CONFIG_INITIAL_PINS));
+
+void
+initial_pins_setup(void)
+{
+ int i;
+ for (i=0; i<initial_pins_size; i++) {
+ const struct initial_pin_s *ip = &initial_pins[i];
+ gpio_out_setup(READP(ip->pin), READP(ip->flags) & IP_OUT_HIGH);
+ }
+}
+DECL_INIT(initial_pins_setup);