From 31f664ffec0e90fe2123e1dfcaca4b34654d4714 Mon Sep 17 00:00:00 2001
From: Peter Johanson <peter@peterjohanson.com>
Date: Thu, 23 Dec 2021 23:45:29 -0500
Subject: [PATCH] fix(boards): Base config/overlay for rp2040 boards

Baseline config and overlay for the following:

* `rpi_pico`
* `adafruit_kb2040`
* `sparkfun_pro_micro_rp2040`
* `adafruit_qt_py_rp2040`
* `seeeduino_xiao_rp2040`
* `boardsource_blok`
* `01space_rp2040_042lcd`

Co-authored-by: Joel Spadin <joelspadin@gmail.com>
---
 app/boards/01space_rp2040_042lcd.conf         |  6 ++++++
 app/boards/01space_rp2040_042lcd.overlay      |  9 +++++++++
 app/boards/adafruit_kb2040.conf               |  4 ++++
 app/boards/adafruit_kb2040.overlay            |  9 +++++++++
 app/boards/adafruit_qt_py_rp2040.conf         |  4 ++++
 app/boards/adafruit_qt_py_rp2040.overlay      |  9 +++++++++
 .../adafruit_kb2040/adafruit_kb2040.zmk.yml   |  9 +++++++++
 .../adafruit_qt_py_rp2040.zmk.yml             |  9 +++++++++
 .../boardsource_blok/boardsource_blok.zmk.yml |  9 +++++++++
 .../seeeduino_xiao_rp2040.zmk.yml             |  9 +++++++++
 .../sparkfun_pro_micro_rp2040.zmk.yml         |  9 +++++++++
 app/boards/boardsource_blok.conf              |  4 ++++
 app/boards/boardsource_blok.overlay           |  9 +++++++++
 app/boards/rpi_pico.conf                      |  5 +++++
 app/boards/rpi_pico.overlay                   |  8 ++++++++
 app/boards/seeeduino_xiao_rp2040.conf         |  4 ++++
 app/boards/seeeduino_xiao_rp2040.overlay      |  9 +++++++++
 app/boards/sparkfun_pro_micro_rp2040.conf     |  4 ++++
 app/boards/sparkfun_pro_micro_rp2040.overlay  |  9 +++++++++
 app/boards/usb_console.dtsi                   | 20 +++++++++++++++++++
 20 files changed, 158 insertions(+)
 create mode 100644 app/boards/01space_rp2040_042lcd.conf
 create mode 100644 app/boards/01space_rp2040_042lcd.overlay
 create mode 100644 app/boards/adafruit_kb2040.conf
 create mode 100644 app/boards/adafruit_kb2040.overlay
 create mode 100644 app/boards/adafruit_qt_py_rp2040.conf
 create mode 100644 app/boards/adafruit_qt_py_rp2040.overlay
 create mode 100644 app/boards/arm/adafruit_kb2040/adafruit_kb2040.zmk.yml
 create mode 100644 app/boards/arm/adafruit_qt_py_rp2040/adafruit_qt_py_rp2040.zmk.yml
 create mode 100644 app/boards/arm/boardsource_blok/boardsource_blok.zmk.yml
 create mode 100644 app/boards/arm/seeeduino_xiao_rp2040/seeeduino_xiao_rp2040.zmk.yml
 create mode 100644 app/boards/arm/sparkfun_pro_micro_rp2040/sparkfun_pro_micro_rp2040.zmk.yml
 create mode 100644 app/boards/boardsource_blok.conf
 create mode 100644 app/boards/boardsource_blok.overlay
 create mode 100644 app/boards/rpi_pico.conf
 create mode 100644 app/boards/rpi_pico.overlay
 create mode 100644 app/boards/seeeduino_xiao_rp2040.conf
 create mode 100644 app/boards/seeeduino_xiao_rp2040.overlay
 create mode 100644 app/boards/sparkfun_pro_micro_rp2040.conf
 create mode 100644 app/boards/sparkfun_pro_micro_rp2040.overlay
 create mode 100644 app/boards/usb_console.dtsi

