From c12268807d8622a05dc445e6101a575eae16860d Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 15 Dec 2021 22:00:39 +1100 Subject: [PATCH] Migrate serial_uart usages to UART driver (#15479) * Migrate Thermal Printer feature to UART driver * Migrate 40percentclub UT47 to UART driver * Migrate Centromere to UART driver * Migrate Chimera Ergo to UART driver * Migrate Chimera Let's Split to UART driver * Migrate Chimera Ortho to UART driver * Migrate Chimera Ortho Plus to UART driver * Migrate Comet46 to UART driver * Migrate Palm USB converter to UART driver * Migrate Sun USB converter to UART driver * Migrate Dichotomy to UART driver * Migrate Honeycomb to UART driver * Migrate Mitosis to UART driver * Migrate Redox W to UART driver * Migrate Uni660 to UART driver * Migrate Telophase to UART driver --- common_features.mk | 2 +- .../ut47/keymaps/default/keymap.c | 6 +- .../ut47/keymaps/non-us/keymap.c | 6 +- .../ut47/keymaps/nordic/keymap.c | 6 +- .../40percentclub/ut47/keymaps/rgb/keymap.c | 6 +- keyboards/40percentclub/ut47/matrix.c | 8 --- keyboards/40percentclub/ut47/rules.mk | 3 +- keyboards/40percentclub/ut47/ut47.c | 8 ++- keyboards/centromere/config.h | 9 --- keyboards/centromere/matrix.c | 10 ++-- keyboards/centromere/rules.mk | 3 +- keyboards/chimera_ergo/config.h | 9 --- keyboards/chimera_ergo/matrix.c | 10 ++-- keyboards/chimera_ergo/rules.mk | 3 +- keyboards/chimera_ls/config.h | 9 --- keyboards/chimera_ls/matrix.c | 10 ++-- keyboards/chimera_ls/rules.mk | 3 +- keyboards/chimera_ortho/config.h | 9 --- keyboards/chimera_ortho/matrix.c | 10 ++-- keyboards/chimera_ortho/rules.mk | 3 +- keyboards/chimera_ortho_plus/config.h | 9 --- keyboards/chimera_ortho_plus/matrix.c | 10 ++-- keyboards/chimera_ortho_plus/rules.mk | 3 +- keyboards/comet46/config.h | 9 --- keyboards/comet46/matrix.c | 10 ++-- keyboards/comet46/rules.mk | 4 +- keyboards/converter/palm_usb/config.h | 55 ------------------- keyboards/converter/palm_usb/matrix.c | 8 +-- keyboards/converter/palm_usb/post_rules.mk | 7 --- keyboards/converter/palm_usb/rules.mk | 1 + keyboards/converter/sun_usb/command_extra.c | 22 ++++---- keyboards/converter/sun_usb/config.h | 47 ---------------- keyboards/converter/sun_usb/led.c | 6 +- keyboards/converter/sun_usb/matrix.c | 20 +++---- keyboards/converter/sun_usb/post_rules.mk | 6 -- keyboards/converter/sun_usb/rules.mk | 1 + keyboards/dichotomy/config.h | 9 --- keyboards/dichotomy/dichotomy.c | 8 ++- keyboards/dichotomy/matrix.c | 10 ++-- keyboards/dichotomy/rules.mk | 3 +- keyboards/honeycomb/config.h | 9 --- keyboards/honeycomb/honeycomb.c | 6 +- keyboards/honeycomb/matrix.c | 10 ++-- keyboards/honeycomb/rules.mk | 3 +- keyboards/mitosis/config.h | 9 --- keyboards/mitosis/matrix.c | 10 ++-- keyboards/mitosis/rules.mk | 3 +- .../planck/keymaps/thermal_printer/config.h | 12 +--- keyboards/redox_w/config.h | 9 --- keyboards/redox_w/matrix.c | 10 ++-- keyboards/redox_w/rules.mk | 3 +- keyboards/sirius/uni660/rev1/config.h | 9 --- keyboards/sirius/uni660/rev1/matrix.c | 10 ++-- keyboards/sirius/uni660/rev1/rules.mk | 3 +- keyboards/sirius/uni660/rev2/ansi/config.h | 9 --- keyboards/sirius/uni660/rev2/iso/config.h | 9 --- keyboards/sirius/uni660/rev2/matrix.c | 10 ++-- keyboards/sirius/uni660/rev2/rules.mk | 3 +- keyboards/telophase/config.h | 9 --- keyboards/telophase/matrix.c | 10 ++-- keyboards/telophase/rules.mk | 3 +- quantum/process_keycode/process_printer.c | 5 +- quantum/process_keycode/process_printer.h | 2 - 63 files changed, 154 insertions(+), 393 deletions(-) delete mode 100644 keyboards/converter/palm_usb/post_rules.mk delete mode 100644 keyboards/converter/sun_usb/post_rules.mk diff --git a/common_features.mk b/common_features.mk index 56a9a286eaca91abbc522a09d22f55eb69e4a46b..fed005ff5a4ac915afebc1a0db1bab9f07755b67 100644 --- a/common_features.mk +++ b/common_features.mk @@ -356,7 +356,7 @@ endif ifeq ($(strip $(PRINTING_ENABLE)), yes) OPT_DEFS += -DPRINTING_ENABLE SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c - SRC += $(TMK_DIR)/protocol/serial_uart.c + QUANTUM_LIB_SRC += uart.c endif VARIABLE_TRACE ?= no diff --git a/keyboards/40percentclub/ut47/keymaps/default/keymap.c b/keyboards/40percentclub/ut47/keymaps/default/keymap.c index 0fa7838dfd7906d54230fcc43e9f79b2f4541708..4eb2c190c192832a6201be749a9a5833b1f0f315 100644 --- a/keyboards/40percentclub/ut47/keymaps/default/keymap.c +++ b/keyboards/40percentclub/ut47/keymaps/default/keymap.c @@ -15,7 +15,7 @@ */ #include QMK_KEYBOARD_H #ifdef LED_ENABLE - #include "protocol/serial.h" + #include "uart.h" #endif #define LT3_TAB LT(3, KC_TAB) @@ -108,11 +108,11 @@ LAYOUT( /* Tab */ //LED keymap functions #ifdef LED_ENABLE void led_chmode(void) { - serial_send(101); + uart_write(0x65); } void led_toggle(void) { - serial_send(100); + uart_write(0x64); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/40percentclub/ut47/keymaps/non-us/keymap.c b/keyboards/40percentclub/ut47/keymaps/non-us/keymap.c index 0c1c2e75999b3d1ac137cd1d93f936ae39dd6aa1..8a0ba7b3916ca8e9e84fc5e9063de1756be4a38d 100644 --- a/keyboards/40percentclub/ut47/keymaps/non-us/keymap.c +++ b/keyboards/40percentclub/ut47/keymaps/non-us/keymap.c @@ -15,7 +15,7 @@ */ #include QMK_KEYBOARD_H #ifdef LED_ENABLE - #include "protocol/serial.h" + #include "uart.h" #endif #define LT3_TAB LT(3, KC_TAB) @@ -108,11 +108,11 @@ LAYOUT( /* Tab */ //LED keymap functions #ifdef LED_ENABLE void led_chmode(void) { - serial_send(101); + uart_write(0x65); } void led_toggle(void) { - serial_send(100); + uart_write(0x64); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/40percentclub/ut47/keymaps/nordic/keymap.c b/keyboards/40percentclub/ut47/keymaps/nordic/keymap.c index 52372e285785676135379d5fb8d7b6fb4e064cff..5e79cdb9a47cfa57759cf044f81591d5f0fd6d9b 100644 --- a/keyboards/40percentclub/ut47/keymaps/nordic/keymap.c +++ b/keyboards/40percentclub/ut47/keymaps/nordic/keymap.c @@ -15,7 +15,7 @@ */ #include QMK_KEYBOARD_H #ifdef LED_ENABLE - #include "protocol/serial.h" + #include "uart.h" #endif @@ -151,11 +151,11 @@ LAYOUT( /* GAMING, toggled on and off - L5 */ //LED keymap functions #ifdef LED_ENABLE void led_chmode(void) { - serial_send(101); + uart_write(0x65); } void led_toggle(void) { - serial_send(100); + uart_write(0x64); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c index ae8ad3e378ecea2f2991e3901614ee642c1ca5bd..75dba3a2d42e5e09b0c68c77847ba21a146aaf16 100644 --- a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c +++ b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c @@ -15,7 +15,7 @@ */ #include QMK_KEYBOARD_H #ifdef LED_ENABLE - #include "protocol/serial.h" + #include "uart.h" #endif #define LT3_TAB LT(3, KC_TAB) @@ -60,11 +60,11 @@ LAYOUT( /* Tab */ //LED keymap functions #ifdef LED_ENABLE void led_chmode(void) { - serial_send(101); + uart_write(0x65); } void led_toggle(void) { - serial_send(100); + uart_write(0x64); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/40percentclub/ut47/matrix.c b/keyboards/40percentclub/ut47/matrix.c index c1284535bc954b330121a6a0495271c9946f289c..89537592c52a29098ae41f97cb6a37364d0f04fd 100644 --- a/keyboards/40percentclub/ut47/matrix.c +++ b/keyboards/40percentclub/ut47/matrix.c @@ -26,10 +26,6 @@ along with this program. If not, see . #include "debug.h" #include "util.h" #include "matrix.h" -#ifdef LED_ENABLE - #include "protocol/serial.h" -#endif - #ifndef DEBOUNCE # define DEBOUNCE 5 @@ -69,10 +65,6 @@ void matrix_init(void) matrix[i] = 0; matrix_debouncing[i] = 0; } - -#ifdef LED_ENABLE - serial_init(); -#endif } uint8_t matrix_scan(void) diff --git a/keyboards/40percentclub/ut47/rules.mk b/keyboards/40percentclub/ut47/rules.mk index 29cee474ff5da93ef9bcf24989077e4da71cf9fb..6c9805e0fc441ef90cd90ffed71bdb24722b6c5b 100644 --- a/keyboards/40percentclub/ut47/rules.mk +++ b/keyboards/40percentclub/ut47/rules.mk @@ -18,4 +18,5 @@ AUDIO_ENABLE = no # Audio output # custom matrix setup CUSTOM_MATRIX = yes -SRC += matrix.c protocol/serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c diff --git a/keyboards/40percentclub/ut47/ut47.c b/keyboards/40percentclub/ut47/ut47.c index 9054335e5ac131db644563d389ef5275f73f8237..c01562cb6832b4d574c76185ce44745f1da08e82 100644 --- a/keyboards/40percentclub/ut47/ut47.c +++ b/keyboards/40percentclub/ut47/ut47.c @@ -15,15 +15,19 @@ */ #include "ut47.h" #ifdef LED_ENABLE - #include "protocol/serial.h" + #include "uart.h" #endif +void matrix_init_kb() { + uart_init(9600); +} + bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // put your per-action keyboard code here // runs for every action, just before processing by the firmware if (record->event.pressed) { #ifdef LED_ENABLE - serial_send((record->event.key.row*16)+record->event.key.col); + uart_write((record->event.key.row*16)+record->event.key.col); #endif } return process_record_user(keycode, record); diff --git a/keyboards/centromere/config.h b/keyboards/centromere/config.h index e502e2534bced353ae73dfb416f71f5c3a146c7c..b4cae20332c16b7560073b3e1510577694b1298f 100644 --- a/keyboards/centromere/config.h +++ b/keyboards/centromere/config.h @@ -56,12 +56,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 500000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/centromere/matrix.c b/keyboards/centromere/matrix.c index 7256cd5cb5a79808fe5ea9790b9f96746c290980..a46701275aa35cb80fed27200a45842825da26b2 100644 --- a/keyboards/centromere/matrix.c +++ b/keyboards/centromere/matrix.c @@ -26,7 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -80,7 +80,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); - serial_init(); + uart_init(500000); } uint8_t matrix_scan(void) @@ -88,7 +88,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; //the s character requests the RF remote slave to send the matrix information - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates, erase the last set of data uint8_t uart_data[11] = {0}; @@ -96,13 +96,13 @@ uint8_t matrix_scan(void) //there are 10 bytes corresponding to 1w columns, and an end byte for (uint8_t i = 0; i < 11; i++) { //wait for the serial data, timeout if it's been too long - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/centromere/rules.mk b/keyboards/centromere/rules.mk index ed777e1b9eee62b617d03e899d4f719c55b2ebbd..15c6a2074688ab01d9df01049a7a05d0ed4b57b9 100644 --- a/keyboards/centromere/rules.mk +++ b/keyboards/centromere/rules.mk @@ -21,6 +21,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality UNICODE_ENABLE = yes # Unicode # # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c LAYOUTS = split_3x5_3 split_3x6_3 diff --git a/keyboards/chimera_ergo/config.h b/keyboards/chimera_ergo/config.h index 0767a218b5a2d1e75c1e00080fbfa3b3abb4f037..3c0cc5c16203d39cc0558ea7d78efca0c328d0e6 100644 --- a/keyboards/chimera_ergo/config.h +++ b/keyboards/chimera_ergo/config.h @@ -56,12 +56,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/chimera_ergo/matrix.c b/keyboards/chimera_ergo/matrix.c index 577176c466c622866faaf4654a46041cb32e48ce..ec438beb56e5d09a614b7b70bc64efebe1213a38 100644 --- a/keyboards/chimera_ergo/matrix.c +++ b/keyboards/chimera_ergo/matrix.c @@ -26,7 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -89,7 +89,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); - serial_init(); + uart_init(1000000); } uint8_t matrix_scan(void) @@ -97,7 +97,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; //the s character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates entirely, erase the last data uint8_t uart_data[14] = {0}; @@ -107,13 +107,13 @@ uint8_t matrix_scan(void) //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/chimera_ergo/rules.mk b/keyboards/chimera_ergo/rules.mk index a8bd3a027a225a460b12d18cabcb45b97f4b6e14..483485cb7d6ae8933cb29b9908528fcf1b320a07 100644 --- a/keyboards/chimera_ergo/rules.mk +++ b/keyboards/chimera_ergo/rules.mk @@ -17,4 +17,5 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c diff --git a/keyboards/chimera_ls/config.h b/keyboards/chimera_ls/config.h index 2eb028471d5bb859ba84e4991949dcd06854544d..ca92e1e2e4164e97dd21fcadaa37adfddfe90cd2 100644 --- a/keyboards/chimera_ls/config.h +++ b/keyboards/chimera_ls/config.h @@ -56,12 +56,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/chimera_ls/matrix.c b/keyboards/chimera_ls/matrix.c index 9edd91818ff52149cca93e10bb1f5ea228d85a6d..354346ca09a5cb997fbbca33e35969dc66dfbfb8 100644 --- a/keyboards/chimera_ls/matrix.c +++ b/keyboards/chimera_ls/matrix.c @@ -26,7 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -93,7 +93,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); - serial_init(); + uart_init(1000000); } uint8_t matrix_scan(void) @@ -101,7 +101,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; //the s character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates entirely, erase the last data uint8_t uart_data[11] = {0}; @@ -111,13 +111,13 @@ uint8_t matrix_scan(void) //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/chimera_ls/rules.mk b/keyboards/chimera_ls/rules.mk index 377c37991140b633e1b1a4f02b093b1535c25fea..ae0cc8b749d02a9a378aa2ff530f344192a1eea8 100644 --- a/keyboards/chimera_ls/rules.mk +++ b/keyboards/chimera_ls/rules.mk @@ -17,7 +17,8 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c LAYOUTS = ortho_4x12 diff --git a/keyboards/chimera_ortho/config.h b/keyboards/chimera_ortho/config.h index 974502525c08827eaa5edc2d57477e973511019b..3d86343a67b09a097dfe2e0b7815e7f8d5d834fe 100644 --- a/keyboards/chimera_ortho/config.h +++ b/keyboards/chimera_ortho/config.h @@ -56,12 +56,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/chimera_ortho/matrix.c b/keyboards/chimera_ortho/matrix.c index 34930af7e2058d32e9029b7e05f7b5dfa49067ca..1403f410c00996dcb069fed2e87468b1c0966824 100644 --- a/keyboards/chimera_ortho/matrix.c +++ b/keyboards/chimera_ortho/matrix.c @@ -26,7 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -79,7 +79,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); - serial_init(); + uart_init(1000000); } uint8_t matrix_scan(void) @@ -87,7 +87,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; //the s character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates entirely, erase the last data uint8_t uart_data[11] = {0}; @@ -97,13 +97,13 @@ uint8_t matrix_scan(void) //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/chimera_ortho/rules.mk b/keyboards/chimera_ortho/rules.mk index fbe68720019684b7c2b39ef58d2bad3e9c174799..c35dc9ba2e5cea044bebb70afc48782a30c67193 100644 --- a/keyboards/chimera_ortho/rules.mk +++ b/keyboards/chimera_ortho/rules.mk @@ -17,4 +17,5 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c diff --git a/keyboards/chimera_ortho_plus/config.h b/keyboards/chimera_ortho_plus/config.h index 4b12796e95b247982cb8cf5513cc10086311506d..ebffb85657515afdcbcc7b310ce117f4bcd7769d 100644 --- a/keyboards/chimera_ortho_plus/config.h +++ b/keyboards/chimera_ortho_plus/config.h @@ -56,12 +56,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/chimera_ortho_plus/matrix.c b/keyboards/chimera_ortho_plus/matrix.c index 818e05ac9872702824faf16a7025c63ba0b5f2d1..51898e35d151fc5ab3e5a0d0d204163763dab1a9 100644 --- a/keyboards/chimera_ortho_plus/matrix.c +++ b/keyboards/chimera_ortho_plus/matrix.c @@ -26,7 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -79,7 +79,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); - serial_init(); + uart_init(1000000); } uint8_t matrix_scan(void) @@ -87,7 +87,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; //the s character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates entirely, erase the last data uint8_t uart_data[14] = {0}; @@ -97,13 +97,13 @@ uint8_t matrix_scan(void) //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/chimera_ortho_plus/rules.mk b/keyboards/chimera_ortho_plus/rules.mk index e99e79c3279df73071721033c0682a2ac29d290c..cd98979306bc7aeaa210734f826b3d823a2e33a7 100644 --- a/keyboards/chimera_ortho_plus/rules.mk +++ b/keyboards/chimera_ortho_plus/rules.mk @@ -20,4 +20,5 @@ UNICODE_ENABLE = yes CUSTOM_MATRIX = yes # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c diff --git a/keyboards/comet46/config.h b/keyboards/comet46/config.h index 067dabb1036a0d990506c172b5259e8d45059978..5ea40c14c592be8a4fec84867a34e06d1745ece0 100644 --- a/keyboards/comet46/config.h +++ b/keyboards/comet46/config.h @@ -62,12 +62,3 @@ along with this program. If not, see . #define MODS_CTRL_MASK (MOD_BIT(KC_LCTL)|MOD_BIT(KC_RCTRL)) #define MODS_ALT_MASK (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) #define MODS_GUI_MASK (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)) - -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/comet46/matrix.c b/keyboards/comet46/matrix.c index 34930af7e2058d32e9029b7e05f7b5dfa49067ca..1403f410c00996dcb069fed2e87468b1c0966824 100644 --- a/keyboards/comet46/matrix.c +++ b/keyboards/comet46/matrix.c @@ -26,7 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -79,7 +79,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); - serial_init(); + uart_init(1000000); } uint8_t matrix_scan(void) @@ -87,7 +87,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; //the s character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates entirely, erase the last data uint8_t uart_data[11] = {0}; @@ -97,13 +97,13 @@ uint8_t matrix_scan(void) //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/comet46/rules.mk b/keyboards/comet46/rules.mk index 814622226ac4f76ca1f4a395fbafc67c8e3d7a65..10d828cc7f08072eb265b560ba6cc4c507acd062 100644 --- a/keyboards/comet46/rules.mk +++ b/keyboards/comet46/rules.mk @@ -19,5 +19,5 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # project specific files SRC += matrix.c \ i2c.c \ - ssd1306.c \ - serial_uart.c + ssd1306.c +QUANTUM_LIB_SRC += uart.c diff --git a/keyboards/converter/palm_usb/config.h b/keyboards/converter/palm_usb/config.h index 4afc654e85c799744d87c9d090115a711670073d..35032835cd474c843e351c5ddd762e09304224b4 100644 --- a/keyboards/converter/palm_usb/config.h +++ b/keyboards/converter/palm_usb/config.h @@ -60,58 +60,3 @@ along with this program. If not, see . get_mods() == (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) || \ get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) - - -/* Serial(USART) configuration - * asynchronous, negative logic, 9600baud, no flow control - * 1-start bit, 8-data bit, non parity, 1-stop bit - */ -#define SERIAL_SOFT_BAUD 9600 -#define SERIAL_SOFT_PARITY_NONE -#define SERIAL_SOFT_BIT_ORDER_LSB -#if (HANDSPRING == 0) - #define SERIAL_SOFT_LOGIC_NEGATIVE //RS232 logic -#endif -/* RXD Port */ -#define SERIAL_SOFT_RXD_ENABLE - -// we are using Pro micro pin 3 / D0 as serial -#define SERIAL_SOFT_RXD_DDR DDRD -#define SERIAL_SOFT_RXD_PORT PORTD -#define SERIAL_SOFT_RXD_PIN PIND -#define SERIAL_SOFT_RXD_BIT 0 -#define SERIAL_SOFT_RXD_VECT INT0_vect - -/* RXD Interupt */ -#define SERIAL_SOFT_RXD_INIT() do { \ - /* pin configuration: input with pull-up */ \ - SERIAL_SOFT_RXD_DDR &= ~(1<. */ #include QMK_KEYBOARD_H -#include "protocol/serial.h" +#include "uart.h" #include "timer.h" @@ -164,7 +164,7 @@ uint8_t rts_reset(void) { uint8_t get_serial_byte(void) { static uint8_t code; while(1) { - code = serial_recv(); + code = uart_read(); if (code) { debug_hex(code); debug(" "); return code; @@ -240,7 +240,7 @@ void matrix_init(void) debug_enable = true; //debug_matrix =true; - serial_init(); // arguments all #defined + uart_init(9600); // arguments all #defined #if (HANDSPRING == 0) pins_init(); // set all inputs and outputs. @@ -290,7 +290,7 @@ void matrix_init(void) uint8_t matrix_scan(void) { uint8_t code; - code = serial_recv(); + code = uart_read(); if (!code) { /* disconnect_counter ++; diff --git a/keyboards/converter/palm_usb/post_rules.mk b/keyboards/converter/palm_usb/post_rules.mk deleted file mode 100644 index 9c110767015e6b0116940c34714a19ec8c38cca5..0000000000000000000000000000000000000000 --- a/keyboards/converter/palm_usb/post_rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -ifdef HARDWARE_SERIAL - # Untested with palm_usb - SRC += protocol/serial_uart.c - OPT_DEFS += -DHARDWARE_SERIAL -else - SRC += protocol/serial_soft.c -endif diff --git a/keyboards/converter/palm_usb/rules.mk b/keyboards/converter/palm_usb/rules.mk index c5e680b8830d949967a9d78664fa84e6c0e52d89..a1d2e39b233b98def42c19ccc9cefae4b14dad93 100644 --- a/keyboards/converter/palm_usb/rules.mk +++ b/keyboards/converter/palm_usb/rules.mk @@ -20,5 +20,6 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. CUSTOM_MATRIX = yes SRC += matrix.c +QUANTUM_LIB_SRC += uart.c DEFAULT_FOLDER = converter/palm_usb/stowaway diff --git a/keyboards/converter/sun_usb/command_extra.c b/keyboards/converter/sun_usb/command_extra.c index 756a9160bb1f73ded6bbd2b0e08427e5103d42e8..332776ab904e43ea2ab2456d5620e33f337c1d21 100644 --- a/keyboards/converter/sun_usb/command_extra.c +++ b/keyboards/converter/sun_usb/command_extra.c @@ -1,5 +1,5 @@ #include QMK_KEYBOARD_H -#include "protocol/serial.h" +#include "uart.h" bool sun_bell = false; bool sun_click = false; @@ -20,41 +20,41 @@ bool command_extra(uint8_t code) return false; case KC_DEL: print("Reset\n"); - serial_send(0x01); + uart_write(0x01); break; case KC_HOME: sun_bell = !sun_bell; if (sun_bell) { print("Bell On\n"); - serial_send(0x02); + uart_write(0x02); } else { print("Bell Off\n"); - serial_send(0x03); + uart_write(0x03); } break; case KC_END: sun_click = !sun_click; if (sun_click) { print("Click On\n"); - serial_send(0x0A); + uart_write(0x0A); } else { print("Click Off\n"); - serial_send(0x0B); + uart_write(0x0B); } break; case KC_PGUP: print("LED all on\n"); - serial_send(0x0E); - serial_send(0xFF); + uart_write(0x0E); + uart_write(0xFF); break; case KC_PGDOWN: print("LED all off\n"); - serial_send(0x0E); - serial_send(0x00); + uart_write(0x0E); + uart_write(0x00); break; case KC_INSERT: print("layout\n"); - serial_send(0x0F); + uart_write(0x0F); break; default: xprintf("Unknown extra command: %02X\n", code); diff --git a/keyboards/converter/sun_usb/config.h b/keyboards/converter/sun_usb/config.h index c67ae5ebae86bcbddcfca9e8d1c7daa2193c1d72..0a4aa019f781505ee3dce45bb81ebab6a311e5f4 100644 --- a/keyboards/converter/sun_usb/config.h +++ b/keyboards/converter/sun_usb/config.h @@ -33,50 +33,3 @@ along with this program. If not, see . get_mods() == (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) || \ get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) - - -/* Serial(USART) configuration - * asynchronous, negative logic, 1200baud, no flow control - * 1-start bit, 8-data bit, non parity, 1-stop bit - */ -#define SERIAL_SOFT_BAUD 1200 -#define SERIAL_SOFT_PARITY_NONE -#define SERIAL_SOFT_BIT_ORDER_LSB -#define SERIAL_SOFT_LOGIC_NEGATIVE -/* RXD Port */ -#define SERIAL_SOFT_RXD_ENABLE -#define SERIAL_SOFT_RXD_DDR DDRD -#define SERIAL_SOFT_RXD_PORT PORTD -#define SERIAL_SOFT_RXD_PIN PIND -#define SERIAL_SOFT_RXD_BIT 2 -#define SERIAL_SOFT_RXD_VECT INT2_vect -/* RXD Interupt */ -#define SERIAL_SOFT_RXD_INIT() do { \ - /* pin configuration: input with pull-up */ \ - SERIAL_SOFT_RXD_DDR &= ~(1<. */ #include QMK_KEYBOARD_H -#include "protocol/serial.h" +#include "uart.h" void led_set(uint8_t usb_led) { @@ -27,6 +27,6 @@ void led_set(uint8_t usb_led) if (usb_led & (1<. */ #include QMK_KEYBOARD_H -#include "protocol/serial.h" +#include "uart.h" /* * Matrix Array usage: @@ -74,7 +74,7 @@ void matrix_init(void) /* PORTD |= (1<<6); */ debug_enable = true; - serial_init(); + uart_init(1200); // initialize matrix state: all keys off for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00; @@ -84,12 +84,12 @@ void matrix_init(void) /* print("Reseting "); */ /* while (1) { */ /* print("."); */ - /* while (serial_recv()); */ - /* serial_send(0x01); */ + /* while (uart_read()); */ + /* uart_write(0x01); */ /* _delay_ms(500); */ - /* if (serial_recv() == 0xFF) { */ + /* if (uart_read() == 0xFF) { */ /* _delay_ms(500); */ - /* if (serial_recv() == 0x04) */ + /* if (uart_read() == 0x04) */ /* break; */ /* } */ /* } */ @@ -104,7 +104,7 @@ void matrix_init(void) uint8_t matrix_scan(void) { uint8_t code; - code = serial_recv(); + code = uart_read(); if (!code) return 0; debug_hex(code); debug(" "); @@ -113,7 +113,7 @@ uint8_t matrix_scan(void) case 0xFF: // reset success: FF 04 print("reset: "); _delay_ms(500); - code = serial_recv(); + code = uart_read(); xprintf("%02X\n", code); if (code == 0x04) { // LED status @@ -123,12 +123,12 @@ uint8_t matrix_scan(void) case 0xFE: // layout: FE print("layout: "); _delay_ms(500); - xprintf("%02X\n", serial_recv()); + xprintf("%02X\n", uart_read()); return 0; case 0x7E: // reset fail: 7E 01 print("reset fail: "); _delay_ms(500); - xprintf("%02X\n", serial_recv()); + xprintf("%02X\n", uart_read()); return 0; case 0x7F: // all keys up diff --git a/keyboards/converter/sun_usb/post_rules.mk b/keyboards/converter/sun_usb/post_rules.mk deleted file mode 100644 index 2ea1f0a5bf3e004f2a9d5f40647adeb01d8a4af3..0000000000000000000000000000000000000000 --- a/keyboards/converter/sun_usb/post_rules.mk +++ /dev/null @@ -1,6 +0,0 @@ -ifdef HARDWARE_SERIAL - SRC += protocol/serial_uart.c - OPT_DEFS += -DHARDWARE_SERIAL -else - SRC += protocol/serial_soft.c -endif diff --git a/keyboards/converter/sun_usb/rules.mk b/keyboards/converter/sun_usb/rules.mk index 2f2ddde1d04e5fc5eac053cf40d100a4326d6b05..d25bcc7ffa77e9931e6df757b1597ea9c28f330b 100644 --- a/keyboards/converter/sun_usb/rules.mk +++ b/keyboards/converter/sun_usb/rules.mk @@ -20,5 +20,6 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. CUSTOM_MATRIX = yes SRC += matrix.c led.c +QUANTUM_LIB_SRC += uart.c DEFAULT_FOLDER = converter/sun_usb/type5 diff --git a/keyboards/dichotomy/config.h b/keyboards/dichotomy/config.h index 03e19b138838c56ccec15c9f18a77ef201f79584..40e7f18e6f796070452001dc771839c455ac428c 100644 --- a/keyboards/dichotomy/config.h +++ b/keyboards/dichotomy/config.h @@ -56,12 +56,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/dichotomy/dichotomy.c b/keyboards/dichotomy/dichotomy.c index 967d7e603cec1f33269579d42db88c307345237d..afd52cc8b3c21f6ae93978d58a1989688c49ae0a 100755 --- a/keyboards/dichotomy/dichotomy.c +++ b/keyboards/dichotomy/dichotomy.c @@ -1,11 +1,13 @@ #include "dichotomy.h" +//#include "uart.h" + void pointing_device_task(void){ /*report_mouse_t currentReport = {}; uint32_t timeout = 0; //the m character requests the RF slave to send the mouse report - SERIAL_UART_DATA = 'm'; + uart_write('m'); //trust the external inputs completely, erase old data uint8_t uart_data[5] = {0}; @@ -15,7 +17,7 @@ void pointing_device_task(void){ //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ xprintf("\r\nTIMED OUT"); @@ -23,7 +25,7 @@ void pointing_device_task(void){ } } xprintf("\r\nGOT DATA for %d",i); - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, bytes 1-4 are movement and scroll diff --git a/keyboards/dichotomy/matrix.c b/keyboards/dichotomy/matrix.c index ed83bd452c103c7cfd1e6299ccbac408ba3f6e5a..806b66d498cdebc0b8a0471fa5d41d4c08d15cad 100755 --- a/keyboards/dichotomy/matrix.c +++ b/keyboards/dichotomy/matrix.c @@ -29,7 +29,7 @@ along with this program. If not, see . #include "dichotomy.h" #include "pointing_device.h" #include "report.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -94,7 +94,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); - serial_init(); + uart_init(1000000); } uint8_t matrix_scan(void) @@ -104,7 +104,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; //the s character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates entirely, erase the last data uint8_t uart_data[11] = {0}; @@ -114,14 +114,14 @@ uint8_t matrix_scan(void) //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ xprintf("\r\nTime out in keyboard."); break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/dichotomy/rules.mk b/keyboards/dichotomy/rules.mk index 2b5eb0360cc9e684967d70a7f0496751411434a6..a6029e3dbf17cf8d335e96eb15167c9cdb484a52 100755 --- a/keyboards/dichotomy/rules.mk +++ b/keyboards/dichotomy/rules.mk @@ -18,4 +18,5 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c diff --git a/keyboards/honeycomb/config.h b/keyboards/honeycomb/config.h index 725f9490cbe4195bf103bff386d04872c6ad1203..c9595436183feba506d2eb88a8d58588bc21262e 100755 --- a/keyboards/honeycomb/config.h +++ b/keyboards/honeycomb/config.h @@ -45,12 +45,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/honeycomb/honeycomb.c b/keyboards/honeycomb/honeycomb.c index 1254196d39c2cdf59528062e8eb31c58eecc10d4..603400c7a39ad269406ad4328e586bb83b05f70a 100755 --- a/keyboards/honeycomb/honeycomb.c +++ b/keyboards/honeycomb/honeycomb.c @@ -7,7 +7,7 @@ void pointing_device_task(void){ uint32_t timeout = 0; //the m character requests the RF slave to send the mouse report - SERIAL_UART_DATA = 'm'; + uart_write('m'); //trust the external inputs completely, erase old data uint8_t uart_data[5] = {0}; @@ -17,7 +17,7 @@ void pointing_device_task(void){ //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ xprintf("\r\nTIMED OUT"); @@ -25,7 +25,7 @@ void pointing_device_task(void){ } } xprintf("\r\nGOT DATA for %d",i); - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, bytes 1-4 are movement and scroll diff --git a/keyboards/honeycomb/matrix.c b/keyboards/honeycomb/matrix.c index 7fef6f0fd8522f0a22294a976957a42a8166d8ee..fe1e4ce8ff6af125343bdde192ff592a594e9573 100755 --- a/keyboards/honeycomb/matrix.c +++ b/keyboards/honeycomb/matrix.c @@ -30,7 +30,7 @@ along with this program. If not, see . #include "honeycomb.h" #include "pointing_device.h" #include "report.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -95,7 +95,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); - serial_init(); + uart_init(1000000); } uint8_t matrix_scan(void) @@ -103,7 +103,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; // The 's' character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); // Trust the external keystates entirely, erase the last data uint8_t uart_data[4] = {0}; @@ -113,14 +113,14 @@ uint8_t matrix_scan(void) // Wait for the serial data, timeout if it's been too long // This only happened in testing with a loose wire, but does no // harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ xprintf("\r\nTime out in keyboard."); break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } // Check for the end packet, it's our checksum. diff --git a/keyboards/honeycomb/rules.mk b/keyboards/honeycomb/rules.mk index 2b5eb0360cc9e684967d70a7f0496751411434a6..a6029e3dbf17cf8d335e96eb15167c9cdb484a52 100755 --- a/keyboards/honeycomb/rules.mk +++ b/keyboards/honeycomb/rules.mk @@ -18,4 +18,5 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c diff --git a/keyboards/mitosis/config.h b/keyboards/mitosis/config.h index 94e84e680e743cb6a590ef33745f3279fa79fd43..2c72eed5f2d4c8b94cee231fde61acc0080a7532 100644 --- a/keyboards/mitosis/config.h +++ b/keyboards/mitosis/config.h @@ -56,12 +56,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/mitosis/matrix.c b/keyboards/mitosis/matrix.c index 71c372a3ce80c5539cf38bde33130094a65d3f63..102431eb67ceb77ae660f8c5138644112b314f6e 100644 --- a/keyboards/mitosis/matrix.c +++ b/keyboards/mitosis/matrix.c @@ -26,7 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -80,7 +80,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); - serial_init(); + uart_init(1000000); } uint8_t matrix_scan(void) @@ -88,7 +88,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; //the s character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates entirely, erase the last data uint8_t uart_data[11] = {0}; @@ -98,13 +98,13 @@ uint8_t matrix_scan(void) //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/mitosis/rules.mk b/keyboards/mitosis/rules.mk index 6c7aa30d88382936d0880c567e3af4991d2ab6f5..04cafae71821bcae2a8ea223f864eb94b1599ac4 100644 --- a/keyboards/mitosis/rules.mk +++ b/keyboards/mitosis/rules.mk @@ -18,4 +18,5 @@ NKRO_ENABLE = yes # Enable N-Key Rollover UNICODE_ENABLE = yes # Unicode # # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c diff --git a/keyboards/planck/keymaps/thermal_printer/config.h b/keyboards/planck/keymaps/thermal_printer/config.h index 4ae9ced2581faafc065e0aa5f586f42eeb7dcb05..dd9d6a9d2591fb60fb0d1b6a5bde79784fbfdaa5 100644 --- a/keyboards/planck/keymaps/thermal_printer/config.h +++ b/keyboards/planck/keymaps/thermal_printer/config.h @@ -1,9 +1,4 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -#define SERIAL_UART_BAUD 19200 +#pragma once /* * MIDI options @@ -21,8 +16,3 @@ - etc. */ //#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 2 - - #endif \ No newline at end of file diff --git a/keyboards/redox_w/config.h b/keyboards/redox_w/config.h index b480b072f99a647c07a314055128372c161afa45..c4aeb32d58570719098d6ead9b8f3551c063fb97 100644 --- a/keyboards/redox_w/config.h +++ b/keyboards/redox_w/config.h @@ -55,12 +55,3 @@ //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/redox_w/matrix.c b/keyboards/redox_w/matrix.c index 703987a93967ec940b67cbcebbbb4a1d5ad68f8b..752324837c740cd66c2be649734779cb6486ba60 100644 --- a/keyboards/redox_w/matrix.c +++ b/keyboards/redox_w/matrix.c @@ -24,7 +24,7 @@ #include "util.h" #include "matrix.h" #include "timer.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -87,7 +87,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); - serial_init(); + uart_init(1000000); } uint8_t matrix_scan(void) @@ -95,7 +95,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; //the s character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates entirely, erase the last data uint8_t uart_data[11] = {0}; @@ -105,13 +105,13 @@ uint8_t matrix_scan(void) //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/redox_w/rules.mk b/keyboards/redox_w/rules.mk index a8bd3a027a225a460b12d18cabcb45b97f4b6e14..483485cb7d6ae8933cb29b9908528fcf1b320a07 100644 --- a/keyboards/redox_w/rules.mk +++ b/keyboards/redox_w/rules.mk @@ -17,4 +17,5 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c diff --git a/keyboards/sirius/uni660/rev1/config.h b/keyboards/sirius/uni660/rev1/config.h index 91d7c5d7a3ab30bcfbc72fb0e3ccb1d967d6ed6c..f9815844cb2a187a144b5d171caa9716f8cd747e 100644 --- a/keyboards/sirius/uni660/rev1/config.h +++ b/keyboards/sirius/uni660/rev1/config.h @@ -57,13 +57,4 @@ along with this program. If not, see . #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); - #define DYNAMIC_KEYMAP_LAYER_COUNT 4 diff --git a/keyboards/sirius/uni660/rev1/matrix.c b/keyboards/sirius/uni660/rev1/matrix.c index 2db6767a46f6f529977811294a525a6d97c2befb..65c35c968b0bb04f582f3a0be80921932aa31993 100644 --- a/keyboards/sirius/uni660/rev1/matrix.c +++ b/keyboards/sirius/uni660/rev1/matrix.c @@ -27,7 +27,7 @@ along with this program. If not, see . #include "matrix.h" #include "timer.h" #include "debounce.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -81,7 +81,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { debounce_init(MATRIX_ROWS); matrix_init_quantum(); - serial_init(); + uart_init(1000000); } uint8_t matrix_scan(void) @@ -91,7 +91,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; //the s character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates entirely, erase the last data uint8_t uart_data[17] = {0}; @@ -101,13 +101,13 @@ uint8_t matrix_scan(void) //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/sirius/uni660/rev1/rules.mk b/keyboards/sirius/uni660/rev1/rules.mk index 836bf6b4423a091eec933b8eac36244df2405250..77b9af362e72449bb65102892db2f38aad4b7de0 100644 --- a/keyboards/sirius/uni660/rev1/rules.mk +++ b/keyboards/sirius/uni660/rev1/rules.mk @@ -20,4 +20,5 @@ UNICODE_ENABLE = yes # Unicode CUSTOM_MATRIX = yes # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c diff --git a/keyboards/sirius/uni660/rev2/ansi/config.h b/keyboards/sirius/uni660/rev2/ansi/config.h index 13e33ebf118b88fc2ac4cc47e00000ad8ee4789c..8777dc4011167f2c81a6583eee8700f344ae5a87 100644 --- a/keyboards/sirius/uni660/rev2/ansi/config.h +++ b/keyboards/sirius/uni660/rev2/ansi/config.h @@ -57,13 +57,4 @@ along with this program. If not, see . #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); - #define DYNAMIC_KEYMAP_LAYER_COUNT 4 diff --git a/keyboards/sirius/uni660/rev2/iso/config.h b/keyboards/sirius/uni660/rev2/iso/config.h index 3283f0cd6772e467f49e7851bc1decfacd589bf6..763230dca8180521c0832dbe312d3a3fb7a95765 100644 --- a/keyboards/sirius/uni660/rev2/iso/config.h +++ b/keyboards/sirius/uni660/rev2/iso/config.h @@ -57,13 +57,4 @@ along with this program. If not, see . #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); - #define DYNAMIC_KEYMAP_LAYER_COUNT 4 diff --git a/keyboards/sirius/uni660/rev2/matrix.c b/keyboards/sirius/uni660/rev2/matrix.c index 2db6767a46f6f529977811294a525a6d97c2befb..65c35c968b0bb04f582f3a0be80921932aa31993 100644 --- a/keyboards/sirius/uni660/rev2/matrix.c +++ b/keyboards/sirius/uni660/rev2/matrix.c @@ -27,7 +27,7 @@ along with this program. If not, see . #include "matrix.h" #include "timer.h" #include "debounce.h" -#include "protocol/serial.h" +#include "uart.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -81,7 +81,7 @@ uint8_t matrix_cols(void) { void matrix_init(void) { debounce_init(MATRIX_ROWS); matrix_init_quantum(); - serial_init(); + uart_init(1000000); } uint8_t matrix_scan(void) @@ -91,7 +91,7 @@ uint8_t matrix_scan(void) uint32_t timeout = 0; //the s character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates entirely, erase the last data uint8_t uart_data[17] = {0}; @@ -101,13 +101,13 @@ uint8_t matrix_scan(void) //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while(!SERIAL_UART_RXD_PRESENT){ + while(!uart_available()){ timeout++; if (timeout > 10000){ break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/sirius/uni660/rev2/rules.mk b/keyboards/sirius/uni660/rev2/rules.mk index 0abebb07c615db74083cc9984f6c3cf926b6662b..f3ff80d92ebd20ab13effbf12592a5978650d7a5 100644 --- a/keyboards/sirius/uni660/rev2/rules.mk +++ b/keyboards/sirius/uni660/rev2/rules.mk @@ -20,6 +20,7 @@ UNICODE_ENABLE = yes # Unicode CUSTOM_MATRIX = yes # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c DEFAULT_FOLDER = sirius/uni660/rev2/ansi diff --git a/keyboards/telophase/config.h b/keyboards/telophase/config.h index 51718da9d4c1cfef64b190ec49596816006143e6..837bb8ab9b49e7e0edfd48308dd1043e27f3a544 100644 --- a/keyboards/telophase/config.h +++ b/keyboards/telophase/config.h @@ -72,12 +72,3 @@ along with this program. If not, see . /* disable these deprecated features by default */ #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION - -// UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT_CUSTOM \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/telophase/matrix.c b/keyboards/telophase/matrix.c index a153dd4bf140e581e7e848d22b0d0cfef66d4e8e..44b7e4c9e9b333e32c932a972e952ece71cefed8 100644 --- a/keyboards/telophase/matrix.c +++ b/keyboards/telophase/matrix.c @@ -18,10 +18,10 @@ along with this program. If not, see . #include "quantum.h" #include "matrix.h" -#include "protocol/serial.h" +#include "uart.h" void matrix_init_custom(void) { - serial_init(); + uart_init(1000000); } bool matrix_scan_custom(matrix_row_t current_matrix[]) { @@ -29,7 +29,7 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { bool changed = false; //the s character requests the RF slave to send the matrix - SERIAL_UART_DATA = 's'; + uart_write('s'); //trust the external keystates entirely, erase the last data uint8_t uart_data[13] = {0}; @@ -39,13 +39,13 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { //wait for the serial data, timeout if it's been too long //this only happened in testing with a loose wire, but does no //harm to leave it in here - while (!SERIAL_UART_RXD_PRESENT) { + while (!uart_available()) { timeout++; if (timeout > 10000) { break; } } - uart_data[i] = SERIAL_UART_DATA; + uart_data[i] = uart_read(); } //check for the end packet, the key state bytes use the LSBs, so 0xE0 diff --git a/keyboards/telophase/rules.mk b/keyboards/telophase/rules.mk index c3a8aaf79f338dd31cfbe07b0eff2b62f3cbe8f5..41a6ee25f5c835776a33d24609292fd4fe68eb2f 100644 --- a/keyboards/telophase/rules.mk +++ b/keyboards/telophase/rules.mk @@ -19,7 +19,8 @@ AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = lite # project specific files -SRC += matrix.c serial_uart.c +SRC += matrix.c +QUANTUM_LIB_SRC += uart.c # Disable unsupported hardware RGBLIGHT_SUPPORTED = no diff --git a/quantum/process_keycode/process_printer.c b/quantum/process_keycode/process_printer.c index 82528cc680db1070a28398012ef27ea2f29d45bd..0801f078eff6ed2e846f1005529b237ad553ded1 100644 --- a/quantum/process_keycode/process_printer.c +++ b/quantum/process_keycode/process_printer.c @@ -16,13 +16,14 @@ #include "process_printer.h" #include "action_util.h" +#include "uart.h" bool printing_enabled = false; uint8_t character_shift = 0; void enable_printing(void) { printing_enabled = true; - serial_init(); + uart_init(19200); } void disable_printing(void) { printing_enabled = false; } @@ -35,7 +36,7 @@ uint8_t shifted_numbers[10] = {0x21, 0x40, 0x23, 0x24, 0x25, 0x5E, 0x26, 0x2A, 0 void print_char(char c) { USB_Disable(); - serial_send(c); + uart_write(c); USB_Init(); } diff --git a/quantum/process_keycode/process_printer.h b/quantum/process_keycode/process_printer.h index 3c6d06ff94afd486b02bd5dbd43e3b45ae108929..6f4d09f33310e0ecc541b10f120264059f16579f 100644 --- a/quantum/process_keycode/process_printer.h +++ b/quantum/process_keycode/process_printer.h @@ -18,6 +18,4 @@ #include "quantum.h" -#include "protocol/serial.h" - bool process_printer(uint16_t keycode, keyrecord_t *record);