summaryrefslogtreecommitdiffstats
path: root/platforms/chibios
diff options
context:
space:
mode:
authorlokher <lokher@gmail.com>2023-04-26 16:32:15 +0800
committerlokher <lokher@gmail.com>2023-04-26 16:32:15 +0800
commite4f4ceaf3f2e3d25fb282273a81f9b58790fc427 (patch)
treec0a257eab0ffe5238fdf2c04882e8ee1fe8fc46e /platforms/chibios
parent103badc87cb50db1ff3851c84331e86ba78fb681 (diff)
merge upstream 713427c
Diffstat (limited to 'platforms/chibios')
-rw-r--r--platforms/chibios/atomic_util.h17
-rw-r--r--platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h2
-rw-r--r--platforms/chibios/boards/BLACKPILL_STM32_F411/configs/board.h2
-rw-r--r--platforms/chibios/boards/BONSAI_C4/configs/board.h2
-rw-r--r--platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h5
-rw-r--r--platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h2
-rw-r--r--platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/config.h2
-rw-r--r--platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h3
-rw-r--r--platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h2
-rw-r--r--platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h1
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_F072XB/configs/board.h2
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_F303XC/configs/board.h2
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h2
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_F405XG/configs/board.h2
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h2
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h2
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h2
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_L412XB/configs/board.h2
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_L433XC/configs/board.h2
-rw-r--r--platforms/chibios/boards/PJRC_TEENSY_3_5/board/board.mk11
-rw-r--r--platforms/chibios/boards/PJRC_TEENSY_3_5/board/extra.c7
-rw-r--r--platforms/chibios/boards/PJRC_TEENSY_3_6/board/board.mk11
-rw-r--r--platforms/chibios/boards/PJRC_TEENSY_3_6/board/extra.c7
-rw-r--r--platforms/chibios/boards/QMK_PM2040/configs/board.h2
-rw-r--r--platforms/chibios/boards/QMK_PM2040/configs/config.h2
-rw-r--r--platforms/chibios/boards/QMK_PM2040/configs/halconf.h1
-rw-r--r--platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h3
-rw-r--r--platforms/chibios/boards/QMK_PROTON_C/configs/board.h2
-rw-r--r--platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h21
-rw-r--r--platforms/chibios/boards/STEMCELL/configs/board.h2
-rw-r--r--platforms/chibios/boards/common/configs/halconf.h21
-rw-r--r--platforms/chibios/boards/common/ld/STM32F103xB_uf2boot.ld88
-rw-r--r--platforms/chibios/boards/common/ld/STM32F303xC_tinyuf2.ld88
-rw-r--r--platforms/chibios/boards/keyboard-config-templates/board.h20
-rw-r--r--platforms/chibios/boards/keyboard-config-templates/chconf.h20
-rw-r--r--platforms/chibios/boards/keyboard-config-templates/halconf.h20
-rw-r--r--platforms/chibios/boards/keyboard-config-templates/mcuconf.h21
-rw-r--r--platforms/chibios/bootloader.mk7
-rw-r--r--platforms/chibios/bootloaders/stm32_dfu.c2
-rw-r--r--platforms/chibios/bootloaders/uf2boot.c23
-rw-r--r--platforms/chibios/converters/elite_c_to_elite_pi/pre_converter.mk2
-rw-r--r--platforms/chibios/converters/elite_c_to_helios/pre_converter.mk2
-rw-r--r--platforms/chibios/converters/elite_c_to_rp2040_ce/_pin_defs.h (renamed from platforms/chibios/converters/elite_c_to_elite_pi/_pin_defs.h)2
-rw-r--r--platforms/chibios/converters/elite_c_to_rp2040_ce/converter.mk (renamed from platforms/chibios/converters/promicro_to_elite_pi/converter.mk)3
-rw-r--r--platforms/chibios/converters/promicro_to_bonsai_c3/pre_converter.mk2
-rw-r--r--platforms/chibios/converters/promicro_to_elite_pi/pre_converter.mk2
-rw-r--r--platforms/chibios/converters/promicro_to_helios/pre_converter.mk2
-rw-r--r--platforms/chibios/converters/promicro_to_michi/_pin_defs.h36
-rw-r--r--platforms/chibios/converters/promicro_to_michi/converter.mk (renamed from platforms/chibios/converters/elite_c_to_elite_pi/converter.mk)2
-rw-r--r--platforms/chibios/converters/promicro_to_rp2040_ce/_pin_defs.h (renamed from platforms/chibios/converters/promicro_to_elite_pi/_pin_defs.h)2
-rw-r--r--platforms/chibios/converters/promicro_to_rp2040_ce/converter.mk10
-rw-r--r--platforms/chibios/drivers/analog.c53
-rw-r--r--platforms/chibios/drivers/audio_dac_additive.c2
-rw-r--r--platforms/chibios/drivers/audio_dac_basic.c2
-rw-r--r--platforms/chibios/drivers/serial_usart.c24
-rw-r--r--platforms/chibios/drivers/uart.c4
-rw-r--r--platforms/chibios/drivers/uart.h11
-rw-r--r--platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c14
-rw-r--r--platforms/chibios/flash.mk2
-rw-r--r--platforms/chibios/mcu_selection.mk825
-rw-r--r--platforms/chibios/platform.mk3
-rw-r--r--platforms/chibios/vendors/RP/RP2040.mk2
62 files changed, 1257 insertions, 185 deletions
diff --git a/platforms/chibios/atomic_util.h b/platforms/chibios/atomic_util.h
index 8975045153..234d7fd9f5 100644
--- a/platforms/chibios/atomic_util.h
+++ b/platforms/chibios/atomic_util.h
@@ -30,8 +30,19 @@ static __inline__ void __interrupt_enable__(const uint8_t *__s) {
(void)__s;
}
-#define ATOMIC_BLOCK(type) for (type, __ToDo = __interrupt_disable__(); __ToDo; __ToDo = 0)
-#define ATOMIC_FORCEON uint8_t sreg_save __attribute__((__cleanup__(__interrupt_enable__))) = 0
+static __inline__ syssts_t __interrupt_lock__(void) {
+ return chSysGetStatusAndLockX();
+}
+
+static __inline__ void __interrupt_unlock__(const syssts_t *__s) {
+ chSysRestoreStatusX(*__s);
+
+ __asm__ volatile("" ::: "memory");
+}
+
+#define ATOMIC_BLOCK(type) for (type, __ToDo = 1; __ToDo; __ToDo = 0)
+#define ATOMIC_FORCEON uint8_t status_save __attribute__((__cleanup__(__interrupt_enable__))) = __interrupt_disable__()
+#define ATOMIC_RESTORESTATE syssts_t status_save __attribute__((__cleanup__(__interrupt_unlock__))) = __interrupt_lock__()
-#define ATOMIC_BLOCK_RESTORESTATE _Static_assert(0, "ATOMIC_BLOCK_RESTORESTATE not implemented")
+#define ATOMIC_BLOCK_RESTORESTATE ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
#define ATOMIC_BLOCK_FORCEON ATOMIC_BLOCK(ATOMIC_FORCEON)
diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h
index 78dcbac05c..772204ae5d 100644
--- a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h
+++ b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h
@@ -15,7 +15,7 @@
*/
#pragma once
-#include_next "board.h"
+#include_next <board.h>
// Force B9 as input to align with qmk defaults
#undef VAL_GPIOB_MODER
diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/board.h b/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/board.h
index 30af6b0c86..81c80b2773 100644
--- a/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/board.h
+++ b/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/board.h
@@ -15,6 +15,6 @@
*/
#pragma once
-#include_next "board.h"
+#include_next <board.h>
#undef STM32_HSE_BYPASS
diff --git a/platforms/chibios/boards/BONSAI_C4/configs/board.h b/platforms/chibios/boards/BONSAI_C4/configs/board.h
index f1ee51c91f..372b9bb8bc 100644
--- a/platforms/chibios/boards/BONSAI_C4/configs/board.h
+++ b/platforms/chibios/boards/BONSAI_C4/configs/board.h
@@ -15,6 +15,6 @@
*/
#pragma once
-#include_next "board.h"
+#include_next <board.h>
#undef STM32_HSE_BYPASS \ No newline at end of file
diff --git a/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h b/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h
index 2f9e627c7e..b381aed4fd 100644
--- a/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h
+++ b/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h
@@ -1,9 +1,12 @@
/*
ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
+
http://www.apache.org/licenses/LICENSE-2.0
+
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -246,4 +249,4 @@
*/
#define STM32_WDG_USE_IWDG FALSE
-#endif /* MCUCONF_H */ \ No newline at end of file
+#endif /* MCUCONF_H */
diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h
index b4363595d0..f0e9595896 100644
--- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h
@@ -3,7 +3,7 @@
#pragma once
-#include_next "board.h"
+#include_next <board.h>
#undef BOARD_RP_PICO_RP2040
#define BOARD_GENERIC_PROMICRO_RP2040
diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/config.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/config.h
index 7fe9b654e1..9209e99e76 100644
--- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/config.h
+++ b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/config.h
@@ -8,7 +8,7 @@
*========================**/
#if !defined(I2C_DRIVER)
-# define I2C_DRIVER I2CD2
+# define I2C_DRIVER I2CD1
#endif
#if !defined(I2C1_SDA_PIN)
diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h
index 5c0859901e..ab293c0b40 100644
--- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h
+++ b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h
@@ -46,6 +46,7 @@
#define RP_IRQ_TIMER_ALARM1_PRIORITY 2
#define RP_IRQ_TIMER_ALARM2_PRIORITY 2
#define RP_IRQ_TIMER_ALARM3_PRIORITY 2
+#define RP_IRQ_ADC1_PRIORITY 3
#define RP_IRQ_UART0_PRIORITY 3
#define RP_IRQ_UART1_PRIORITY 3
#define RP_IRQ_SPI0_PRIORITY 2
@@ -57,7 +58,7 @@
/*
* ADC driver system settings.
*/
-#define RP_ADC_USE_ADC1 FALSE
+#define RP_ADC_USE_ADC1 TRUE
/*
* SIO driver system settings.
diff --git a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h
index 052050c944..89f4f0d61c 100644
--- a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h
@@ -3,7 +3,7 @@
#pragma once
-#include_next "board.h"
+#include_next <board.h>
#undef BOARD_RP_PICO_RP2040
#define BOARD_GENERIC_RP2040
diff --git a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h
index f7a66c6ab9..b91d762419 100644
--- a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h
+++ b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h
@@ -46,6 +46,7 @@
#define RP_IRQ_TIMER_ALARM1_PRIORITY 2
#define RP_IRQ_TIMER_ALARM2_PRIORITY 2
#define RP_IRQ_TIMER_ALARM3_PRIORITY 2
+#define RP_IRQ_ADC1_PRIORITY 3
#define RP_IRQ_UART0_PRIORITY 3
#define RP_IRQ_UART1_PRIORITY 3
#define RP_IRQ_SPI0_PRIORITY 2
diff --git a/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/board.h
index 30af6b0c86..81c80b2773 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/board.h
@@ -15,6 +15,6 @@
*/
#pragma once
-#include_next "board.h"
+#include_next <board.h>
#undef STM32_HSE_BYPASS
diff --git a/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/board.h
index 97159964d0..4bca351422 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/board.h
@@ -15,7 +15,7 @@
*/
#pragma once
-#include_next "board.h"
+#include_next <board.h>
#undef STM32_HSE_BYPASS
diff --git a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h
index 78dcbac05c..772204ae5d 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h
@@ -15,7 +15,7 @@
*/
#pragma once
-#include_next "board.h"
+#include_next <board.h>
// Force B9 as input to align with qmk defaults
#undef VAL_GPIOB_MODER
diff --git a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/board.h
index 8cb771bc12..e8e43f1567 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/board.h
@@ -19,7 +19,7 @@
// The following is required to disable the pull-down on PA9, when PA9 is used for the keyboard matrix:
#define BOARD_OTG_NOVBUSSENS
-#include_next "board.h"
+#include_next <board.h>
#undef STM32_HSE_BYPASS
diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h
index 22c4e4cd7e..a0d53d86e7 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h
@@ -19,6 +19,6 @@
// The following is required to disable the pull-down on PA9, when PA9 is used for the keyboard matrix:
#define BOARD_OTG_NOVBUSSENS
-#include_next "board.h"
+#include_next <board.h>
#undef STM32_HSE_BYPASS \ No newline at end of file
diff --git a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h
index 30af6b0c86..81c80b2773 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h
@@ -15,6 +15,6 @@
*/
#pragma once
-#include_next "board.h"
+#include_next <board.h>
#undef STM32_HSE_BYPASS
diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h
index 80dfcffa99..f05762c9b4 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h
@@ -19,6 +19,6 @@
// The following is required to disable the pull-down on PA9, when PA9 is used for the keyboard matrix:
#define BOARD_OTG_NOVBUSSENS
-#include_next "board.h"
+#include_next <board.h>
#undef STM32_HSE_BYPASS
diff --git a/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/board.h
index de5f85acdd..1f7183f1e7 100644
--- a/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/board.h
@@ -15,7 +15,7 @@
*/
#pragma once
-#include_next "board.h"
+#include_next <board.h>
#undef STM32L432xx
#define STM32L422xx
diff --git a/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/board.h
index 2e37d95fe3..1075f50cad 100644
--- a/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_STM32_L433XC/configs/board.h
@@ -15,7 +15,7 @@
*/
#pragma once
-#include_next "board.h"
+#include_next <board.h>
#undef STM32L432xx
diff --git a/platforms/chibios/boards/PJRC_TEENSY_3_5/board/board.mk b/platforms/chibios/boards/PJRC_TEENSY_3_5/board/board.mk
new file mode 100644
index 0000000000..e129836b08
--- /dev/null
+++ b/platforms/chibios/boards/PJRC_TEENSY_3_5/board/board.mk
@@ -0,0 +1,11 @@
+include $(CHIBIOS_CONTRIB)/os/hal/boards/PJRC_TEENSY_3_5/board.mk
+
+# List of all the board related files.
+BOARDSRC += $(BOARD_PATH)/board/extra.c
+
+# Required include directories
+BOARDINC += $(BOARD_PATH)/board
+
+# Shared variables
+ALLCSRC += $(BOARDSRC)
+ALLINC += $(BOARDINC)
diff --git a/platforms/chibios/boards/PJRC_TEENSY_3_5/board/extra.c b/platforms/chibios/boards/PJRC_TEENSY_3_5/board/extra.c
new file mode 100644
index 0000000000..4940d6d99b
--- /dev/null
+++ b/platforms/chibios/boards/PJRC_TEENSY_3_5/board/extra.c
@@ -0,0 +1,7 @@
+#include <hal.h>
+
+void restart_usb_driver(USBDriver *usbp) {
+ // Do nothing. Restarting the USB driver on the Teensy 3.6 breaks it,
+ // resulting in a keyboard which can wake up a PC from Suspend-to-RAM, but
+ // does not actually produce any keypresses until you un-plug and re-plug.
+}
diff --git a/platforms/chibios/boards/PJRC_TEENSY_3_6/board/board.mk b/platforms/chibios/boards/PJRC_TEENSY_3_6/board/board.mk
new file mode 100644
index 0000000000..aba195db04
--- /dev/null
+++ b/platforms/chibios/boards/PJRC_TEENSY_3_6/board/board.mk
@@ -0,0 +1,11 @@
+include $(CHIBIOS_CONTRIB)/os/hal/boards/PJRC_TEENSY_3_6/board.mk
+
+# List of all the board related files.
+BOARDSRC += $(BOARD_PATH)/board/extra.c
+
+# Required include directories
+BOARDINC += $(BOARD_PATH)/board
+
+# Shared variables
+ALLCSRC += $(BOARDSRC)
+ALLINC += $(BOARDINC)
diff --git a/platforms/chibios/boards/PJRC_TEENSY_3_6/board/extra.c b/platforms/chibios/boards/PJRC_TEENSY_3_6/board/extra.c
new file mode 100644
index 0000000000..4940d6d99b
--- /dev/null
+++ b/platforms/chibios/boards/PJRC_TEENSY_3_6/board/extra.c
@@ -0,0 +1,7 @@
+#include <hal.h>
+
+void restart_usb_driver(USBDriver *usbp) {
+ // Do nothing. Restarting the USB driver on the Teensy 3.6 breaks it,
+ // resulting in a keyboard which can wake up a PC from Suspend-to-RAM, but
+ // does not actually produce any keypresses until you un-plug and re-plug.
+}
diff --git a/platforms/chibios/boards/QMK_PM2040/configs/board.h b/platforms/chibios/boards/QMK_PM2040/configs/board.h
index 433e1c527f..371c1a0dca 100644
--- a/platforms/chibios/boards/QMK_PM2040/configs/board.h
+++ b/platforms/chibios/boards/QMK_PM2040/configs/board.h
@@ -3,7 +3,7 @@
#pragma once
-#include_next "board.h"
+#include_next <board.h>
#undef BOARD_RP_PICO_RP2040
#define BOARD_PM2040
diff --git a/platforms/chibios/boards/QMK_PM2040/configs/config.h b/platforms/chibios/boards/QMK_PM2040/configs/config.h
index 8c773f8b19..ec85ae0cf4 100644
--- a/platforms/chibios/boards/QMK_PM2040/configs/config.h
+++ b/platforms/chibios/boards/QMK_PM2040/configs/config.h
@@ -4,7 +4,7 @@
#pragma once
#ifndef I2C_DRIVER
-# define I2C_DRIVER I2CD2
+# define I2C_DRIVER I2CD1
#endif
#ifndef I2C1_SDA_PIN
# define I2C1_SDA_PIN D1
diff --git a/platforms/chibios/boards/QMK_PM2040/configs/halconf.h b/platforms/chibios/boards/QMK_PM2040/configs/halconf.h
index d7a58f0ea6..131386bc34 100644
--- a/platforms/chibios/boards/QMK_PM2040/configs/halconf.h
+++ b/platforms/chibios/boards/QMK_PM2040/configs/halconf.h
@@ -3,6 +3,7 @@
#pragma once
+#define HAL_USE_ADC TRUE
#define HAL_USE_I2C TRUE
#define HAL_USE_SPI TRUE
diff --git a/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h b/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h
index e33d6d785f..f19f08e93c 100644
--- a/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h
+++ b/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h
@@ -46,6 +46,7 @@
#define RP_IRQ_TIMER_ALARM1_PRIORITY 2
#define RP_IRQ_TIMER_ALARM2_PRIORITY 2
#define RP_IRQ_TIMER_ALARM3_PRIORITY 2
+#define RP_IRQ_ADC1_PRIORITY 3
#define RP_IRQ_UART0_PRIORITY 3
#define RP_IRQ_UART1_PRIORITY 3
#define RP_IRQ_SPI0_PRIORITY 2
@@ -57,7 +58,7