From ef9e544a7eb8551748dcf96729fde8d66ac6cc57 Mon Sep 17 00:00:00 2001
From: TerryMathews <terry@terrymathews.net>
Date: Sun, 29 Jan 2017 22:22:32 -0500
Subject: [PATCH 1/4] Let's Split: establish rev2fliphalf subproject

Subproject to accomodate second half pad built in opposite orientation
(places TRRS jacks on opposing edges for shorter cable runs)
---
 keyboards/lets_split/config.h                 |  3 +
 keyboards/lets_split/keymaps/i2c/config.h     |  3 +
 keyboards/lets_split/keymaps/serial/config.h  |  3 +
 keyboards/lets_split/lets_split.h             |  3 +
 keyboards/lets_split/rev2fliphalf/Makefile    |  3 +
 keyboards/lets_split/rev2fliphalf/config.h    | 91 +++++++++++++++++++
 .../lets_split/rev2fliphalf/rev2fliphalf.c    | 32 +++++++
 .../lets_split/rev2fliphalf/rev2fliphalf.h    | 28 ++++++
 keyboards/lets_split/rev2fliphalf/rules.mk    |  5 +
 9 files changed, 171 insertions(+)
 create mode 100644 keyboards/lets_split/rev2fliphalf/Makefile
 create mode 100644 keyboards/lets_split/rev2fliphalf/config.h
 create mode 100644 keyboards/lets_split/rev2fliphalf/rev2fliphalf.c
 create mode 100644 keyboards/lets_split/rev2fliphalf/rev2fliphalf.h
 create mode 100644 keyboards/lets_split/rev2fliphalf/rules.mk

diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h
index 7df0c57527..008fb09789 100644
--- a/keyboards/lets_split/config.h
+++ b/keyboards/lets_split/config.h
@@ -26,4 +26,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifdef SUBPROJECT_rev2
     #include "rev2/config.h"
 #endif
+#ifdef SUBPROJECT_rev2fliphalf
+	#include "../../rev2fliphalf/config.h"
+#endif
 #endif
diff --git a/keyboards/lets_split/keymaps/i2c/config.h b/keyboards/lets_split/keymaps/i2c/config.h
index efe8bb0f2b..332c990fc5 100644
--- a/keyboards/lets_split/keymaps/i2c/config.h
+++ b/keyboards/lets_split/keymaps/i2c/config.h
@@ -24,4 +24,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #endif
 #ifdef SUBPROJECT_rev2
     #include "../../rev2/config.h"
+#endif
+#ifdef SUBPROJECT_rev2fliphalf
+	#include "../../rev2fliphalf/config.h"
 #endif
\ No newline at end of file
diff --git a/keyboards/lets_split/keymaps/serial/config.h b/keyboards/lets_split/keymaps/serial/config.h
index cd766cc4f1..0e59b191b8 100644
--- a/keyboards/lets_split/keymaps/serial/config.h
+++ b/keyboards/lets_split/keymaps/serial/config.h
@@ -26,4 +26,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #endif
 #ifdef SUBPROJECT_rev2
     #include "../../rev2/config.h"
+#endif
+#ifdef SUBPROJECT_rev2fliphalf
+	#include "../../rev2fliphalf/config.h"
 #endif
\ No newline at end of file
diff --git a/keyboards/lets_split/lets_split.h b/keyboards/lets_split/lets_split.h
index 2cdfb061f2..0de308c7a9 100644
--- a/keyboards/lets_split/lets_split.h
+++ b/keyboards/lets_split/lets_split.h
@@ -7,6 +7,9 @@
 #ifdef SUBPROJECT_rev2
     #include "rev2.h"
 #endif
+#ifdef SUBPROJECT_rev2fliphalf
+	#include "rev2fliphalf.h"
+#endif
 
 #include "quantum.h"
 
