~ruther/qmk_firmware

d4be4b67a251ecc046d857c5cd00cfb37c394ab7 — Joel Challis 3 years ago 5500c42
Relocate PS2 code (#14895)

* Relocate ps2 protocol code

* clang

* Move makefile logic
M common_features.mk => common_features.mk +34 -0
@@ 576,6 576,40 @@ ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
    endif
endif

ifeq ($(strip $(PS2_MOUSE_ENABLE)), yes)
    PS2_ENABLE := yes
    SRC += ps2_mouse.c
    OPT_DEFS += -DPS2_MOUSE_ENABLE
    OPT_DEFS += -DMOUSE_ENABLE
endif

ifeq ($(strip $(PS2_USE_BUSYWAIT)), yes)
    PS2_ENABLE := yes
    SRC += ps2_busywait.c
    SRC += ps2_io_avr.c
    OPT_DEFS += -DPS2_USE_BUSYWAIT
endif

ifeq ($(strip $(PS2_USE_INT)), yes)
    PS2_ENABLE := yes
    SRC += ps2_interrupt.c
    SRC += ps2_io.c
    OPT_DEFS += -DPS2_USE_INT
endif

ifeq ($(strip $(PS2_USE_USART)), yes)
    PS2_ENABLE := yes
    SRC += ps2_usart.c
    SRC += ps2_io.c
    OPT_DEFS += -DPS2_USE_USART
endif

ifeq ($(strip $(PS2_ENABLE)), yes)
    COMMON_VPATH += $(DRIVER_PATH)/ps2
    COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/ps2
    OPT_DEFS += -DPS2_ENABLE
endif

JOYSTICK_ENABLE ?= no
VALID_JOYSTICK_TYPES := analog digital
JOYSTICK_DRIVER ?= analog

R tmk_core/protocol/ps2.h => drivers/ps2/ps2.h +0 -0
R tmk_core/protocol/ps2_busywait.c => drivers/ps2/ps2_busywait.c +0 -0
R tmk_core/protocol/ps2_interrupt.c => drivers/ps2/ps2_interrupt.c +0 -0
R tmk_core/protocol/ps2_io.h => drivers/ps2/ps2_io.h +0 -0
R tmk_core/protocol/ps2_mouse.c => drivers/ps2/ps2_mouse.c +3 -7
@@ 16,13 16,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include <stdbool.h>

#if defined(__AVR__)
#    include <avr/io.h>
#endif

#include "ps2_mouse.h"
#include "wait.h"
#include "gpio.h"
#include "host.h"
#include "timer.h"
#include "print.h"


@@ 158,8 154,8 @@ static inline void ps2_mouse_convert_report_to_hid(report_mouse_t *mouse_report)

#ifdef PS2_MOUSE_INVERT_BUTTONS
    // swap left & right buttons
    uint8_t needs_left = mouse_report->buttons & PS2_MOUSE_BTN_RIGHT;
    uint8_t needs_right = mouse_report->buttons & PS2_MOUSE_BTN_LEFT;
    uint8_t needs_left    = mouse_report->buttons & PS2_MOUSE_BTN_RIGHT;
    uint8_t needs_right   = mouse_report->buttons & PS2_MOUSE_BTN_LEFT;
    mouse_report->buttons = (mouse_report->buttons & ~(PS2_MOUSE_BTN_MASK)) | (needs_left ? PS2_MOUSE_BTN_LEFT : 0) | (needs_right ? PS2_MOUSE_BTN_RIGHT : 0);
#else
    // remove sign and overflow flags

R tmk_core/protocol/ps2_mouse.h => drivers/ps2/ps2_mouse.h +0 -0
R tmk_core/protocol/ps2_io_avr.c => platforms/avr/drivers/ps2/ps2_io.c +0 -0
R tmk_core/protocol/ps2_usart.c => platforms/avr/drivers/ps2/ps2_usart.c +1 -0
@@ 42,6 42,7 @@ POSSIBILITY OF SUCH DAMAGE.
#include <stdbool.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "gpio.h"
#include "ps2.h"
#include "ps2_io.h"
#include "print.h"

R tmk_core/protocol/ps2_io_chibios.c => platforms/chibios/drivers/ps2/ps2_io.c +0 -0
M tmk_core/protocol.mk => tmk_core/protocol.mk +0 -25
@@ 1,30 1,5 @@
PROTOCOL_DIR = protocol

ifeq ($(strip $(PS2_MOUSE_ENABLE)), yes)
    SRC += $(PROTOCOL_DIR)/ps2_mouse.c
    OPT_DEFS += -DPS2_MOUSE_ENABLE
    OPT_DEFS += -DMOUSE_ENABLE
endif

ifeq ($(strip $(PS2_USE_BUSYWAIT)), yes)
    SRC += protocol/ps2_busywait.c
    SRC += protocol/ps2_io_avr.c
    OPT_DEFS += -DPS2_USE_BUSYWAIT
endif

ifeq ($(strip $(PS2_USE_INT)), yes)
    SRC += protocol/ps2_interrupt.c
    SRC += protocol/ps2_io_$(PLATFORM_KEY).c
    OPT_DEFS += -DPS2_USE_INT
endif

ifeq ($(strip $(PS2_USE_USART)), yes)
    SRC += protocol/ps2_usart.c
    SRC += protocol/ps2_io_$(PLATFORM_KEY).c
    OPT_DEFS += -DPS2_USE_USART
endif


ifeq ($(strip $(SERIAL_MOUSE_MICROSOFT_ENABLE)), yes)
    SRC += $(PROTOCOL_DIR)/serial_mouse_microsoft.c
    OPT_DEFS += -DSERIAL_MOUSE_ENABLE -DSERIAL_MOUSE_MICROSOFT \