diff --git a/app/boards/01space_rp2040_042lcd.conf b/app/boards/01space_rp2040_042lcd.conf
new file mode 100644
index 00000000..c520a3b7
--- /dev/null
+++ b/app/boards/01space_rp2040_042lcd.conf
@@ -0,0 +1,6 @@
+CONFIG_ZMK_DISPLAY=y
+CONFIG_LV_FONT_UNSCII_8=n
+CONFIG_ZMK_USB=y
+CONFIG_I2C=y
+CONFIG_I2C_DW=y
+CONFIG_LV_Z_VDB_SIZE=50
diff --git a/app/boards/01space_rp2040_042lcd.overlay b/app/boards/01space_rp2040_042lcd.overlay
new file mode 100644
index 00000000..d89e53f4
--- /dev/null
+++ b/app/boards/01space_rp2040_042lcd.overlay
@@ -0,0 +1,9 @@
+/*
+ * Copyright (c) 2023 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "usb_console.dtsi"
+
+&xiao_serial { status = "disabled"; };
diff --git a/app/boards/adafruit_kb2040.conf b/app/boards/adafruit_kb2040.conf
new file mode 100644
index 00000000..21c1893d
--- /dev/null
+++ b/app/boards/adafruit_kb2040.conf
@@ -0,0 +1,4 @@
+CONFIG_CONSOLE=n
+CONFIG_SERIAL=n
+CONFIG_UART_CONSOLE=n
+CONFIG_ZMK_USB=y
diff --git a/app/boards/adafruit_kb2040.overlay b/app/boards/adafruit_kb2040.overlay
new file mode 100644
index 00000000..b14e0d04
--- /dev/null
+++ b/app/boards/adafruit_kb2040.overlay
@@ -0,0 +1,9 @@
+/*
+ * Copyright (c) 2023 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "usb_console.dtsi"
+
+&pro_micro_serial { status = "disabled"; };
diff --git a/app/boards/adafruit_qt_py_rp2040.conf b/app/boards/adafruit_qt_py_rp2040.conf
new file mode 100644
index 00000000..21c1893d
--- /dev/null
+++ b/app/boards/adafruit_qt_py_rp2040.conf
@@ -0,0 +1,4 @@
+CONFIG_CONSOLE=n
+CONFIG_SERIAL=n
+CONFIG_UART_CONSOLE=n
+CONFIG_ZMK_USB=y
diff --git a/app/boards/adafruit_qt_py_rp2040.overlay b/app/boards/adafruit_qt_py_rp2040.overlay
new file mode 100644
index 00000000..d89e53f4
--- /dev/null
+++ b/app/boards/adafruit_qt_py_rp2040.overlay
@@ -0,0 +1,9 @@
+/*
+ * Copyright (c) 2023 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "usb_console.dtsi"
+
+&xiao_serial { status = "disabled"; };
diff --git a/app/boards/arm/adafruit_kb2040/adafruit_kb2040.zmk.yml b/app/boards/arm/adafruit_kb2040/adafruit_kb2040.zmk.yml
new file mode 100644
index 00000000..c8973f5c
--- /dev/null
+++ b/app/boards/arm/adafruit_kb2040/adafruit_kb2040.zmk.yml
@@ -0,0 +1,9 @@
+file_format: "1"
+id: adafruit_kb2040
+name: Adafruit KB2040
+type: board
+arch: arm
+outputs:
+  - usb
+url: https://www.adafruit.com/product/5302
+exposes: [pro_micro]
diff --git a/app/boards/arm/adafruit_qt_py_rp2040/adafruit_qt_py_rp2040.zmk.yml b/app/boards/arm/adafruit_qt_py_rp2040/adafruit_qt_py_rp2040.zmk.yml
new file mode 100644
index 00000000..9b9c1450
--- /dev/null
+++ b/app/boards/arm/adafruit_qt_py_rp2040/adafruit_qt_py_rp2040.zmk.yml
@@ -0,0 +1,9 @@
+file_format: "1"
+id: adafruit_qt_py_rp2040
+name: Adafruit QT Py RP2040
+type: board
+arch: arm
+outputs:
+  - usb
+url: https://www.adafruit.com/product/4900
+exposes: [seeed_xiao]
diff --git a/app/boards/arm/boardsource_blok/boardsource_blok.zmk.yml b/app/boards/arm/boardsource_blok/boardsource_blok.zmk.yml
new file mode 100644
index 00000000..a6e91afd
--- /dev/null
+++ b/app/boards/arm/boardsource_blok/boardsource_blok.zmk.yml
@@ -0,0 +1,9 @@
+file_format: "1"
+id: boardsource_blok
+name: BoardSource blok
+type: board
+arch: arm
+outputs:
+  - usb
+url: https://peg.software/docs/blok
+exposes: [pro_micro]
diff --git a/app/boards/arm/seeeduino_xiao_rp2040/seeeduino_xiao_rp2040.zmk.yml b/app/boards/arm/seeeduino_xiao_rp2040/seeeduino_xiao_rp2040.zmk.yml
new file mode 100644
index 00000000..77d8d664
--- /dev/null
+++ b/app/boards/arm/seeeduino_xiao_rp2040/seeeduino_xiao_rp2040.zmk.yml
@@ -0,0 +1,9 @@
+file_format: "1"
+id: seeeduino_xiao_rp2040
+name: Seeeduino XIAO RP2040
+type: board
+arch: arm
+outputs:
+  - usb
+url: https://wiki.seeedstudio.com/XIAO-RP2040/
+exposes: [seeed_xiao]
diff --git a/app/boards/arm/sparkfun_pro_micro_rp2040/sparkfun_pro_micro_rp2040.zmk.yml b/app/boards/arm/sparkfun_pro_micro_rp2040/sparkfun_pro_micro_rp2040.zmk.yml
new file mode 100644
index 00000000..26a2ca64
--- /dev/null
+++ b/app/boards/arm/sparkfun_pro_micro_rp2040/sparkfun_pro_micro_rp2040.zmk.yml
@@ -0,0 +1,9 @@
+file_format: "1"
+id: sparkfun_pro_micro_rp2040
+name: SparkFun Pro Micro RP2040
+type: board
+arch: arm
+outputs:
+  - usb
+url: https://www.sparkfun.com/products/18288
+exposes: [pro_micro]
diff --git a/app/boards/boardsource_blok.conf b/app/boards/boardsource_blok.conf
new file mode 100644
index 00000000..21c1893d
--- /dev/null
+++ b/app/boards/boardsource_blok.conf
@@ -0,0 +1,4 @@
+CONFIG_CONSOLE=n
+CONFIG_SERIAL=n
+CONFIG_UART_CONSOLE=n
+CONFIG_ZMK_USB=y
diff --git a/app/boards/boardsource_blok.overlay b/app/boards/boardsource_blok.overlay
new file mode 100644
index 00000000..b14e0d04
--- /dev/null
+++ b/app/boards/boardsource_blok.overlay
@@ -0,0 +1,9 @@
+/*
+ * Copyright (c) 2023 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "usb_console.dtsi"
+
+&pro_micro_serial { status = "disabled"; };
diff --git a/app/boards/rpi_pico.conf b/app/boards/rpi_pico.conf
new file mode 100644
index 00000000..f0db8ed1
--- /dev/null
+++ b/app/boards/rpi_pico.conf
@@ -0,0 +1,5 @@
+CONFIG_CONSOLE=n
+CONFIG_SERIAL=n
+CONFIG_UART_CONSOLE=n
+CONFIG_UART_INTERRUPT_DRIVEN=n
+CONFIG_ZMK_USB=y
diff --git a/app/boards/rpi_pico.overlay b/app/boards/rpi_pico.overlay
new file mode 100644
index 00000000..efc8e080
--- /dev/null
+++ b/app/boards/rpi_pico.overlay
@@ -0,0 +1,8 @@
+/*
+ * Copyright (c) 2023 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "usb_console.dtsi"
+
diff --git a/app/boards/seeeduino_xiao_rp2040.conf b/app/boards/seeeduino_xiao_rp2040.conf
new file mode 100644
index 00000000..21c1893d
--- /dev/null
+++ b/app/boards/seeeduino_xiao_rp2040.conf
@@ -0,0 +1,4 @@
+CONFIG_CONSOLE=n
+CONFIG_SERIAL=n
+CONFIG_UART_CONSOLE=n
+CONFIG_ZMK_USB=y
diff --git a/app/boards/seeeduino_xiao_rp2040.overlay b/app/boards/seeeduino_xiao_rp2040.overlay
new file mode 100644
index 00000000..d89e53f4
--- /dev/null
+++ b/app/boards/seeeduino_xiao_rp2040.overlay
@@ -0,0 +1,9 @@
+/*
+ * Copyright (c) 2023 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "usb_console.dtsi"
+
+&xiao_serial { status = "disabled"; };
diff --git a/app/boards/sparkfun_pro_micro_rp2040.conf b/app/boards/sparkfun_pro_micro_rp2040.conf
new file mode 100644
index 00000000..21c1893d
--- /dev/null
+++ b/app/boards/sparkfun_pro_micro_rp2040.conf
@@ -0,0 +1,4 @@
+CONFIG_CONSOLE=n
+CONFIG_SERIAL=n
+CONFIG_UART_CONSOLE=n
+CONFIG_ZMK_USB=y
diff --git a/app/boards/sparkfun_pro_micro_rp2040.overlay b/app/boards/sparkfun_pro_micro_rp2040.overlay
new file mode 100644
index 00000000..b14e0d04
--- /dev/null
+++ b/app/boards/sparkfun_pro_micro_rp2040.overlay
@@ -0,0 +1,9 @@
+/*
+ * Copyright (c) 2023 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "usb_console.dtsi"
+
+&pro_micro_serial { status = "disabled"; };
diff --git a/app/boards/usb_console.dtsi b/app/boards/usb_console.dtsi
new file mode 100644
index 00000000..4ce59408
--- /dev/null
+++ b/app/boards/usb_console.dtsi
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2023 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+
+/ {
+	chosen {
+		zephyr,console = &cdc_acm_uart;
+	};
+};
+
+&usbd {
+	cdc_acm_uart: cdc_acm_uart {
+		compatible = "zephyr,cdc-acm-uart";
+		label = "CDC_ACM_0";
+	};
+};
+