diff --git a/keyboards/lets_split/rev2fliphalf/Makefile b/keyboards/lets_split/rev2fliphalf/Makefile
new file mode 100644
index 0000000000..4e2a6f00fd
--- /dev/null
+++ b/keyboards/lets_split/rev2fliphalf/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+	include ../../Makefile
+endif
\ No newline at end of file
diff --git a/keyboards/lets_split/rev2fliphalf/config.h b/keyboards/lets_split/rev2fliphalf/config.h
new file mode 100644
index 0000000000..1c45cf136b
--- /dev/null
+++ b/keyboards/lets_split/rev2fliphalf/config.h
@@ -0,0 +1,91 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+
+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/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0xFEED
+#define PRODUCT_ID      0x3060
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    Wootpatoot
+#define PRODUCT         Lets Split v2
+#define DESCRIPTION     A split keyboard for the cheap makers
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 6
+
+// wiring of each half
+#define MATRIX_ROW_PINS { D7, E6, B4, B5 }
+//#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
+#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+
+//#define CATERINA_BOOTLOADER
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+// #define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D3
+#define RGBLIGHT_TIMER
+#define RGBLED_NUM 12    // Number of LEDs
+#define ws2812_PORTREG  PORTD
+#define ws2812_DDRREG   DDRD
+
+/*
+ * Feature disable options
+ *  These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+
+#endif
\ No newline at end of file
diff --git a/keyboards/lets_split/rev2fliphalf/rev2fliphalf.c b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.c
new file mode 100644
index 0000000000..c505d3a6e3
--- /dev/null
+++ b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.c
@@ -0,0 +1,32 @@
+#include "lets_split.h"
+
+#ifdef AUDIO_ENABLE
+    float tone_startup[][2] = SONG(STARTUP_SOUND);
+    float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
+#endif
+
+void matrix_init_kb(void) {
+
+    #ifdef AUDIO_ENABLE
+        _delay_ms(20); // gets rid of tick
+        PLAY_NOTE_ARRAY(tone_startup, false, 0);
+    #endif
+
+    // // green led on
+    // DDRD |= (1<<5);
+    // PORTD &= ~(1<<5);
+
+    // // orange led on
+    // DDRB |= (1<<0);
+    // PORTB &= ~(1<<0);
+
+	matrix_init_user();
+};
+
+void shutdown_user(void) {
+    #ifdef AUDIO_ENABLE
+        PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+	_delay_ms(150);
+	stop_all_notes();
+    #endif
+}
diff --git a/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h
new file mode 100644
index 0000000000..993e149ddc
--- /dev/null
+++ b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h
@@ -0,0 +1,28 @@
+#ifndef REV2FLIPHALF_H
+#define REV2FLIPHALF_H
+
+#include "../lets_split.h"
+
+//void promicro_bootloader_jmp(bool program);
+#include "quantum.h"
+
+//void promicro_bootloader_jmp(bool program);
+
+#define KEYMAP( \
+	k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \
+	k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \
+	k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \
+	k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \
+	) \
+	{ \
+		{ k00, k01, k02, k03, k04, k05 }, \
+		{ k10, k11, k12, k13, k14, k15 }, \
+		{ k20, k21, k22, k23, k24, k25 }, \
+		{ k30, k31, k32, k33, k34, k35 }, \
+		{ k40, k41, k42, k43, k44, k45 }, \
+		{ k50, k51, k52, k53, k54, k55 }, \
+		{ k60, k61, k62, k63, k64, k65 }, \
+		{ k70, k71, k72, k73, k74, k75 } \
+	}
+
+#endif
\ No newline at end of file
diff --git a/keyboards/lets_split/rev2fliphalf/rules.mk b/keyboards/lets_split/rev2fliphalf/rules.mk
new file mode 100644
index 0000000000..80a942d06f
--- /dev/null
+++ b/keyboards/lets_split/rev2fliphalf/rules.mk
@@ -0,0 +1,5 @@
+BACKLIGHT_ENABLE = no
+
+ifndef QUANTUM_DIR
+	include ../../../Makefile
+endif

From 0537977ba1412aa2ba753e152eec445e18858244 Mon Sep 17 00:00:00 2001
From: TerryMathews <terry@terrymathews.net>
Date: Mon, 6 Feb 2017 19:14:57 -0500
Subject: [PATCH 2/4] Reverse rev2 and rev2fliphalf

Flipped definitions on what constitutes "fliphalf" by popular demand.
---
 keyboards/lets_split/rev2/config.h | 6 +++---
 keyboards/lets_split/rev2/rev2.h   | 8 ++++----
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h
index b34d7c0047..1c45cf136b 100644
--- a/keyboards/lets_split/rev2/config.h
+++ b/keyboards/lets_split/rev2/config.h
@@ -35,10 +35,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 // wiring of each half
 #define MATRIX_ROW_PINS { D7, E6, B4, B5 }
-#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
-// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+//#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
+#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order
 
-#define CATERINA_BOOTLOADER
+//#define CATERINA_BOOTLOADER
 
 /* COL2ROW or ROW2COL */
 #define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/lets_split/rev2/rev2.h b/keyboards/lets_split/rev2/rev2.h
