diff --git a/builddefs/bootloader.mk b/builddefs/bootloader.mk index dfbe6232c6..0158e97b06 100644 --- a/builddefs/bootloader.mk +++ b/builddefs/bootloader.mk @@ -213,6 +213,10 @@ ifeq ($(strip $(BOOTLOADER)), md-boot) OPT_DEFS += -DBOOTLOADER_MD_BOOT BOOTLOADER_TYPE = md_boot endif +ifeq ($(strip $(BOOTLOADER)), RP2040) + OPT_DEFS += -DBOOTLOADER_RP2040 + BOOTLOADER_TYPE = RP2040 +endif ifeq ($(strip $(BOOTLOADER_TYPE)),) $(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,No bootloader specified. Please set an appropriate 'BOOTLOADER' in your keyboard's 'rules.mk' file.) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index fd54374587..c1e13e568f 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -213,6 +213,7 @@ else SRC += $(PLATFORM_COMMON_DIR)/eeprom_samd.c SRC += $(PLATFORM_COMMON_DIR)/eeprom.c else ifeq ($(PLATFORM),PICO_SDK) + OPT_DEFS += -DEEPROM_PICO SRC += $(PLATFORM_COMMON_DIR)/eeprom.c SRC += $(PLATFORM_COMMON_DIR)/flash_pico.c else ifeq ($(PLATFORM),TEST) diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index ffe34b2b93..485b43b236 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -57,7 +57,7 @@ }, "bootloader": { "type": "string", - "enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "custom", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "md-boot", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "wb32-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2", "vibl"], + "enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "custom", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "md-boot", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "wb32-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2", "vibl", "RP2040"], }, "bootloader_instructions": { "type": "string", diff --git a/keyboards/vial_example/vial_rp2040/rules.mk b/keyboards/vial_example/vial_rp2040/rules.mk index 797f9860bd..de8fbfe07e 100644 --- a/keyboards/vial_example/vial_rp2040/rules.mk +++ b/keyboards/vial_example/vial_rp2040/rules.mk @@ -1,6 +1,7 @@ # MCU name MCU_FAMILY = PICO MCU_SERIES = RP2040 +BOOTLOADER = RP2040 MCU = cortex-m0plus # Build Options diff --git a/platforms/eeprom.h b/platforms/eeprom.h index 091e6e4400..764b5b7c59 100644 --- a/platforms/eeprom.h +++ b/platforms/eeprom.h @@ -48,6 +48,9 @@ void eeprom_update_block(const void *__src, void *__dst, size_t __n); #elif defined(EEPROM_SAMD) # include "eeprom_samd.h" # define TOTAL_EEPROM_BYTE_COUNT (EEPROM_SIZE) +#elif defined(EEPROM_PICO) +# include "eeprom_pico_defs.h" +# define TOTAL_EEPROM_BYTE_COUNT (FEE_DENSITY_BYTES) #elif defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_AT90USB162__) || defined(__AVR_ATtiny85__) # define TOTAL_EEPROM_BYTE_COUNT 512 #elif defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega32A__) diff --git a/platforms/pico/bootloaders/none.c b/platforms/pico/bootloaders/RP2040.c similarity index 100% rename from platforms/pico/bootloaders/none.c rename to platforms/pico/bootloaders/RP2040.c diff --git a/platforms/pico/eeprom_pico_defs.h b/platforms/pico/eeprom_pico_defs.h index edf0a7ff2c..f1cdad498c 100644 --- a/platforms/pico/eeprom_pico_defs.h +++ b/platforms/pico/eeprom_pico_defs.h @@ -10,3 +10,4 @@ #define FEE_PAGE_BASE_ADDRESS \ (PICO_FLASH_SIZE_BYTES - FEE_PAGE_SIZE * FEE_PAGE_COUNT) +#define FEE_DENSITY_BYTES (FEE_PAGE_COUNT * FEE_PAGE_SIZE / 2) diff --git a/platforms/pico/suspend.c b/platforms/pico/suspend.c index 2d6e0404ce..c28b6d8afe 100644 --- a/platforms/pico/suspend.c +++ b/platforms/pico/suspend.c @@ -85,15 +85,6 @@ void suspend_power_down(void) { __attribute__((weak)) void matrix_power_up(void) {} __attribute__((weak)) void matrix_power_down(void) {} -bool suspend_wakeup_condition(void) { - matrix_power_up(); - matrix_scan(); - matrix_power_down(); - for (uint8_t r = 0; r < MATRIX_ROWS; r++) { - if (matrix_get_row(r)) return true; - } - return false; -} /** \brief run user level code immediately after wakeup *