From 4f9e5d4cdef8ee0ab5a361407ccd8c55dcc186b7 Mon Sep 17 00:00:00 2001
From: morbetter <60626808+morbetter@users.noreply.github.com>
Date: Mon, 29 Jun 2020 12:16:14 -0700
Subject: [PATCH] Adding VIA support for CannonKeys/Practice60 (#8169)

* Adding VIA support for 40percentclub/luddite

* Update config.h

* Update rules.mk

* Delete config.h

config.h was created to override the "default" of RGBLED_NUM 8
deleting the file to keep with defaults

* Removing block and comment as suggested

* Update PRODUCT_ID

Changing from:

 #define PRODUCT_ID      0x0A0C

To:

 #define PRODUCT_ID      0x4C55 // "LU"

* Changing Vendor ID

Changing Vendor ID from:
#define VENDOR_ID       0xFEED
To:
#define VENDOR_ID       0x3430 // "40"

* Adding VIA support to cannonkeys/practice60

Adding VIA support to cannonkeys/practice60

 * updated VENDOR_ID to match other CannonKeys boards
 * changed PRODUCT_ID to be unique
 * added additional notes to readme.md
 * keymap.c and config.h for VIA support

* Update readme.md

* Update keyboards/cannonkeys/practice60/readme.md

* Update keyboards/cannonkeys/practice60/readme.md

* Update keyboards/cannonkeys/practice60/config.h

* Update rules.mk

* Update keyboards/cannonkeys/practice60/config.h

* Update config.h

* Rebased from Master

Rebased from Master
---
 keyboards/cannonkeys/practice60/config.h      |  6 ++--
 .../practice60/keymaps/via/keymap.c           | 35 +++++++++++++++++++
 .../practice60/keymaps/via/rules.mk           |  1 +
 keyboards/cannonkeys/practice60/readme.md     |  7 ++++
 4 files changed, 46 insertions(+), 3 deletions(-)
 create mode 100644 keyboards/cannonkeys/practice60/keymaps/via/keymap.c
 create mode 100644 keyboards/cannonkeys/practice60/keymaps/via/rules.mk

diff --git a/keyboards/cannonkeys/practice60/config.h b/keyboards/cannonkeys/practice60/config.h
index d17b7f04dd..1e8e5ec7c8 100644
--- a/keyboards/cannonkeys/practice60/config.h
+++ b/keyboards/cannonkeys/practice60/config.h
@@ -18,10 +18,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #pragma once
 
 /* USB Device descriptor parameter */
-#define VENDOR_ID       0xFEED
-#define PRODUCT_ID      0x6464
+#define VENDOR_ID       0xCA04
+#define PRODUCT_ID      0x6060
 #define DEVICE_VER      0x0001
-#define MANUFACTURER QMK
+#define MANUFACTURER CannonKeys
 #define PRODUCT Practice 60
 #define DESCRIPTION Practice 60
 
diff --git a/keyboards/cannonkeys/practice60/keymaps/via/keymap.c b/keyboards/cannonkeys/practice60/keymaps/via/keymap.c
new file mode 100644
index 0000000000..1bafdbb88f
--- /dev/null
+++ b/keyboards/cannonkeys/practice60/keymaps/via/keymap.c
@@ -0,0 +1,35 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [0] = LAYOUT_60_ansi(
+    KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+    KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+    LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+    KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT,KC_UP),
+    KC_LCTL, KC_LGUI, KC_LALT , KC_SPC, KC_RALT, LT(1,KC_LEFT), LT(2,KC_DOWN), MT(MOD_RCTL,KC_RGHT)
+  ),
+
+  [1] = LAYOUT_60_ansi(
+    KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
+    KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_HOME, KC_END, KC_TRNS,
+    KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS,
+    KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_INS, KC_DEL, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS, KC_MENU, KC_TRNS
+  ),
+
+  [2] = LAYOUT_60_ansi(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_DEC, BL_INC, KC_TRNS,
+    RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
+    KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+  ),
+
+  [3] = LAYOUT_60_ansi(
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+  )
+};
diff --git a/keyboards/cannonkeys/practice60/keymaps/via/rules.mk b/keyboards/cannonkeys/practice60/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/cannonkeys/practice60/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/practice60/readme.md b/keyboards/cannonkeys/practice60/readme.md
index 044aadf6e9..60ce0066f9 100644
--- a/keyboards/cannonkeys/practice60/readme.md
+++ b/keyboards/cannonkeys/practice60/readme.md
@@ -9,4 +9,11 @@ Make example for this keyboard (after setting up your build environment):
 
     make cannonkeys/practice60:default
 
+Flashing example for this keyboard:
+
+    make cannonkeys/practice60:default:flash
+
 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).
+
+Build guide available at: https://docs.cannonkeys.com/bluepill-build/
+Blue Pill flashing guide at: https://docs.cannonkeys.com/flashing/