summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/zephyr/boards/rpi_pico.conf19
-rw-r--r--ports/zephyr/boards/rpi_pico.overlay48
2 files changed, 67 insertions, 0 deletions
diff --git a/ports/zephyr/boards/rpi_pico.conf b/ports/zephyr/boards/rpi_pico.conf
new file mode 100644
index 000000000..6b31bc9f9
--- /dev/null
+++ b/ports/zephyr/boards/rpi_pico.conf
@@ -0,0 +1,19 @@
+# Disable floating point hardware.
+CONFIG_FPU=n
+
+# Configure serial console over USB CDC ACM.
+CONFIG_USB_DEVICE_STACK_NEXT=y
+CONFIG_USBD_CDC_ACM_CLASS=y
+CONFIG_UART_LINE_CTRL=y
+
+# Disable networking.
+CONFIG_NETWORKING=n
+
+# Hardware features.
+CONFIG_FLASH=y
+CONFIG_FLASH_MAP=y
+CONFIG_I2C=y
+CONFIG_SPI=y
+
+# MicroPython config.
+CONFIG_MICROPY_HEAP_SIZE=196608
diff --git a/ports/zephyr/boards/rpi_pico.overlay b/ports/zephyr/boards/rpi_pico.overlay
new file mode 100644
index 000000000..d63ed73bd
--- /dev/null
+++ b/ports/zephyr/boards/rpi_pico.overlay
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2025 Damien P. George
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/ {
+ chosen {
+ /* Use USB CDC ACM as the console. */
+ zephyr,console = &cdc_acm_uart0;
+ };
+};
+
+/* Delete defined partitions and make a layout matching the rp2 port RPI_PICO configuration. */
+/delete-node/ &code_partition;
+&flash0 {
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ /* Code slot: 640 KiB - 0x100 placed after second-stage bootloader. */
+ code_partition: partition@100 {
+ label = "code-partition";
+ reg = <0x00000100 (DT_SIZE_K(640) - 0x100)>;
+ read-only;
+ };
+
+ /* Storage slot: 1408 KiB placed after code_partition. */
+ storage_partition: partition@a0000 {
+ label = "storage";
+ reg = <0x000a0000 DT_SIZE_K(1408)>;
+ };
+ };
+};
+
+&zephyr_udc0 {
+ cdc_acm_uart0: cdc_acm_uart0 {
+ compatible = "zephyr,cdc-acm-uart";
+ };
+};
+
+&i2c1 {
+ clock-frequency = <I2C_BITRATE_STANDARD>;
+ status = "okay";
+ pinctrl-0 = <&i2c1_default>;
+ pinctrl-names = "default";
+};