diff options
Diffstat (limited to 'platforms')
88 files changed, 2124 insertions, 1420 deletions
diff --git a/platforms/arm_atsam/pin_defs.h b/platforms/arm_atsam/_pin_defs.h index 5b50b23910..5b50b23910 100644 --- a/platforms/arm_atsam/pin_defs.h +++ b/platforms/arm_atsam/_pin_defs.h diff --git a/platforms/arm_atsam/bootloaders/md_boot.c b/platforms/arm_atsam/bootloaders/md_boot.c index 32cf850448..1cf7aec62c 100644 --- a/platforms/arm_atsam/bootloaders/md_boot.c +++ b/platforms/arm_atsam/bootloaders/md_boot.c @@ -63,3 +63,7 @@ void bootloader_jump(void) { while (1) ; // Wait on timeout } + +__attribute__((weak)) void mcu_reset(void) { + NVIC_SystemReset(); +} diff --git a/platforms/arm_atsam/hardware_id.c b/platforms/arm_atsam/hardware_id.c new file mode 100644 index 0000000000..8b3b35a492 --- /dev/null +++ b/platforms/arm_atsam/hardware_id.c @@ -0,0 +1,9 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "hardware_id.h" + +hardware_id_t get_hardware_id(void) { + hardware_id_t id = {0}; + return id; +} diff --git a/platforms/avr/pin_defs.h b/platforms/avr/_pin_defs.h index 3889704a87..3889704a87 100644 --- a/platforms/avr/pin_defs.h +++ b/platforms/avr/_pin_defs.h diff --git a/platforms/avr/bootloaders/bootloadhid.c b/platforms/avr/bootloaders/bootloadhid.c index ae58760d7d..b91dca6d27 100644 --- a/platforms/avr/bootloaders/bootloadhid.c +++ b/platforms/avr/bootloaders/bootloadhid.c @@ -31,3 +31,10 @@ __attribute__((weak)) void bootloader_jump(void) { for (;;) ; } + +__attribute__((weak)) void mcu_reset(void) { + // watchdog reset + wdt_enable(WDTO_250MS); + for (;;) + ; +} diff --git a/platforms/avr/bootloaders/caterina.c b/platforms/avr/bootloaders/caterina.c index 82a16a3765..2b5f613d6d 100644 --- a/platforms/avr/bootloaders/caterina.c +++ b/platforms/avr/bootloaders/caterina.c @@ -37,3 +37,12 @@ __attribute__((weak)) void bootloader_jump(void) { while (1) { } } + +__attribute__((weak)) void mcu_reset(void) { + // setup watchdog timeout + wdt_enable(WDTO_60MS); + + // wait for watchdog timer to trigger + while (1) { + } +} diff --git a/platforms/avr/bootloaders/custom.c b/platforms/avr/bootloaders/custom.c index 624fbe242a..72b19f6671 100644 --- a/platforms/avr/bootloaders/custom.c +++ b/platforms/avr/bootloaders/custom.c @@ -15,5 +15,14 @@ */ #include "bootloader.h" +#include <avr/wdt.h> __attribute__((weak)) void bootloader_jump(void) {} +__attribute__((weak)) void mcu_reset(void) { + // setup watchdog timeout + wdt_enable(WDTO_60MS); + + // wait for watchdog timer to trigger + while (1) { + } +} diff --git a/platforms/avr/bootloaders/dfu.c b/platforms/avr/bootloaders/dfu.c index 06b2c8963a..dbbb5f4ab6 100644 --- a/platforms/avr/bootloaders/dfu.c +++ b/platforms/avr/bootloaders/dfu.c @@ -34,8 +34,15 @@ __attribute__((weak)) void bootloader_jump(void) { UCSR1B = 0; _delay_ms(5); // 5 seems to work fine - // watchdog reset reset_key = BOOTLOADER_RESET_KEY; + // watchdog reset + wdt_enable(WDTO_250MS); + for (;;) + ; +} + +__attribute__((weak)) void mcu_reset(void) { + // watchdog reset wdt_enable(WDTO_250MS); for (;;) ; diff --git a/platforms/avr/bootloaders/halfkay.c b/platforms/avr/bootloaders/halfkay.c index 651696f988..402f5f2778 100644 --- a/platforms/avr/bootloaders/halfkay.c +++ b/platforms/avr/bootloaders/halfkay.c @@ -17,6 +17,7 @@ #include "bootloader.h" #include <avr/interrupt.h> +#include <avr/wdt.h> #include <util/delay.h> __attribute__((weak)) void bootloader_jump(void) { @@ -126,3 +127,12 @@ __attribute__((weak)) void bootloader_jump(void) { asm volatile("jmp 0x1FC00"); #endif } + +__attribute__((weak)) void mcu_reset(void) { + // setup watchdog timeout + wdt_enable(WDTO_60MS); + + // wait for watchdog timer to trigger + while (1) { + } +} diff --git a/platforms/avr/bootloaders/usbasploader.c b/platforms/avr/bootloaders/usbasploader.c index 008bd16069..333010eefa 100644 --- a/platforms/avr/bootloaders/usbasploader.c +++ b/platforms/avr/bootloaders/usbasploader.c @@ -54,3 +54,12 @@ __attribute__((weak)) void bootloader_jump(void) { #endif [bootaddrme] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 8) & 0xff), [bootaddrlo] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 0) & 0xff)); } + +__attribute__((weak)) void mcu_reset(void) { + // setup watchdog timeout + wdt_enable(WDTO_15MS); + + // wait for watchdog timer to trigger + while (1) { + } +} diff --git a/platforms/avr/drivers/hd44780.c b/platforms/avr/drivers/hd44780.c deleted file mode 100644 index f15d7d0da8..0000000000 --- a/platforms/avr/drivers/hd44780.c +++ /dev/null @@ -1,542 +0,0 @@ -/**************************************************************************** - Title: HD44780U LCD library - Author: Peter Fleury <pfleury@gmx.ch> http://tinyurl.com/peterfleury - License: GNU General Public License Version 3 - File: $Id: lcd.c,v 1.15.2.2 2015/01/17 12:16:05 peter Exp $ - Software: AVR-GCC 3.3 - Target: any AVR device, memory mapped mode only for AT90S4414/8515/Mega - - DESCRIPTION - Basic routines for interfacing a HD44780U-based text lcd display - - Originally based on Volker Oth's lcd library, - changed lcd_init(), added additional constants for lcd_command(), - added 4-bit I/O mode, improved and optimized code. - - Library can be operated in memory mapped mode (LCD_IO_MODE=0) or in - 4-bit IO port mode (LCD_IO_MODE=1). 8-bit IO port mode not supported. - - Memory mapped mode compatible with Kanda STK200, but supports also - generation of R/W signal through A8 address line. - - USAGE - See the C include lcd.h file for a description of each function - -*****************************************************************************/ -#include <inttypes.h> -#include <avr/io.h> -#include <avr/pgmspace.h> -#include <util/delay.h> -#include "hd44780.h" - -/* -** constants/macros -*/ -#define DDR(x) (*(&x - 1)) /* address of data direction register of port x */ -#if defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__) -/* on ATmega64/128 PINF is on port 0x00 and not 0x60 */ -# define PIN(x) (&PORTF == &(x) ? _SFR_IO8(0x00) : (*(&x - 2))) -#else -# define PIN(x) (*(&x - 2)) /* address of input register of port x */ -#endif - -#if LCD_IO_MODE -# define lcd_e_delay() _delay_us(LCD_DELAY_ENABLE_PULSE) -# define lcd_e_high() LCD_E_PORT |= _BV(LCD_E_PIN); -# define lcd_e_low() LCD_E_PORT &= ~_BV(LCD_E_PIN); -# define lcd_e_toggle() toggle_e() -# define lcd_rw_high() LCD_RW_PORT |= _BV(LCD_RW_PIN) -# define lcd_rw_low() LCD_RW_PORT &= ~_BV(LCD_RW_PIN) -# define lcd_rs_high() LCD_RS_PORT |= _BV(LCD_RS_PIN) -# define lcd_rs_low() LCD_RS_PORT &= ~_BV(LCD_RS_PIN) -#endif - -#if LCD_IO_MODE -# if LCD_LINES == 1 -# define LCD_FUNCTION_DEFAULT LCD_FUNCTION_4BIT_1LINE -# else -# define LCD_FUNCTION_DEFAULT LCD_FUNCTION_4BIT_2LINES -# endif -#else -# if LCD_LINES == 1 -# define LCD_FUNCTION_DEFAULT LCD_FUNCTION_8BIT_1LINE -# else -# define LCD_FUNCTION_DEFAULT LCD_FUNCTION_8BIT_2LINES -# endif -#endif - -#if LCD_CONTROLLER_KS0073 -# if LCD_LINES == 4 - -# define KS0073_EXTENDED_FUNCTION_REGISTER_ON 0x2C /* |0|010|1100 4-bit mode, extension-bit RE = 1 */ -# define KS0073_EXTENDED_FUNCTION_REGISTER_OFF 0x28 /* |0|010|1000 4-bit mode, extension-bit RE = 0 */ -# define KS0073_4LINES_MODE 0x09 /* |0|000|1001 4 lines mode */ - -# endif -#endif - -/* |