summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlbert Y <76888457+filterpaper@users.noreply.github.com>2021-02-28 14:15:38 +0800
committerGitHub <noreply@github.com>2021-02-28 17:15:38 +1100
commitdb7c8562eddb22350fc9849685bf82aa6dc6f31a (patch)
tree65a13fb727315179d5676cbee3f5a281af78cead
parent51eac99ce4db739c6149e674ec89ac9fc984c512 (diff)
Add RGB Matrix support for Preonic rev3 (#12008)
* Add g_led_config for RGB Matrix support

* Corrected indentation

* Undo indentation on existing rev3.c code

Co-authored-by: filterpaper <filterpaper@localhost>
-rw-r--r--keyboards/preonic/rev3/config.h3
-rw-r--r--keyboards/preonic/rev3/rev3.c23
-rw-r--r--keyboards/preonic/rev3/rules.mk4
3 files changed, 29 insertions, 1 deletions
diff --git a/keyboards/preonic/rev3/config.h b/keyboards/preonic/rev3/config.h
index e8b09e8484..b336477a32 100644
--- a/keyboards/preonic/rev3/config.h
+++ b/keyboards/preonic/rev3/config.h
@@ -124,6 +124,7 @@
 #define RGB_DI_PIN A1
 #define RGBLED_NUM 9
 #define RGBLIGHT_ANIMATIONS
-
+// RGB Matrix support
+#define DRIVER_LED_TOTAL RGBLED_NUM
 
 #endif
diff --git a/keyboards/preonic/rev3/rev3.c b/keyboards/preonic/rev3/rev3.c
index 04b691f405..a8bfd8bdb5 100644
--- a/keyboards/preonic/rev3/rev3.c
+++ b/keyboards/preonic/rev3/rev3.c
@@ -15,6 +15,29 @@
  */
 #include "rev3.h"
 
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+    // Key Matrix to LED Index
+    { NO_LED, 6,      NO_LED, NO_LED, 5,      NO_LED },
+    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0      },
+    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+    { NO_LED, 4,      NO_LED, NO_LED, 3,      NO_LED },
+    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+    { NO_LED, 7,      NO_LED, NO_LED, 2,      NO_LED },
+    { NO_LED, 1,      NO_LED, NO_LED, 8,      NO_LED },
+}, {
+    // LED Index to Physical Position
+    {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60}
+}, {
+    // LED Index to Flag
+    LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+    LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+} };
+#endif
+
 void matrix_init_kb(void) {
 	matrix_init_user();
 }
diff --git a/keyboards/preonic/rev3/rules.mk b/keyboards/preonic/rev3/rules.mk
index 1f62fa55ec..249d13705c 100644
--- a/keyboards/preonic/rev3/rules.mk
+++ b/keyboards/preonic/rev3/rules.mk
@@ -25,6 +25,10 @@ API_SYSEX_ENABLE = no
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 #SLEEP_LED_ENABLE = yes
 
+# Do not enable RGB_MATRIX_ENABLE together with RGBLIGHT_ENABLE
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
+
 # SERIAL_LINK_ENABLE = yes
 ENCODER_ENABLE = yes
 DIP_SWITCH_ENABLE = yes