]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Make quantum/split_common/serial.[ch] configurable (#4419)
authorTakeshi ISHII <2170248+mtei@users.noreply.github.com>
Fri, 14 Dec 2018 19:00:10 +0000 (04:00 +0900)
committerDrashna Jaelre <drashna@live.com>
Fri, 14 Dec 2018 19:00:10 +0000 (11:00 -0800)
* add temporary compile test shell script

* add 'CONFIG_H += serial_backward_compatibility.h' into common_features.mk:SPLIT_KEYBOARD block

* add quantum/split_common/serial_backward_compatibility.h

SERIAL_PIN_PORT and other PIN define move to serial_backward_compatibility.h
SERIAL_BACKLIT_START move to split_util.h

* quantum/split_common/serial.c change to helix-serial.c style serial configuration

* add temporary file quantum/split_common/split-keyboards-list.txt

* add '#define SOFT_SERIAL_PIN D0' to keyboards/6lit/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/divergetm2/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/ergotravel/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/foobar/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/dactyl_manuform/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/qc60/config.h

* add '//#define SOFT_SERIAL_PIN D0' to keyboards/handwired/xealous/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/iris/rev*/config.h

* add '//#define SOFT_SERIAL_PIN D0' to keyboards/lets_split_eh/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/levinson/rev*/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/miniaxe/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/nyquist/rev?/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/quefrency/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/qwertyydox/config.h,keyboards/qwertyydox/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/redox/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/rorschach/rev1/config.h

* remove '#define SOFT_SERIAL_PIN D0' from quantum/split_common/serial_backward_compatibility.h

* remove temporary file quantum/split_common/split-keyboards-list.txt

* remove temporary compile test shell script

* Revert "remove temporary compile test shell script"

This reverts commit 15b0021b4092127b8d8a21f572642ad3702b46d4.

* update quantum/split_common/compile_split_test.sh for new keyboard test

* add '#define SOFT_SERIAL_PIN D0' to keyboards/diverge3/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/40percentclub/25/config.h

* remove temporary compile test shell script

* update docs/config_options.md, quantum/template/avr/config.h

* fix quantum/template/avr/config.h

* fix typo  docs/config_options.md

32 files changed:
common_features.mk
docs/config_options.md
keyboards/40percentclub/25/config.h
keyboards/40percentclub/6lit/config.h
keyboards/40percentclub/foobar/config.h
keyboards/diverge3/config.h
keyboards/divergetm2/config.h
keyboards/ergotravel/rev1/config.h
keyboards/handwired/dactyl_manuform/config.h
keyboards/handwired/qc60/config.h
keyboards/handwired/xealous/config.h
keyboards/iris/rev1/config.h
keyboards/iris/rev1_led/config.h
keyboards/iris/rev2/config.h
keyboards/iris/rev3/config.h
keyboards/lets_split_eh/config.h
keyboards/levinson/rev1/config.h
keyboards/levinson/rev2/config.h
keyboards/miniaxe/config.h
keyboards/nyquist/rev1/config.h
keyboards/nyquist/rev2/config.h
keyboards/nyquist/rev3/config.h
keyboards/quefrency/rev1/config.h
keyboards/qwertyydox/config.h
keyboards/qwertyydox/rev1/config.h
keyboards/redox/rev1/config.h
keyboards/rorschach/rev1/config.h
quantum/split_common/serial.c
quantum/split_common/serial.h
quantum/split_common/serial_backward_compatibility.h [new file with mode: 0644]
quantum/split_common/split_util.h
quantum/template/avr/config.h

index bd88e04d624dd8001801ccfb8988911e3e67c21c..97febe2e77e90a62b9dc07baf55e78db291add71 100644 (file)
@@ -263,6 +263,11 @@ ifneq ($(strip $(CUSTOM_MATRIX)), yes)
 endif
 
 ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
+    SERIAL_BACKWARD_COMPAT := $(wildcard $(QUANTUM_DIR)/split_common/serial_backward_compatibility.h)
+    ifneq ($(SERIAL_BACKWARD_COMPAT),)
+      CONFIG_H += $(SERIAL_BACKWARD_COMPAT)
+      # $(info CONFIG_H=$(CONFIG_H))
+    endif
     OPT_DEFS += -DSPLIT_KEYBOARD
     QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_flags.c \
                 $(QUANTUM_DIR)/split_common/split_util.c \
index 69fecc8b49ada27ee14dcb5f367d36d0e1946701..bea4acb010aad836e4b364002bf1c0bc87c1a45d 100644 (file)
@@ -198,6 +198,9 @@ Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in yo
 * `#define USE_I2C`
   * For using I2C instead of Serial (defaults to serial)
 
+* `#define SOFT_SERIAL_PIN D0`
+  * When using serial, define this. `D0` or `D1`,`D2`,`D3`,`E6`.
+
 # The `rules.mk` File
 
 This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.
index 23b768e153d42272d78704dd5f236450e289e910..7fe59fcca091efc1a5d91be3823bc6f99c899549 100644 (file)
@@ -27,6 +27,8 @@
 #define DESCRIPTION     A split 50 key keyboard
 
 #define USE_SERIAL
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
 
 /* Select hand configuration */
 #define MASTER_LEFT
index 8397818a61565c9f5ecfa6d595869ec6539ab0c9..940518f36566525a41298265365b9054839d21fc 100644 (file)
@@ -28,6 +28,9 @@
 
 #define USE_SERIAL
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Select hand configuration */
 #define MASTER_LEFT
 //#define MASTER_RIGHT
index 89219c460745df2b5c12a685b9ad943a7543f220..88075c4560615ba2824a72e3e67d1af32b84c0c2 100644 (file)
@@ -28,6 +28,9 @@
 
 #define USE_SERIAL
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Select hand configuration */
 #define MASTER_LEFT
 //#define MASTER_RIGHT
index 262be7b7573f7ca1a88e4d76f8700c5be63f038e..464dc835ff55c28b1e0131c36e2f75d144f3b83b 100644 (file)
@@ -57,6 +57,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* define if matrix has ghost (lacks anti-ghosting diodes) */
 //#define MATRIX_HAS_GHOST
 
index 8bc9d2c803b924de16f3b98241a94c538f06412e..cbeeff9aa87fdb68e9d4182f35005b555cf91185 100644 (file)
@@ -59,6 +59,9 @@
 /* Locking resynchronize hack */
 #define LOCKING_RESYNC_ENABLE
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /*
  * Magic Key Options
  *
index 3af1147a7ad6f4a4ad1105ca992ff033c0270a94..e6d557361c00e9aeb8398a489f044775fcd89d68 100644 (file)
@@ -56,6 +56,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
     keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
 )
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 #define BACKLIGHT_PIN B5
 #define BACKLIGHT_LEVELS 5
 
index 320ce3c482ddf1ff55ff6a061ecbf2fd6b92d3fd..0e6f3f98ed60224f1f2396478f9e5a897b2dc9b2 100644 (file)
@@ -38,6 +38,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index 3b6f84390bc0455aa70d920fb67cc0154ed99c4f..00d095ddf12b7dca51b642557b7cb1df0c9d7090 100644 (file)
@@ -18,6 +18,9 @@
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* key combination for command */
 #define IS_COMMAND() ( \
     keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
index 415a0dcf5b72387bcc87da31de9f4e189a2ef12d..7bce502c1544844015e87c31f653094e4d4587e7 100644 (file)
@@ -21,10 +21,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 /* Use I2C or Serial, not both */
 
-// #define USE_SERIAL
 #define USE_I2C
 #define SCL_CLOCK  400000UL
 
+// #define USE_SERIAL
+/* serial.c configuration for split keyboard */
+// #define SOFT_SERIAL_PIN D0
+
 /* Select hand configuration */
 
 #define MASTER_LEFT
index 7f76df54ba1a27cb094446579ab7d8f439334d97..3b31ca0d7e06a9268cea215d16aea609cba5fce4 100644 (file)
@@ -48,6 +48,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index b58b11836a1e7dfb2521927cf997038670d2a256..e9739c00315bd2a78ad65a8984ab53d377304ca5 100644 (file)
@@ -48,6 +48,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index 266c29b9c99e67bd8675a4e1abd4f2111bc2a4a2..d43d4b1c643699d61b71c00a8e19f85bf7e068ea 100644 (file)
@@ -48,6 +48,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index 1032231d8982dfa011d369250e90a0ab95199b4d..5642512f39dd9d7cf899879ffd7df4786f112034 100644 (file)
@@ -48,6 +48,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index b8fe95ea2bc2c2d8015e7d74328e4f604ff4612a..abfee0eace72a38a98f1a2fef94538476eaf25b2 100644 (file)
@@ -36,6 +36,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+//#define SOFT_SERIAL_PIN D0
+
 /* key combination for command */
 #define IS_COMMAND() ( \
     keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
index 8161b4e32f9a081d22119816898149b83623d556..07ba1e221ea9a7f97a37038cb44b414a65f7c754 100644 (file)
@@ -41,6 +41,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index 03b98b45c1e3f54470afe43085b59262639fe8e6..a731c7195566b2fe853f28ab14278be0ea1e1997 100644 (file)
@@ -41,6 +41,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index 13608feab25c7e9377f2724129adc722c4f85735..2b732ca16f96b9cad2c389ac0d10506a52b3409d 100644 (file)
@@ -237,6 +237,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 /* Serial settings */
 #define USE_SERIAL
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 //#define EE_HANDS
 #define I2C_MASTER_LEFT
 //#define I2C_MASTER_RIGHT
index 35fbaffb96d774b02be1f0e2a65b4ac098bd2e23..892054b7331f00cd7a18e72840959f0ca3cd29d6 100644 (file)
@@ -46,6 +46,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index 7dc743b275ecf618e8db076b87752ee2b8712042..21aea0aada3a65d0cca7a29ceca9fdb557020b20 100644 (file)
@@ -43,6 +43,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index 6c51bc9a805226e7321df1403d7fc5c78dc98bf5..8054ba79c25122aecf2382b3a5f7d9efaf66be1f 100644 (file)
@@ -43,6 +43,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index 1074590ff5564802f7482844e569eadc8e7ec312..88d7044864d9aaa577a4e02733e7ffa0ca28c90e 100644 (file)
@@ -41,6 +41,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index b22ca534e3ef5afd153aacd06636563e151e9623..a685652230a17c96badf163ec86484c7f0070278 100644 (file)
@@ -49,6 +49,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index 3d4c9b0d000270380f812f0bc5e0b6a6d33367f4..a2557592d3e1bcec80a94003b01f273f01da70d4 100644 (file)
@@ -49,6 +49,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index f4ccbd2fd52dc357edabe7b0868280348fd41be8..654a84de7470c50382336bc7629eb7907899219f 100644 (file)
@@ -49,6 +49,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index 1c9ef8276c9ab65175f433dee476807efd925fab..1ea6dde98d505b7bc10f52596de585943e7d3670 100644 (file)
@@ -42,6 +42,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Set 0 if debouncing isn't needed */
 #define DEBOUNCING_DELAY 5
 
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
index 74bcbb6bf6e205e85008bf5b716f59adf6f8e103..f34f824d7d5ec5d7e3dc929204b238bb9f397555 100644 (file)
 
 #ifndef USE_I2C
 
+#ifndef SOFT_SERIAL_PIN
+  #error quantum/split_common/serial.c need SOFT_SERIAL_PIN define
+#endif
+
+#ifdef __AVR_ATmega32U4__
+  // if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial.
+  #ifdef USE_I2C
+    #if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1
+      #error Using ATmega32U4 I2C, so can not use PD0, PD1
+    #endif
+  #endif
+
+  #if SOFT_SERIAL_PIN >= D0 && SOFT_SERIAL_PIN <= D3
+    #define SERIAL_PIN_DDR   DDRD
+    #define SERIAL_PIN_PORT  PORTD
+    #define SERIAL_PIN_INPUT PIND
+    #if SOFT_SERIAL_PIN == D0
+      #define SERIAL_PIN_MASK _BV(PD0)
+      #define EIMSK_BIT       _BV(INT0)
+      #define EICRx_BIT       (~(_BV(ISC00) | _BV(ISC01)))
+      #define SERIAL_PIN_INTERRUPT INT0_vect
+    #elif  SOFT_SERIAL_PIN == D1
+      #define SERIAL_PIN_MASK _BV(PD1)
+      #define EIMSK_BIT       _BV(INT1)
+      #define EICRx_BIT       (~(_BV(ISC10) | _BV(ISC11)))
+      #define SERIAL_PIN_INTERRUPT INT1_vect
+    #elif  SOFT_SERIAL_PIN == D2
+      #define SERIAL_PIN_MASK _BV(PD2)
+      #define EIMSK_BIT       _BV(INT2)
+      #define EICRx_BIT       (~(_BV(ISC20) | _BV(ISC21)))
+      #define SERIAL_PIN_INTERRUPT INT2_vect
+    #elif  SOFT_SERIAL_PIN == D3
+      #define SERIAL_PIN_MASK _BV(PD3)
+      #define EIMSK_BIT       _BV(INT3)
+      #define EICRx_BIT       (~(_BV(ISC30) | _BV(ISC31)))
+      #define SERIAL_PIN_INTERRUPT INT3_vect
+    #endif
+  #elif  SOFT_SERIAL_PIN == E6
+    #define SERIAL_PIN_DDR   DDRE
+    #define SERIAL_PIN_PORT  PORTE
+    #define SERIAL_PIN_INPUT PINE
+    #define SERIAL_PIN_MASK  _BV(PE6)
+    #define EIMSK_BIT        _BV(INT6)
+    #define EICRx_BIT        (~(_BV(ISC60) | _BV(ISC61)))
+    #define SERIAL_PIN_INTERRUPT INT6_vect
+  #else
+  #error invalid SOFT_SERIAL_PIN value
+  #endif
+
+#else
+ #error serial.c now support ATmega32U4 only
+#endif
+
 // Serial pulse period in microseconds. Its probably a bad idea to lower this
 // value.
 #define SERIAL_DELAY 24
index e566eb8a06f1b28643d5b32f21dbec86a79e7c47..0b99f352d097fdaf591a660a4a83a372899b0e66 100644 (file)
@@ -1,21 +1,18 @@
 #ifndef MY_SERIAL_H
 #define MY_SERIAL_H
 
-#include "config.h"
 #include <stdbool.h>
 
-/* TODO:  some defines for interrupt setup */
-#define SERIAL_PIN_DDR DDRD
-#define SERIAL_PIN_PORT PORTD
-#define SERIAL_PIN_INPUT PIND
-#define SERIAL_PIN_MASK _BV(PD0)
-#define SERIAL_PIN_INTERRUPT INT0_vect
-
-#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
-#define SERIAL_MASTER_BUFFER_LENGTH 1
-
-// Address location defines 
-#define SERIAL_BACKLIT_START   0x00
+// /////////////////////////////////////////////////////////////////
+// Need Soft Serial defines in config.h
+// /////////////////////////////////////////////////////////////////
+// ex.
+//  /* Configuration of lower interface with the lower layer(hardware) of serial.c */
+//  #define SOFT_SERIAL_PIN ??   // ?? = D0,D1,D2,D3,E6
+//
+//  /* Configuration of upper interface with the upper layer of serial.c */
+//  #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
+//  #define SERIAL_MASTER_BUFFER_LENGTH 1
 
 // Buffers for master - slave communication
 extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
diff --git a/quantum/split_common/serial_backward_compatibility.h b/quantum/split_common/serial_backward_compatibility.h
new file mode 100644 (file)
index 0000000..216b6c4
--- /dev/null
@@ -0,0 +1,11 @@
+/* serial.h backward compatibility */
+
+// #ifndef SOFT_SERIAL_PIN
+//  #define SOFT_SERIAL_PIN D0
+// #endif
+
+#ifndef SERIAL_SLAVE_BUFFER_LENGTH
+ #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
+ #define SERIAL_MASTER_BUFFER_LENGTH 1
+#endif
+
index d6cf3e72a9dd6088a6ce9ae0a7bb36b4d0803136..45e8db0f2fedfbac7e646fa2540f02e4995d4250 100644 (file)
@@ -7,6 +7,9 @@
 #include <stdlib.h>
 #include "eeconfig.h"
 
+// backlight level store index in serial_master_buffer[] for slave to read
+#define SERIAL_BACKLIT_START   0x00
+
 #define SLAVE_I2C_ADDRESS           0x32
 
 extern volatile bool isLeftHand;
index 463ddff2db32443688b8b3e103873236a324f4de..eed50e5c04eab6e5664ddf2f6679fd815ba81311 100644 (file)
@@ -48,6 +48,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
 #define DIODE_DIRECTION COL2ROW
 
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
 // #define BACKLIGHT_PIN B7
 // #define BACKLIGHT_BREATHING
 // #define BACKLIGHT_LEVELS 3