summaryrefslogtreecommitdiff
path: root/quantum/dip_switch.h
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2023-12-08 15:57:34 +0000
committerGitHub <noreply@github.com>2023-12-08 15:57:34 +0000
commit42245651e7515c0d323761c97e0f0d35ee6ff35a (patch)
tree495b261be1a04ffcda993337dac45597ef18bb8d /quantum/dip_switch.h
parente471cb80cb456a27144f3d8529bb579aa110343d (diff)
Align Dip Switch feature (#22625)
Diffstat (limited to 'quantum/dip_switch.h')
-rw-r--r--quantum/dip_switch.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/quantum/dip_switch.h b/quantum/dip_switch.h
index 6e79dcb0bf..ee5b550ada 100644
--- a/quantum/dip_switch.h
+++ b/quantum/dip_switch.h
@@ -20,11 +20,29 @@
#include <stdbool.h>
#include <stdint.h>
+#include "gpio.h"
+#include "util.h"
+
+#if defined(DIP_SWITCH_PINS)
+# define NUM_DIP_SWITCHES ARRAY_SIZE(((pin_t[])DIP_SWITCH_PINS))
+#elif defined(DIP_SWITCH_MATRIX_GRID)
+typedef struct matrix_intersection_t {
+ uint8_t row;
+ uint8_t col;
+} matrix_intersection_t;
+# define NUM_DIP_SWITCHES ARRAY_SIZE(((matrix_intersection_t[])DIP_SWITCH_MATRIX_GRID))
+#endif
+
+#ifndef NUM_DIP_SWITCHES
+# define NUM_DIP_SWITCHES 0
+#endif
bool dip_switch_update_kb(uint8_t index, bool active);
bool dip_switch_update_user(uint8_t index, bool active);
bool dip_switch_update_mask_user(uint32_t state);
bool dip_switch_update_mask_kb(uint32_t state);
-void dip_switch_init(void);
void dip_switch_read(bool forced);
+
+void dip_switch_init(void);
+void dip_switch_task(void);