From 6529cbac0dabb0bb9005d18ee78fab63f370935a Mon Sep 17 00:00:00 2001
From: holtenc <holtenc@gmail.com>
Date: Fri, 16 Oct 2020 00:41:44 -0500
Subject: [PATCH] [Keyboard] Add Prime_E RGB PCB (#10615)

* add Prime_E RGB PCB

* Update keyboards/primekb/prime_e/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/primekb/prime_e/std/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/primekb/prime_e/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/primekb/prime_e/rgb/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/primekb/prime_e/rgb/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/primekb/prime_e/rgb/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/primekb/prime_e/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/primekb/prime_e/std/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/primekb/prime_e/std/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
---
 keyboards/primekb/prime_e/config.h      |  9 --------
 keyboards/primekb/prime_e/prime_e.h     |  2 --
 keyboards/primekb/prime_e/readme.md     | 14 +++++++-----
 keyboards/primekb/prime_e/rgb/config.h  | 29 +++++++++++++++++++++++++
 keyboards/primekb/prime_e/rgb/readme.md | 15 +++++++++++++
 keyboards/primekb/prime_e/rgb/rules.mk  |  2 ++
 keyboards/primekb/prime_e/rules.mk      | 12 ++++------
 keyboards/primekb/prime_e/std/config.h  | 28 ++++++++++++++++++++++++
 keyboards/primekb/prime_e/std/readme.md | 15 +++++++++++++
 keyboards/primekb/prime_e/std/rules.mk  |  2 ++
 10 files changed, 104 insertions(+), 24 deletions(-)
 create mode 100644 keyboards/primekb/prime_e/rgb/config.h
 create mode 100644 keyboards/primekb/prime_e/rgb/readme.md
 create mode 100644 keyboards/primekb/prime_e/rgb/rules.mk
 create mode 100644 keyboards/primekb/prime_e/std/config.h
 create mode 100644 keyboards/primekb/prime_e/std/readme.md
 create mode 100644 keyboards/primekb/prime_e/std/rules.mk

diff --git a/keyboards/primekb/prime_e/config.h b/keyboards/primekb/prime_e/config.h
index 4a355efd72..343a9dc0bf 100644
--- a/keyboards/primekb/prime_e/config.h
+++ b/keyboards/primekb/prime_e/config.h
@@ -21,11 +21,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 /* USB Device descriptor parameter */
 #define VENDOR_ID       0x5052
-#define PRODUCT_ID      0x0051
-#define DEVICE_VER      0x0001
 #define MANUFACTURER    PrimeKB
-#define PRODUCT         Prime_E
-#define DESCRIPTION     Ergo_45
 
 /* key matrix size */
 #define MATRIX_ROWS 4
@@ -34,15 +30,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Keyboard Matrix Assignments */
 #define MATRIX_ROW_PINS { E6, C7, B5, B4 }
 #define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, D6, D4, D5, D3, D2, D1, D0 }
-#define UNUSED_PINS
 
 /* COL2ROW, ROW2COL */
 #define DIODE_DIRECTION COL2ROW
 
-#define BACKLIGHT_PIN B7
-#define BACKLIGHT_LEVELS 5
-
-
 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 #define DEBOUNCE 5
 
diff --git a/keyboards/primekb/prime_e/prime_e.h b/keyboards/primekb/prime_e/prime_e.h
index 4af70fbe17..8de0af4622 100644
--- a/keyboards/primekb/prime_e/prime_e.h
+++ b/keyboards/primekb/prime_e/prime_e.h
@@ -19,7 +19,6 @@
 
 #include "quantum.h"
 
-
 #define LAYOUT( \
 	K000, K001, K002, K003, K004, K005,  		K006, K007, K008, K009, K010, K011, K012, \
 	K100, K101, K102, K103, K104, K105,  		K106, K107, K108, K109, K110, K112, \
@@ -31,4 +30,3 @@
 	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212 }, \
 	{ K300,  K301,  KC_NO, K303,  K304,  KC_NO, K306,  KC_NO, K308,  KC_NO, KC_NO, K311,  K312 } \
 }
-
diff --git a/keyboards/primekb/prime_e/readme.md b/keyboards/primekb/prime_e/readme.md
index 6abe0bed01..3503ad419c 100644
--- a/keyboards/primekb/prime_e/readme.md
+++ b/keyboards/primekb/prime_e/readme.md
@@ -4,13 +4,17 @@
 
 An ergonomic 45%. 
 
