summaryrefslogtreecommitdiff
path: root/board/cr50/board.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/cr50/board.c')
-rw-r--r--board/cr50/board.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/board/cr50/board.c b/board/cr50/board.c
index 36b4fea164..8dee558cca 100644
--- a/board/cr50/board.c
+++ b/board/cr50/board.c
@@ -10,6 +10,7 @@
#include "hooks.h"
#include "registers.h"
#include "task.h"
+#include "trng.h"
#include "usb.h"
#include "usb_hid.h"
#include "util.h"
@@ -64,18 +65,25 @@ void button_event(enum gpio_signal signal)
gpio_set_level(signal - GPIO_SW_N + GPIO_LED_4, v);
}
+static void init_interrutps(void)
+{
+ int i;
+ static const enum gpio_signal gpio_signals[] = {
+ GPIO_SW_N, GPIO_SW_S, GPIO_SW_W, GPIO_SW_E,
+ GPIO_SW_N_, GPIO_SW_S_, GPIO_SW_W_, GPIO_SW_E_
+ };
+
+ for (i = 0; i < ARRAY_SIZE(gpio_signals); i++)
+ gpio_enable_interrupt(gpio_signals[i]);
+}
+
/* Initialize board. */
static void board_init(void)
{
- gpio_enable_interrupt(GPIO_SW_N);
- gpio_enable_interrupt(GPIO_SW_S);
- gpio_enable_interrupt(GPIO_SW_W);
- gpio_enable_interrupt(GPIO_SW_E);
- gpio_enable_interrupt(GPIO_SW_N_);
- gpio_enable_interrupt(GPIO_SW_S_);
- gpio_enable_interrupt(GPIO_SW_W_);
- gpio_enable_interrupt(GPIO_SW_E_);
+ init_interrutps();
+ init_trng();
}
+
DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
#if defined(CONFIG_USB)