Browse Source

RGB Support for Panc60 (#4253)

* add RGB underglow support

* enable RGB underglow and backlighting
MechMerlin 6 years ago
parent
commit
5632552558
2 changed files with 41 additions and 2 deletions
  1. 39 0
      keyboards/panc60/panc60.c
  2. 2 2
      keyboards/panc60/rules.mk

+ 39 - 0
keyboards/panc60/panc60.c

@@ -14,8 +14,15 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 #include "panc60.h"
+#ifdef BACKLIGHT_ENABLE
+#include "backlight.h"
+#endif
+#ifdef RGBLIGHT_ENABLE
+#include "rgblight.h"
+#endif
 
 #include <avr/pgmspace.h>
+
 #include "action_layer.h"
 #include "i2c.h"
 #include "quantum.h"
@@ -23,3 +30,35 @@
 __attribute__ ((weak))
 void matrix_scan_user(void) {
 }
+
+#ifdef RGBLIGHT_ENABLE
+extern rgblight_config_t rgblight_config;
+
+void rgblight_set(void) {
+    if (!rgblight_config.enable) {
+        for (uint8_t i = 0; i < RGBLED_NUM; i++) {
+            led[i].r = 0;
+            led[i].g = 0;
+            led[i].b = 0;
+        }
+    }
+
+    i2c_init();
+    i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
+}
+#endif
+
+void backlight_init_ports(void) {
+	DDRD |= (1<<0 | 1<<1 | 1<<4 | 1<<6);
+	PORTD &= ~(1<<0 | 1<<1 | 1<<4 | 1<<6);
+}
+
+void backlight_set(uint8_t level) {
+	if (level == 0) {
+		// Turn out the lights
+		PORTD &= ~(1<<0 | 1<<1 | 1<<4 | 1<<6);
+	} else {
+		// Turn on the lights
+		PORTD |= (1<<0 | 1<<1 | 1<<4 | 1<<6);
+	}
+}

+ 2 - 2
keyboards/panc60/rules.mk

@@ -36,8 +36,8 @@ MOUSEKEY_ENABLE = yes
 EXTRAKEY_ENABLE = yes
 CONSOLE_ENABLE = yes
 COMMAND_ENABLE = yes
-BACKLIGHT_ENABLE = no
-RGBLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = yes
+RGBLIGHT_ENABLE = yes
 RGBLIGHT_CUSTOM_DRIVER = yes
 
 OPT_DEFS = -DDEBUG_LEVEL=0