From 26f8d4e4fb8dbdc7772fd1dd0d788619dd07b3ab Mon Sep 17 00:00:00 2001 From: Michael Hope Date: Sat, 1 Jun 2024 21:59:12 +0530 Subject: [PATCH] boards: add ch32v003evt This commit adds support for the CH32V003EVT board which features a 32-bit general-purpose RISC-V MCU. Signed-off-by: Michael Hope Signed-off-by: Dhiru Kholia --- .../wch/ch32v003evt/Kconfig.wch_ch32v003evt | 5 + boards/wch/ch32v003evt/board.cmake | 5 + boards/wch/ch32v003evt/board.yml | 5 + .../doc/img/wch_ch32v003evt_front.webp | Bin 0 -> 51090 bytes boards/wch/ch32v003evt/doc/index.rst | 116 ++++++++++++++++++ boards/wch/ch32v003evt/support/openocd.cfg | 15 +++ .../ch32v003evt/wch_ch32v003evt-pinctrl.dtsi | 21 ++++ boards/wch/ch32v003evt/wch_ch32v003evt.dts | 44 +++++++ boards/wch/ch32v003evt/wch_ch32v003evt.yaml | 11 ++ boards/wch/index.rst | 10 ++ 10 files changed, 232 insertions(+) create mode 100644 boards/wch/ch32v003evt/Kconfig.wch_ch32v003evt create mode 100644 boards/wch/ch32v003evt/board.cmake create mode 100644 boards/wch/ch32v003evt/board.yml create mode 100644 boards/wch/ch32v003evt/doc/img/wch_ch32v003evt_front.webp create mode 100644 boards/wch/ch32v003evt/doc/index.rst create mode 100644 boards/wch/ch32v003evt/support/openocd.cfg create mode 100644 boards/wch/ch32v003evt/wch_ch32v003evt-pinctrl.dtsi create mode 100644 boards/wch/ch32v003evt/wch_ch32v003evt.dts create mode 100644 boards/wch/ch32v003evt/wch_ch32v003evt.yaml create mode 100644 boards/wch/index.rst diff --git a/boards/wch/ch32v003evt/Kconfig.wch_ch32v003evt b/boards/wch/ch32v003evt/Kconfig.wch_ch32v003evt new file mode 100644 index 000000000000000..3495fe88b376410 --- /dev/null +++ b/boards/wch/ch32v003evt/Kconfig.wch_ch32v003evt @@ -0,0 +1,5 @@ +# Copyright (c) 2024 Michael Hope +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_WCH_CH32V003EVT + select SOC_CH32V003 diff --git a/boards/wch/ch32v003evt/board.cmake b/boards/wch/ch32v003evt/board.cmake new file mode 100644 index 000000000000000..835618aa42383c6 --- /dev/null +++ b/boards/wch/ch32v003evt/board.cmake @@ -0,0 +1,5 @@ +# Copyright (c) 2024 Michael Hope +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(openocd "--use-elf" "--cmd-reset-halt" "halt") +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) diff --git a/boards/wch/ch32v003evt/board.yml b/boards/wch/ch32v003evt/board.yml new file mode 100644 index 000000000000000..f54f77caea8af00 --- /dev/null +++ b/boards/wch/ch32v003evt/board.yml @@ -0,0 +1,5 @@ +board: + name: wch_ch32v003evt + vendor: wch + socs: + - name: ch32v003 diff --git a/boards/wch/ch32v003evt/doc/img/wch_ch32v003evt_front.webp b/boards/wch/ch32v003evt/doc/img/wch_ch32v003evt_front.webp new file mode 100644 index 0000000000000000000000000000000000000000..9c1e800c7adc8b237a66bc6731d48e0d940a1291 GIT binary patch literal 51090 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 + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +&pinctrl { + usart1_default: usart1_default { + group1 { + pinmux = ; + output-high; + drive-push-pull; + slew-rate = "max-speed-10mhz"; + }; + group2 { + pinmux = ; + bias-pull-up; + }; + }; +}; diff --git a/boards/wch/ch32v003evt/wch_ch32v003evt.dts b/boards/wch/ch32v003evt/wch_ch32v003evt.dts new file mode 100644 index 000000000000000..c8cfc89b84e3dfc --- /dev/null +++ b/boards/wch/ch32v003evt/wch_ch32v003evt.dts @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2024 Michael Hope + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include "wch_ch32v003evt-pinctrl.dtsi" + +/ { + model = "ch32v003evt"; + compatible = "wch,ch32v003"; + + chosen { + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,console = &usart1; + zephyr,shell-uart = &usart1; + }; + + leds { + compatible = "gpio-leds"; + + red_led: led0 { + gpios = <&gpiod 4 GPIO_ACTIVE_HIGH>; + }; + }; + + aliases { + led0 = &red_led; + }; +}; + +&gpiod { + status = "okay"; +}; + +&usart1 { + status = "okay"; + current-speed = <115200>; + pinctrl-0 = <&usart1_default>; + pinctrl-names = "default"; +}; diff --git a/boards/wch/ch32v003evt/wch_ch32v003evt.yaml b/boards/wch/ch32v003evt/wch_ch32v003evt.yaml new file mode 100644 index 000000000000000..4b21fa5f4f6f8c9 --- /dev/null +++ b/boards/wch/ch32v003evt/wch_ch32v003evt.yaml @@ -0,0 +1,11 @@ +identifier: wch_ch32v003evt +name: WCH CH32V003 Evaluation Board +type: mcu +arch: riscv +toolchain: + - cross-compile + - zephyr +ram: 2 +flash: 16 +supported: + - gpio diff --git a/boards/wch/index.rst b/boards/wch/index.rst new file mode 100644 index 000000000000000..21745ccfccddeab --- /dev/null +++ b/boards/wch/index.rst @@ -0,0 +1,10 @@ +.. _boards-wch: + +WCH - Nanjing Qinheng Microelectronics Co. +########################################## + +.. toctree:: + :maxdepth: 1 + :glob: + + **/*