diff options
Diffstat (limited to 'tmk_core/protocol')
| -rw-r--r-- | tmk_core/protocol/arm_atsam/main_arm_atsam.c | 3 | ||||
| -rw-r--r-- | tmk_core/protocol/chibios.mk | 1 | ||||
| -rw-r--r-- | tmk_core/protocol/chibios/main.c | 16 | ||||
| -rw-r--r-- | tmk_core/protocol/chibios/usb_util.c | 21 | ||||
| -rw-r--r-- | tmk_core/protocol/lufa.mk | 5 | ||||
| -rw-r--r-- | tmk_core/protocol/lufa/lufa.c | 3 | ||||
| -rw-r--r-- | tmk_core/protocol/lufa/usb_util.c | 34 | ||||
| -rw-r--r-- | tmk_core/protocol/vusb.mk | 1 | ||||
| -rw-r--r-- | tmk_core/protocol/vusb/main.c | 3 | ||||
| -rw-r--r-- | tmk_core/protocol/vusb/usb_util.c | 24 | 
10 files changed, 90 insertions, 21 deletions
| diff --git a/tmk_core/protocol/arm_atsam/main_arm_atsam.c b/tmk_core/protocol/arm_atsam/main_arm_atsam.c index e4e79d3510..ce0f54593c 100644 --- a/tmk_core/protocol/arm_atsam/main_arm_atsam.c +++ b/tmk_core/protocol/arm_atsam/main_arm_atsam.c @@ -305,6 +305,9 @@ int main(void) {              // dprintf("5v=%u 5vu=%u dlow=%u dhi=%u gca=%u gcd=%u\r\n", v_5v, v_5v_avg, v_5v_avg - V5_LOW, v_5v_avg - V5_HIGH, gcr_actual, gcr_desired);          }  #endif  // CONSOLE_ENABLE + +        // Run housekeeping +        housekeeping_task();      }      return 1; diff --git a/tmk_core/protocol/chibios.mk b/tmk_core/protocol/chibios.mk index 80554abb32..d01697835b 100644 --- a/tmk_core/protocol/chibios.mk +++ b/tmk_core/protocol/chibios.mk @@ -6,6 +6,7 @@ SRC += $(CHIBIOS_DIR)/usb_main.c  SRC += $(CHIBIOS_DIR)/main.c  SRC += usb_descriptor.c  SRC += $(CHIBIOS_DIR)/usb_driver.c +SRC += $(CHIBIOS_DIR)/usb_util.c  SRC += $(LIBSRC)  VPATH += $(TMK_PATH)/$(PROTOCOL_DIR) diff --git a/tmk_core/protocol/chibios/main.c b/tmk_core/protocol/chibios/main.c index 63e4c99d21..199741594a 100644 --- a/tmk_core/protocol/chibios/main.c +++ b/tmk_core/protocol/chibios/main.c @@ -51,12 +51,6 @@  #ifdef MIDI_ENABLE  #    include "qmk_midi.h"  #endif -#ifdef STM32_EEPROM_ENABLE -#    include "eeprom_stm32.h" -#endif -#ifdef EEPROM_DRIVER -#    include "eeprom_driver.h" -#endif  #include "suspend.h"  #include "wait.h" @@ -150,13 +144,6 @@ int main(void) {      halInit();      chSysInit(); -#ifdef STM32_EEPROM_ENABLE -    EEPROM_Init(); -#endif -#ifdef EEPROM_DRIVER -    eeprom_driver_init(); -#endif -      // TESTING      // chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); @@ -270,7 +257,6 @@ int main(void) {  #endif          // Run housekeeping -        housekeeping_task_kb(); -        housekeeping_task_user(); +        housekeeping_task();      }  } diff --git a/tmk_core/protocol/chibios/usb_util.c b/tmk_core/protocol/chibios/usb_util.c new file mode 100644 index 0000000000..5945e8a8de --- /dev/null +++ b/tmk_core/protocol/chibios/usb_util.c @@ -0,0 +1,21 @@ +/* Copyright 2021 QMK + * + * 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 3 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/>. + */ +#include <hal.h> +#include "usb_util.h" + +void usb_disable(void) { usbStop(&USBD1); } + +bool usb_connected_state(void) { return usbGetDriverStateI(&USBD1) == USB_ACTIVE; } diff --git a/tmk_core/protocol/lufa.mk b/tmk_core/protocol/lufa.mk index 1cc1fa04e5..514d5fac41 100644 --- a/tmk_core/protocol/lufa.mk +++ b/tmk_core/protocol/lufa.mk @@ -44,6 +44,7 @@ ifeq ($(strip $(VIRTSER_ENABLE)), yes)  endif  SRC += $(LUFA_SRC) +SRC += $(LUFA_DIR)/usb_util.c  # Search Path  VPATH += $(TMK_PATH)/$(LUFA_DIR) @@ -66,8 +67,8 @@ LUFA_OPTS += -DFIXED_CONTROL_ENDPOINT_SIZE=8  LUFA_OPTS += -DFIXED_CONTROL_ENDPOINT_SIZE=8  LUFA_OPTS += -DFIXED_NUM_CONFIGURATIONS=1 -# Remote wakeup fix for ATmega32U2        https://github.com/tmk/tmk_keyboard/issues/361 -ifeq ($(MCU),atmega32u2) +# Remote wakeup fix for ATmega16/32U2        https://github.com/tmk/tmk_keyboard/issues/361 +ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2))  	LUFA_OPTS += -DNO_LIMITED_CONTROLLER_CONNECT  endif diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 85d71d0835..63619fdb3b 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -1107,8 +1107,7 @@ int main(void) {  #endif          // Run housekeeping -        housekeeping_task_kb(); -        housekeeping_task_user(); +        housekeeping_task();      }  } diff --git a/tmk_core/protocol/lufa/usb_util.c b/tmk_core/protocol/lufa/usb_util.c new file mode 100644 index 0000000000..9e943a21b9 --- /dev/null +++ b/tmk_core/protocol/lufa/usb_util.c @@ -0,0 +1,34 @@ +/* Copyright 2021 QMK + * + * 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 3 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/>. + */ +#include <LUFA/Drivers/USB/USB.h> +#include "usb_util.h" +#include "wait.h" + +void usb_disable(void) { +    USB_Disable(); +    USB_DeviceState = DEVICE_STATE_Unattached; +} + +bool usb_connected_state(void) { return USB_Device_IsAddressSet(); } + +#if defined(OTGPADE) +bool usb_vbus_state(void) { +    USB_OTGPAD_On();  // enables VBUS pad +    wait_us(5); + +    return USB_VBUS_GetStatus();  // checks state of VBUS +} +#endif diff --git a/tmk_core/protocol/vusb.mk b/tmk_core/protocol/vusb.mk index 1de6003089..e4d013b38d 100644 --- a/tmk_core/protocol/vusb.mk +++ b/tmk_core/protocol/vusb.mk @@ -5,6 +5,7 @@ VUSB_PATH = $(LIB_PATH)/vusb  SRC += $(VUSB_DIR)/main.c \  	$(VUSB_DIR)/vusb.c \ +	$(VUSB_DIR)/usb_util.c \  	$(VUSB_PATH)/usbdrv/usbdrv.c \  	$(VUSB_PATH)/usbdrv/usbdrvasm.S \  	$(VUSB_PATH)/usbdrv/oddebug.c diff --git a/tmk_core/protocol/vusb/main.c b/tmk_core/protocol/vusb/main.c index 2de4f6a80a..53926a7493 100644 --- a/tmk_core/protocol/vusb/main.c +++ b/tmk_core/protocol/vusb/main.c @@ -173,8 +173,7 @@ int main(void) {  #endif              // Run housekeeping -            housekeeping_task_kb(); -            housekeeping_task_user(); +            housekeeping_task();          }      }  } diff --git a/tmk_core/protocol/vusb/usb_util.c b/tmk_core/protocol/vusb/usb_util.c new file mode 100644 index 0000000000..602854dbe6 --- /dev/null +++ b/tmk_core/protocol/vusb/usb_util.c @@ -0,0 +1,24 @@ +/* Copyright 2021 QMK + * + * 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 3 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/>. + */ +#include <usbdrv/usbdrv.h> +#include "usb_util.h" + +void usb_disable(void) { usbDeviceDisconnect(); } + +bool usb_connected_state(void) { +    usbPoll(); +    return usbConfiguration; +} | 
