aboutsummaryrefslogtreecommitdiff
path: root/include/arch/stm32l4xxx/peripherals/exti.h
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2020-12-05 01:53:33 -0700
committerJosh Rahm <joshuarahm@gmail.com>2020-12-05 01:53:33 -0700
commitde81911ef4c15a9518acf32f61ad2d7d0e2f156f (patch)
tree4ca96493f9b07cb2e63c7d0c4abe49d321ea40d8 /include/arch/stm32l4xxx/peripherals/exti.h
parent04da2a442392c5bf3dcf4ca4611f42af7b35e596 (diff)
downloadstm32l4-de81911ef4c15a9518acf32f61ad2d7d0e2f156f.tar.gz
stm32l4-de81911ef4c15a9518acf32f61ad2d7d0e2f156f.tar.bz2
stm32l4-de81911ef4c15a9518acf32f61ad2d7d0e2f156f.zip
Got a very basic external interrupt to work.
Diffstat (limited to 'include/arch/stm32l4xxx/peripherals/exti.h')
-rw-r--r--include/arch/stm32l4xxx/peripherals/exti.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/arch/stm32l4xxx/peripherals/exti.h b/include/arch/stm32l4xxx/peripherals/exti.h
new file mode 100644
index 0000000..6776d10
--- /dev/null
+++ b/include/arch/stm32l4xxx/peripherals/exti.h
@@ -0,0 +1,35 @@
+#ifndef PERIPHERALS_EXTI_H_
+#define PERIPHERALS_EXTI_H_
+
+#include "arch.h"
+
+#define EXTI (*(exti_regs_t*)(EXTI_BASE))
+
+typedef struct {
+#define exti_im_n(n) (1 << (n))
+ uint32_t im_r1; /* Interrupt mask register 1. */
+
+#define exti_em_n(n) (1 << (n))
+ uint32_t em_r1; /* Event mask register 1. */
+
+#define exti_rt_n(n) (1 << (n))
+ uint32_t rts_r1; /* Rising trigger selection register 1. */
+
+#define exti_ft_n(n) (1 << (n))
+ uint32_t fts_r1; /* Falling trigger selection register 1. */
+
+#define exti_swi_n(n) (1 << (n))
+ uint32_t swie_r1; /* Software interrupt event register 1. */
+
+#define exti_pif_n(n) (1 << (n))
+ uint32_t p_r1; /* Pending register 1. */
+
+ uint32_t im_r2; /* Interrupt mask register 2. */
+ uint32_t em_r2; /* Event mask register 2. */
+ uint32_t rts_r2; /* Rising trigger selection register 2. */
+ uint32_t fts_r2; /* Falling trigger selection register 2. */
+ uint32_t swie_r2; /* Software interrupt event register 2. */
+ uint32_t p_r2; /* Pending register 2. */
+} exti_regs_t;
+
+#endif /* PERIPHERALS_EXTI_H_ */