diff --git a/app/boards/waveshare/rp2040_zero/board.yml b/app/boards/waveshare/rp2040_zero/board.yml new file mode 100644 index 00000000000..639e821d9d4 --- /dev/null +++ b/app/boards/waveshare/rp2040_zero/board.yml @@ -0,0 +1,5 @@ +board: + extend: rp2040_zero + variants: + - name: zmk + qualifier: rp2040 diff --git a/app/boards/waveshare/rp2040_zero/rp2040_zero.zmk.yml b/app/boards/waveshare/rp2040_zero/rp2040_zero.zmk.yml new file mode 100644 index 00000000000..ce93f740109 --- /dev/null +++ b/app/boards/waveshare/rp2040_zero/rp2040_zero.zmk.yml @@ -0,0 +1,8 @@ +file_format: "1" +id: rp2040_zero//zmk +name: Waveshare RP2040-Zero +type: board +arch: arm +outputs: + - usb +url: https://www.waveshare.com/wiki/RP2040-Zero diff --git a/app/boards/waveshare/rp2040_zero/rp2040_zero_rp2040_zmk.dts b/app/boards/waveshare/rp2040_zero/rp2040_zero_rp2040_zmk.dts new file mode 100644 index 00000000000..2ef54f4ef33 --- /dev/null +++ b/app/boards/waveshare/rp2040_zero/rp2040_zero_rp2040_zmk.dts @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/waveshare/rp2040_zero/rp2040_zero.dts> +#include + +&uart0 { status = "disabled"; }; + +&code_partition { + reg = <0x100 (DT_SIZE_M(2) - 0x100 - DT_SIZE_K(512))>; +}; + +&flash0 { + partitions { + storage_partition: partition@180000 { + reg = <0x180000 DT_SIZE_K(512)>; + read-only; + }; + }; +}; diff --git a/app/boards/waveshare/rp2040_zero/rp2040_zero_rp2040_zmk_defconfig b/app/boards/waveshare/rp2040_zero/rp2040_zero_rp2040_zmk_defconfig new file mode 100644 index 00000000000..5ff98221ded --- /dev/null +++ b/app/boards/waveshare/rp2040_zero/rp2040_zero_rp2040_zmk_defconfig @@ -0,0 +1,27 @@ +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000 + +# Core deps +CONFIG_RESET=y +CONFIG_CLOCK_CONTROL=y +CONFIG_GPIO=y + +# Build Output +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y +CONFIG_BUILD_OUTPUT_HEX=y + +# USB HID +CONFIG_ZMK_USB=y + +# Settings Support +CONFIG_MPU_ALLOW_FLASH_WRITE=y +CONFIG_NVS=y +CONFIG_SETTINGS_NVS=y +CONFIG_FLASH=y +CONFIG_FLASH_PAGE_LAYOUT=y +CONFIG_FLASH_MAP=y + +# Bootloader Support +CONFIG_RETAINED_MEM=y +CONFIG_RETENTION=y +CONFIG_RETENTION_BOOT_MODE=y