index 7c397912f5..990976de2b 100644
--- a/keyboards/lets_split/rev2/rev2.h
+++ b/keyboards/lets_split/rev2/rev2.h
@@ -9,10 +9,10 @@
 //void promicro_bootloader_jmp(bool program);
 
 #define KEYMAP( \
-	k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
-	k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
-	k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
-	k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \
+	k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \
+	k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \
+	k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \
+	k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \
 	) \
 	{ \
 		{ k00, k01, k02, k03, k04, k05 }, \

From 5d55a44afa97386798bf7dd760123fbde8d35a28 Mon Sep 17 00:00:00 2001
From: TerryMathews <terry@terrymathews.net>
Date: Mon, 6 Feb 2017 19:21:21 -0500
Subject: [PATCH 3/4] Revert "Reverse rev2 and rev2fliphalf"

This reverts commit 0537977ba1412aa2ba753e152eec445e18858244.
---
 keyboards/lets_split/rev2/config.h | 6 +++---
 keyboards/lets_split/rev2/rev2.h   | 8 ++++----
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h
index 1c45cf136b..b34d7c0047 100644
--- a/keyboards/lets_split/rev2/config.h
+++ b/keyboards/lets_split/rev2/config.h
@@ -35,10 +35,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 // wiring of each half
 #define MATRIX_ROW_PINS { D7, E6, B4, B5 }
-//#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
-#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
+// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order
 
-//#define CATERINA_BOOTLOADER
+#define CATERINA_BOOTLOADER
 
 /* COL2ROW or ROW2COL */
 #define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/lets_split/rev2/rev2.h b/keyboards/lets_split/rev2/rev2.h
index 990976de2b..7c397912f5 100644
--- a/keyboards/lets_split/rev2/rev2.h
+++ b/keyboards/lets_split/rev2/rev2.h
@@ -9,10 +9,10 @@
 //void promicro_bootloader_jmp(bool program);
 
 #define KEYMAP( \
-	k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \
-	k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \
-	k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \
-	k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \
+	k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
+	k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
+	k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
+	k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \
 	) \
 	{ \
 		{ k00, k01, k02, k03, k04, k05 }, \

From 2a2be010d9d8c10d872c01637f4b4cd263f9bc1b Mon Sep 17 00:00:00 2001
From: TerryMathews <terry@terrymathews.net>
Date: Mon, 6 Feb 2017 19:23:10 -0500
Subject: [PATCH 4/4] Reverse rev2 and rev2fliphalf

Flipped definitions on what constitutes "fliphalf" by popular demand.
---
 keyboards/lets_split/rev2/rev2.h                 | 8 ++++----
 keyboards/lets_split/rev2fliphalf/rev2fliphalf.h | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/keyboards/lets_split/rev2/rev2.h b/keyboards/lets_split/rev2/rev2.h
index 7c397912f5..990976de2b 100644
--- a/keyboards/lets_split/rev2/rev2.h
+++ b/keyboards/lets_split/rev2/rev2.h
@@ -9,10 +9,10 @@
 //void promicro_bootloader_jmp(bool program);
 
 #define KEYMAP( \
-	k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
-	k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
-	k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
-	k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \
+	k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \
+	k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \
+	k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \
+	k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \
 	) \
 	{ \
 		{ k00, k01, k02, k03, k04, k05 }, \
diff --git a/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h
index 993e149ddc..7dc8e5ba8f 100644
--- a/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h
+++ b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h
@@ -9,10 +9,10 @@
 //void promicro_bootloader_jmp(bool program);
 
 #define KEYMAP( \
-	k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \
-	k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \
-	k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \
-	k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \
+	k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
+	k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
+	k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
+	k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \
 	) \
 	{ \
 		{ k00, k01, k02, k03, k04, k05 }, \