-Keyboard Maintainer: [Holtenc](https://github.com/holtenc/)  
-Hardware Supported: Prime_E PCB, ATMega32u4  
-Hardware Availability: Group Buy, Retail
+*Keyboard Maintainer: [Holtenc](https://github.com/holtenc/)  
+*Hardware Supported:
+    * [Prime_E Standard](std/) PCBs, ATmega32u4 (in switch LED backlights)
+    * [Prime_E RGB](rgb/) PCBs, Atmega32u4 (RGB underglow)
+*Hardware Availability: [Store Link](https://www.primekb.com)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make prime_e:default
-    make prime_e:via (when using VIA configurator)
+    *make primekb/prime_e/std:default
+    *make primekb/prime_e/rgb:default
+    *make primekb/prime_e/std:via
+    *make primekb/prime_e/rgb:via
 
 See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/primekb/prime_e/rgb/config.h b/keyboards/primekb/prime_e/rgb/config.h
new file mode 100644
index 0000000000..a562ffba81
--- /dev/null
+++ b/keyboards/primekb/prime_e/rgb/config.h
@@ -0,0 +1,29 @@
+/*
+Copyright 2019 Holten Campbell
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define PRODUCT_ID      0x0052
+#define DEVICE_VER      0x0001
+#define PRODUCT         Prime_E RGB
+
+#define RGB_DI_PIN B7
+#define RGBLED_NUM 8
+#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/primekb/prime_e/rgb/readme.md b/keyboards/primekb/prime_e/rgb/readme.md
new file mode 100644
index 0000000000..7d7c5332d3
--- /dev/null
+++ b/keyboards/primekb/prime_e/rgb/readme.md
@@ -0,0 +1,15 @@
+# Prime_E
+
+![Prime_E](https://imgur.com/7Rl4JOA.jpg)
+
+An ergonomic 45%. 
+
+* Keyboard Maintainer: [Holtenc](https://github.com/holtenc/)
+* Hardware Supported:Prime_E RGB PCBs, ATmega32u4
+* Hardware Availability: [Store Link](https://www.primekb.com)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make primekb/prime_e/rgb:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/primekb/prime_e/rgb/rules.mk b/keyboards/primekb/prime_e/rgb/rules.mk
new file mode 100644
index 0000000000..725c0cebcc
--- /dev/null
+++ b/keyboards/primekb/prime_e/rgb/rules.mk
@@ -0,0 +1,2 @@
+BACKLIGHT_ENABLE = no
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/primekb/prime_e/rules.mk b/keyboards/primekb/prime_e/rules.mk
index 0a08cc2ccd..e9045dba93 100644
--- a/keyboards/primekb/prime_e/rules.mk
+++ b/keyboards/primekb/prime_e/rules.mk
@@ -23,11 +23,7 @@ COMMAND_ENABLE = no        # Commands for debug and configuration
 SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 NKRO_ENABLE = yes            # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes       # Enable keyboard backlight functionality on B7 by default
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-MIDI_ENABLE = no            # MIDI support
-UNICODE_ENABLE = no         # Unicode
-BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
-AUDIO_ENABLE = no           # Audio output on port C6
-FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no 		# Enable support for HD44780 based LCDs
+BLUETOOTH_ENABLE = no       # Enable Bluetooth
+AUDIO_ENABLE = no           # Audio output
+
+DEFAULT_FOLDER = primekb/prime_e/std
diff --git a/keyboards/primekb/prime_e/std/config.h b/keyboards/primekb/prime_e/std/config.h
new file mode 100644
index 0000000000..a711e35b21
--- /dev/null
+++ b/keyboards/primekb/prime_e/std/config.h
@@ -0,0 +1,28 @@
+/*
+Copyright 2019 Holten Campbell
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define PRODUCT_ID      0x0051
+#define DEVICE_VER      0x0001
+#define PRODUCT         Prime_E
+
+#define BACKLIGHT_PIN B7
+#define BACKLIGHT_LEVELS 5
diff --git a/keyboards/primekb/prime_e/std/readme.md b/keyboards/primekb/prime_e/std/readme.md
new file mode 100644
index 0000000000..d1c2fd8402
--- /dev/null
+++ b/keyboards/primekb/prime_e/std/readme.md
@@ -0,0 +1,15 @@
+# Prime_E
+
+![Prime_E](https://imgur.com/7Rl4JOA.jpg)
+
+An ergonomic 45%. 
+
+* Keyboard Maintainer: [Holtenc](https://github.com/holtenc/)
+* Hardware Supported: Prime_E Standard PCBs, Atmega32u4
+* Hardware Availability: [Store Link](https://www.primekb.com)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make primekb/prime_e/std:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/primekb/prime_e/std/rules.mk b/keyboards/primekb/prime_e/std/rules.mk
new file mode 100644
index 0000000000..f938676f44
--- /dev/null
+++ b/keyboards/primekb/prime_e/std/rules.mk
@@ -0,0 +1,2 @@
+BACKLIGHT_ENABLE = yes
+RGBLIGHT_ENABLE = no