[Core] Rework PS/2 driver selection (#17892)

* [Core] Rework PS/2 driver selection

Enabling and selecting PS/2 driver was using old approach,
so it was reworked to current approach, inspired by Serial
and WS2812 driver selections.

* [Keyboard] Update keyboards using PS/2 to use new PS/2 driver selection

* [Docs] Update PS/2 documentation to use new PS/2 driver selection

* Fix indentation

* [Core] Add PS2 to data driver

* Fix oversight in property name

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Add PS/2 pins to data driven mappings

Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
Marek Kraus
2022-08-31 09:16:07 +02:00
committed by GitHub
parent ba7030d216
commit 0237ff0c62
26 changed files with 93 additions and 61 deletions

View File

@@ -35,7 +35,7 @@
#define SPLIT_OLED_ENABLE
#endif
#ifdef PS2_USE_INT
#ifdef PS2_DRIVER_INTERRUPT
#define PS2_CLOCK_PIN E6
#define PS2_DATA_PIN D7

View File

@@ -1,3 +1,4 @@
OLED_DRIVER = SSD1306
PS2_USE_INT = yes
PS2_ENABLE = yes
PS2_DRIVER = interrupt

View File

@@ -36,7 +36,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/*
* PS/2 USART configuration for ATMega32U4
*/
#ifdef PS2_USE_USART
#ifdef PS2_DRIVER_USART
/* XCK for clock line */
#define PS2_CLOCK_PIN D5
#define PS2_DATA_PIN D2
@@ -77,7 +77,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/*
* PS/2 Interrupt configuration
*/
#ifdef PS2_USE_INT
#ifdef PS2_DRIVER_INTERRUPT
/* uses INT1 for clock line(ATMega32U4) */
#define PS2_CLOCK_PIN D1
#define PS2_DATA_PIN D0
@@ -99,7 +99,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/*
* PS/2 Busywait configuration
*/
#ifdef PS2_USE_BUSYWAIT
#ifdef PS2_DRIVER_BUSYWAIT
#define PS2_CLOCK_PIN D1
#define PS2_DATA_PIN D0
#endif

View File

@@ -7,4 +7,5 @@ NKRO_ENABLE = yes
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
PS2_USE_USART = yes
PS2_ENABLE = yes
PS2_DRIVER = usart

View File

@@ -1,5 +1,5 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
@@ -14,8 +14,9 @@ AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
UNICODEMAP_ENABLE = yes
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
PS2_USE_USART = yes
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
PS2_ENABLE = yes
PS2_DRIVER = usart
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View File

@@ -16,7 +16,8 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
PS2_USE_USART = yes
PS2_ENABLE = yes
PS2_DRIVER = usart
CUSTOM_MATRIX = yes
SRC = matrix.c led.c

View File

@@ -16,7 +16,7 @@
#pragma once
#ifdef PS2_USE_USART
#ifdef PS2_DRIVER_USART
#define PS2_CLOCK_PIN D5
#define PS2_DATA_PIN D2
@@ -51,7 +51,7 @@
#define PS2_USART_ERROR (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1)))
#define PS2_USART_RX_VECT USART1_RX_vect
#define PS2_MOUSE_ENABLE_SCROLLING
#define PS2_MOUSE_INIT_DELAY 1000
#define PS2_MOUSE_INIT_DELAY 1000
#define PS2_MOUSE_BTN_LEFT 0
#define PS2_MOUSE_BTN_RIGHT 1
#define PS2_MOUSE_BTN_MIDDLE 2

View File

@@ -2,4 +2,5 @@
# change yes to no to disable
#
PS2_MOUSE_ENABLE = yes
PS2_USE_USART = yes
PS2_ENABLE = yes
PS2_DRIVER = usart

View File

@@ -5,7 +5,7 @@
#define MATRIX_ROWS 8
#define MATRIX_COLS 23
#ifdef PS2_USE_USART
#ifdef PS2_DRIVER_USART
#define PS2_CLOCK_PIN D5
#define PS2_DATA_PIN D2

View File

@@ -17,4 +17,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
PS2_MOUSE_ENABLE = yes
PS2_USE_USART = yes
PS2_ENABLE = yes
PS2_DRIVER = usart

View File

@@ -210,13 +210,13 @@ enum led_sequence {
#endif
/* PS/2 mouse */
#ifdef PS2_USE_BUSYWAIT
#ifdef PS2_DRIVER_BUSYWAIT
# define PS2_CLOCK_PIN D3
# define PS2_DATA_PIN D2
#endif
/* PS/2 mouse interrupt version */
#ifdef PS2_USE_INT
#ifdef PS2_DRIVER_INTERRUPT
/* uses INT1 for clock line(ATMega32U4) */
# define PS2_CLOCK_PIN D3
# define PS2_DATA_PIN D2
@@ -237,7 +237,7 @@ enum led_sequence {
#endif
/* PS/2 mouse USART version */
#ifdef PS2_USE_USART
#ifdef PS2_DRIVER_USART
/* XCK for clock line and RXD for data line */
#define PS2_CLOCK_PIN D5
#define PS2_DATA_PIN D2

View File

@@ -9,4 +9,5 @@ AUDIO_ENABLE = no # Audio output
UNICODEMAP_ENABLE = yes
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
PS2_MOUSE_ENABLE = yes
PS2_USE_INT = yes
PS2_ENABLE = yes
PS2_DRIVER = interrupt

View File

@@ -17,7 +17,8 @@ UNICODE_ENABLE = no # Unicode
UNICODEMAP_ENABLE = yes
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
PS2_MOUSE_ENABLE = yes
PS2_USE_INT = yes
PS2_ENABLE = yes
PS2_DRIVER = interrupt
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View File

@@ -20,7 +20,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
PS2_MOUSE_ENABLE = yes
PS2_USE_INT = yes
PS2_ENABLE = yes
PS2_DRIVER = interrupt
CUSTOM_MATRIX = yes
BLUETOOTH_ENABLE = yes
BLUETOOTH_DRIVER = BluefruitLE

View File

@@ -5,7 +5,7 @@
#define MATRIX_ROWS 1
#define MATRIX_COLS 3
#ifdef PS2_USE_USART
#ifdef PS2_DRIVER_USART
#define PS2_CLOCK_PIN D5
#define PS2_DATA_PIN D2

View File

@@ -17,4 +17,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
PS2_MOUSE_ENABLE = yes
PS2_USE_USART = yes
PS2_ENABLE = yes
PS2_DRIVER = usart

View File

@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BOOTMAGIC_LITE_COLUMN 6
/* Only required if you add in a trackpoint hardware to the pcb */
#ifdef PS2_USE_USART
#ifdef PS2_DRIVER_USART
#define PS2_CLOCK_PIN D5
#define PS2_DATA_PIN D2
@@ -63,7 +63,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define PS2_USART_RX_VECT USART1_RX_vect
#endif
#ifdef PS2_USE_INT
#ifdef PS2_DRIVER_INTERRUPT
#define PS2_CLOCK_PIN D2
#define PS2_DATA_PIN D5

View File

@@ -31,7 +31,7 @@
#define COMBO_COUNT 3
#define COMBO_TERM 35
#ifdef PS2_USE_USART
#ifdef PS2_DRIVER_USART
#define PS2_CLOCK_PIN D5
#define PS2_DATA_PIN D2

View File

@@ -1,6 +1,7 @@
ifeq ($(strip $(TRACKPOINT)), yes)
PS2_MOUSE_ENABLE = yes
PS2_USE_USART = yes
PS2_ENABLE = yes
PS2_DRIVER = usart
OPT_DEFS += -DUSART
endif