aboutsummaryrefslogtreecommitdiff
path: root/keyboards/binepad/knobx1/knobx1.h
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/binepad/knobx1/knobx1.h')
-rw-r--r--keyboards/binepad/knobx1/knobx1.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/keyboards/binepad/knobx1/knobx1.h b/keyboards/binepad/knobx1/knobx1.h
new file mode 100644
index 0000000000..7645124057
--- /dev/null
+++ b/keyboards/binepad/knobx1/knobx1.h
@@ -0,0 +1,49 @@
+// (c) 2025 Binepad (@binpad)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "quantum.h"
+
+// PCB has a 1x2 matrix. Set the ROW0 to ground for faster direct pin access.
+#define ROW0_PIN B8
+
+#define IND1_LED A6
+#define IND2_LED A5
+#define IND3_LED A4
+#define IND4_LED A3
+
+// clang-format off
+enum x1_keycodes {
+ X1_LAYER_SELECTOR_UP = QK_USER,
+ X1_LAYER_SELECTOR_DOWN
+};
+// clang-format on
+
+#define X1_LYRU X1_LAYER_SELECTOR_UP
+#define X1_LYRD X1_LAYER_SELECTOR_DOWN
+
+// clang-format off
+static inline void x1_led_1(bool on) { gpio_write_pin(IND1_LED, on); }
+static inline void x1_led_2(bool on) { gpio_write_pin(IND2_LED, on); }
+static inline void x1_led_3(bool on) { gpio_write_pin(IND3_LED, on); }
+static inline void x1_led_4(bool on) { gpio_write_pin(IND4_LED, on); }
+static inline void x1_led_1_on(void) { gpio_write_pin_high(IND1_LED); }
+static inline void x1_led_2_on(void) { gpio_write_pin_high(IND2_LED); }
+static inline void x1_led_3_on(void) { gpio_write_pin_high(IND3_LED); }
+static inline void x1_led_4_on(void) { gpio_write_pin_high(IND4_LED); }
+static inline void x1_led_1_off(void) { gpio_write_pin_low(IND1_LED); }
+static inline void x1_led_2_off(void) { gpio_write_pin_low(IND2_LED); }
+static inline void x1_led_3_off(void) { gpio_write_pin_low(IND3_LED); }
+static inline void x1_led_4_off(void) { gpio_write_pin_low(IND4_LED); }
+// clang-format on
+
+static inline void x1_layer_led(uint8_t lyr) {
+ gpio_write_pin(IND1_LED, lyr >= 0);
+ gpio_write_pin(IND2_LED, lyr >= 1);
+ gpio_write_pin(IND3_LED, lyr >= 2);
+ gpio_write_pin(IND4_LED, lyr >= 3);
+}
+
+bool process_x1_layer_up(keyrecord_t *record);
+bool process_x1_layer_down(keyrecord_t *record);