summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/mappings/defaults.hjson2
-rw-r--r--platforms/chibios/boards/QMK_BLOK/board/board.mk9
-rw-r--r--platforms/chibios/boards/QMK_BLOK/configs/board.h12
-rw-r--r--platforms/chibios/boards/QMK_BLOK/configs/chconf.h13
-rw-r--r--platforms/chibios/boards/QMK_BLOK/configs/config.h21
-rw-r--r--platforms/chibios/boards/QMK_BLOK/configs/halconf.h10
-rw-r--r--platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h112
-rw-r--r--platforms/chibios/converters/promicro_to_blok/converter.mk2
8 files changed, 179 insertions, 2 deletions
diff --git a/data/mappings/defaults.hjson b/data/mappings/defaults.hjson
index 090cbe4be9..2bb00da223 100644
--- a/data/mappings/defaults.hjson
+++ b/data/mappings/defaults.hjson
@@ -33,7 +33,7 @@
"blok": {
"processor": "RP2040",
"bootloader": "rp2040",
- "board": "QMK_PM2040"
+ "board": "QMK_BLOK"
},
"michi": {
"processor": "RP2040",
diff --git a/platforms/chibios/boards/QMK_BLOK/board/board.mk b/platforms/chibios/boards/QMK_BLOK/board/board.mk
new file mode 100644
index 0000000000..911cc5a058
--- /dev/null
+++ b/platforms/chibios/boards/QMK_BLOK/board/board.mk
@@ -0,0 +1,9 @@
+# List of all the board related files.
+BOARDSRC = $(CHIBIOS)/os/hal/boards/RP_PICO_RP2040/board.c
+
+# Required include directories
+BOARDINC = $(CHIBIOS)/os/hal/boards/RP_PICO_RP2040
+
+# Shared variables
+ALLCSRC += $(BOARDSRC)
+ALLINC += $(BOARDINC)
diff --git a/platforms/chibios/boards/QMK_BLOK/configs/board.h b/platforms/chibios/boards/QMK_BLOK/configs/board.h
new file mode 100644
index 0000000000..d0e23902aa
--- /dev/null
+++ b/platforms/chibios/boards/QMK_BLOK/configs/board.h
@@ -0,0 +1,12 @@
+// Copyright 2022 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include_next <board.h>
+
+#undef BOARD_RP_PICO_RP2040
+#define BOARD_PM2040
+
+#undef BOARD_NAME
+#define BOARD_NAME "Blok"
diff --git a/platforms/chibios/boards/QMK_BLOK/configs/chconf.h b/platforms/chibios/boards/QMK_BLOK/configs/chconf.h
new file mode 100644
index 0000000000..d53f57edd9
--- /dev/null
+++ b/platforms/chibios/boards/QMK_BLOK/configs/chconf.h
@@ -0,0 +1,13 @@
+// Copyright 2022 Stefan Kerkmann
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define CH_CFG_SMP_MODE TRUE
+#define CH_CFG_ST_RESOLUTION 32
+#define CH_CFG_ST_FREQUENCY 1000000
+#define CH_CFG_INTERVALS_SIZE 32
+#define CH_CFG_TIME_TYPES_SIZE 32
+#define CH_CFG_ST_TIMEDELTA 20
+
+#include_next <chconf.h>
diff --git a/platforms/chibios/boards/QMK_BLOK/configs/config.h b/platforms/chibios/boards/QMK_BLOK/configs/config.h
new file mode 100644
index 0000000000..168afb1fc4
--- /dev/null
+++ b/platforms/chibios/boards/QMK_BLOK/configs/config.h
@@ -0,0 +1,21 @@
+// Copyright 2022 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#ifndef I2C_DRIVER
+# define I2C_DRIVER I2CD0
+#endif
+#ifndef I2C1_SDA_PIN
+# define I2C1_SDA_PIN D1
+#endif
+#ifndef I2C1_SCL_PIN
+# define I2C1_SCL_PIN D0
+#endif
+
+#ifndef RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+# define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#endif
+#ifndef RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT
+# define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
+#endif
diff --git a/platforms/chibios/boards/QMK_BLOK/configs/halconf.h b/platforms/chibios/boards/QMK_BLOK/configs/halconf.h
new file mode 100644
index 0000000000..131386bc34
--- /dev/null
+++ b/platforms/chibios/boards/QMK_BLOK/configs/halconf.h
@@ -0,0 +1,10 @@
+// Copyright 2022 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define HAL_USE_ADC TRUE
+#define HAL_USE_I2C TRUE
+#define HAL_USE_SPI TRUE
+
+#include_next <halconf.h>
diff --git a/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h b/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h
new file mode 100644
index 0000000000..eb51e25171
--- /dev/null
+++ b/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h
@@ -0,0 +1,112 @@
+/*
+ ChibiOS - Copyright (C) 2006..2021 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.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef MCUCONF_H
+#define MCUCONF_H
+
+/*
+ * RP2040_MCUCONF drivers configuration.
+ *
+ * IRQ priorities:
+ * 3...0 Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...1 Lowest...Highest.
+ */
+
+#define RP2040_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+#define RP_NO_INIT FALSE
+#define RP_CORE1_START FALSE
+#define RP_CORE1_VECTORS_TABLE _vectors
+#define RP_CORE1_ENTRY_POINT _crt0_c1_entry
+#define RP_CORE1_STACK_END __c1_main_stack_end__
+
+/*
+ * IRQ system settings.
+ */
+#define RP_IRQ_SYSTICK_PRIORITY 2
+#define RP_IRQ_TIMER_ALARM0_PRIORITY 2
+#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
+#define RP_IRQ_SPI1_PRIORITY 2
+#define RP_IRQ_USB0_PRIORITY 3
+#define RP_IRQ_I2C0_PRIORITY 2
+#define RP_IRQ_I2C1_PRIORITY 2
+
+/*
+ * ADC driver system settings.
+ */
+#define RP_ADC_USE_ADC1 TRUE
+
+/*
+ * SIO driver system settings.
+ */
+#define RP_SIO_USE_UART0 FALSE
+#define RP_SIO_USE_UART1 FALSE
+
+/*
+ * SPI driver system settings.
+ */
+#define RP_SPI_USE_SPI0 TRUE
+#define RP_SPI_USE_SPI1 FALSE
+#define RP_SPI_SPI0_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
+#define RP_SPI_SPI0_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
+#define RP_SPI_SPI1_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
+#define RP_SPI_SPI1_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
+#define RP_SPI_SPI0_DMA_PRIORITY 1
+#define RP_SPI_SPI1_DMA_PRIORITY 1
+#define RP_SPI_DMA_ERROR_HOOK(spip)
+
+/*
+ * PWM driver system settings.
+ */
+#define RP_PWM_USE_PWM0 FALSE
+#define RP_PWM_USE_PWM1 FALSE
+#define RP_PWM_USE_PWM2 FALSE
+#define RP_PWM_USE_PWM3 FALSE
+#define RP_PWM_USE_PWM4 FALSE
+#define RP_PWM_USE_PWM5 FALSE
+#define RP_PWM_USE_PWM6 FALSE
+#define RP_PWM_USE_PWM7 FALSE
+#define RP_PWM_IRQ_WRAP_NUMBER_PRIORITY 3
+
+/*
+ * I2C driver system settings.
+ */
+#define RP_I2C_USE_I2C0 TRUE
+#define RP_I2C_USE_I2C1 FALSE
+#define RP_I2C_BUSY_TIMEOUT 50
+#define RP_I2C_ADDRESS_MODE_10BIT FALSE
+
+/*
+ * USB driver system settings.
+ */
+#define RP_USB_USE_USBD0 TRUE
+#define RP_USB_FORCE_VBUS_DETECT TRUE
+#define RP_USE_EXTERNAL_VBUS_DETECT FALSE
+#define RP_USB_USE_SOF_INTR TRUE
+#define RP_USB_USE_ERROR_DATA_SEQ_INTR FALSE
+
+#endif /* MCUCONF_H */
diff --git a/platforms/chibios/converters/promicro_to_blok/converter.mk b/platforms/chibios/converters/promicro_to_blok/converter.mk
index 5106e411f4..2435dd3407 100644
--- a/platforms/chibios/converters/promicro_to_blok/converter.mk
+++ b/platforms/chibios/converters/promicro_to_blok/converter.mk
@@ -1,6 +1,6 @@
# Boardsource Blok MCU settings for converting AVR projects
MCU := RP2040
-BOARD := QMK_PM2040
+BOARD := QMK_BLOK
BOOTLOADER := rp2040
# These are defaults based on what has been implemented for RP2040 boards