]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - keyboards/clueboard2/clueboard2.c
Backlight abstraction and other changes (#439)
[qmk_firmware.git] / keyboards / clueboard2 / clueboard2.c
index 8493c564c8b406f2783b04f2643bd07febdaab28..d78ffed9baf11105e9a8522cd3d5780f4c288ffc 100644 (file)
@@ -1,40 +1,63 @@
 #include "clueboard2.h"
 
-#ifdef BACKLIGHT_ENABLE
-#include "backlight.h"
-#endif
-
-__attribute__ ((weak))
-void matrix_init_user(void) {
-       // leave these blank
-};
-
-__attribute__ ((weak))
-void matrix_scan_user(void) {
-       // leave these blank
-};
-
 void matrix_init_kb(void) {
        // put your keyboard start-up code here
        // runs once when the firmware starts up
-       if (matrix_init_user) {
-               (*matrix_init_user)();
-       }
+       matrix_init_user();
        led_init_ports();
 
-    #ifdef BACKLIGHT_ENABLE
-        init_backlight_pin();
-    #endif
-
     // JTAG disable for PORT F. write JTD bit twice within four cycles.
     MCUCR |= (1<<JTD);
     MCUCR |= (1<<JTD);
 };
 
-void matrix_scan_kb(void) {
-       // put your looping keyboard code here
-       // runs every cycle (a lot)
-       if (matrix_scan_user) {
-               (*matrix_scan_user)();
-       }
-};
+void led_init_ports() {
+    // * Set our LED pins as output
+    DDRB |= (1<<4);
+}
+
+void led_set_kb(uint8_t usb_led) {
+    if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+        // Turn capslock on
+        PORTB |= (1<<4);
+    } else {
+        // Turn capslock off
+        PORTB &= ~(1<<4);
+    }
+}
+
+/* Clueboard 2.0 LED locations:
+ *
+ * Capslock: B4, pull high to turn on
+ * LCtrl: Shared with Capslock, DO NOT INSTALL LED'S IN BOTH
+ * Page Up: B7, pull high to turn on
+ * Escape: D6, pull high to turn on
+ * Arrows: D4, pull high to turn on
+ */
+
+void backlight_init_ports(void) {
+    print("init_backlight_pin()\n");
+    // Set our LED pins as output
+    DDRD |= (1<<6); // Esc
+    DDRB |= (1<<7); // Page Up
+    DDRD |= (1<<4); // Arrows
+
+    // Set our LED pins low
+    PORTD &= ~(1<<6); // Esc
+    PORTB &= ~(1<<7); // Page Up
+    PORTD &= ~(1<<4); // Arrows
+}
+
+void backlight_set(uint8_t level) {
+    if ( level == 0 ) {
+        // Turn off light
+        PORTD |= (1<<6); // Esc
+        PORTB |= (1<<7); // Page Up
+        PORTD |= (1<<4); // Arrows
+    } else {
+        // Turn on light
+        PORTD &= ~(1<<6); // Esc
+        PORTB &= ~(1<<7); // Page Up
+        PORTD &= ~(1<<4); // Arrows
+    }
+}