diff --git a/boards/renesas/ek_ra4w1/Kconfig.ek_ra4w1 b/boards/renesas/ek_ra4w1/Kconfig.ek_ra4w1 new file mode 100644 index 00000000000..a2f855a2b3c --- /dev/null +++ b/boards/renesas/ek_ra4w1/Kconfig.ek_ra4w1 @@ -0,0 +1,5 @@ +# Copyright (c) 2024 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_EK_RA4W1 + select SOC_R7FA4W1AD2CNG diff --git a/boards/renesas/ek_ra4w1/board.cmake b/boards/renesas/ek_ra4w1/board.cmake new file mode 100644 index 00000000000..6a1b1617cb8 --- /dev/null +++ b/boards/renesas/ek_ra4w1/board.cmake @@ -0,0 +1,6 @@ +# Copyright (c) 2024 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(jlink "--device=R7FA4W1AD") + +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/boards/renesas/ek_ra4w1/board.yml b/boards/renesas/ek_ra4w1/board.yml new file mode 100644 index 00000000000..709a8435475 --- /dev/null +++ b/boards/renesas/ek_ra4w1/board.yml @@ -0,0 +1,5 @@ +board: + name: ek_ra4w1 + vendor: renesas + socs: + - name: r7fa4w1ad2cng diff --git a/boards/renesas/ek_ra4w1/doc/ek-ra4w1-board.webp b/boards/renesas/ek_ra4w1/doc/ek-ra4w1-board.webp new file mode 100644 index 00000000000..9a1e2b9be43 Binary files /dev/null and b/boards/renesas/ek_ra4w1/doc/ek-ra4w1-board.webp differ diff --git a/boards/renesas/ek_ra4w1/doc/index.rst b/boards/renesas/ek_ra4w1/doc/index.rst new file mode 100644 index 00000000000..48eadcc2d9d --- /dev/null +++ b/boards/renesas/ek_ra4w1/doc/index.rst @@ -0,0 +1,155 @@ +.. _ek_ra4w1: + +RA4W1 Evaluation Kit +#################### + +Overview +******** + +The Renesas RA4W1 is the first Bluetooth® 5.0 Low Energy fully compliant with 2Mbit High-Throughput +(HT) and Long Range support in a single chip MCU of Renesas RA4 product series for IoT applications +that require a high-performance Arm® Cortex®-M4 core at a very attractive price point. The RA4W1 MCU +has full function support for Bluetooth 5.0 Low Energy long-range and mesh networking, and provides +excellent reception performance. RA4W1 is geared towards IoT application requiring Security, large +embedded RAM and low power consumption. + +**MCU Native Pin Access** +- R7FA4W1AD2CNG +- QFN-56 package +- On-chip memory: 512-KB ROM, 96-KB RAM, 8-KB data flash memory + +**Power-supply voltage** +- USB connector: 5-V input +- Power-supply IC: 5-V input, 3.3-V output +- External power-supply header*1: 3.3-V input, 2 pins x 1 + +**Main clock** +- Crystal oscillator (surface-mount technology (SMT)) for the main system clock +- Crystal oscillator or ceramic resonator (lead type) for the main system clock + +**Sub-clock** +- Crystal oscillator (SMT) for the sub-clock + +**Bluetooth Low Energy** +- Bluetooth Low Energy (BLE) circuit x1 +- Range of frequency: 2402 to 2480 MHz +- Maximum transmission output power: 4 dBm (in 4-dBm output mode) +- Output variation: +2 dB + +**Push switches** +- Reset switch x 1 +- User switch x 1 + +**LED** +- Power indicator: green x 1 +- User: green x 2 +- ACT LED: green x 1 + +**Conetivity** +- Connector for an on-board emulator: USB Micro-B +- Connector for a USB serial-conversion interface: USB Micro-B +- Pmod™ connector: Angle type, 12 pins +- Arduino™ UNO connectors + +- Emulator reset switch + +.. figure:: ek-ra4w1-board.webp + :align: center + :alt: RA4W1 Evaluation Kit + + EK-RA4W1 Board Functional Area Definitions (Credit: Renesas Electronics Corporation) + +Hardware +******** +Detail Hardware feature for the RA4W1 MCU group can be found at `RA4W1 Group User's Manual Hardware`_ + +.. figure:: ra4w1-block-diagram.webp + :width: 442px + :align: center + :alt: RA4W1 MCU group feature + + RA4W1 Block diagram (Credit: Renesas Electronics Corporation) + +Detail Hardware feature for the EK-RA4W1 MCU can be found at `EK-RA4W1 - User's Manual`_ + +Supported Features +================== + +The below features are currently supported on Zephyr OS for EK-RA4W1 board: + ++-----------+------------+----------------------+ +| Interface | Controller | Driver/Component | ++===========+============+======================+ +| GPIO | on-chip | gpio | ++-----------+------------+----------------------+ +| MPU | on-chip | arch/arm | ++-----------+------------+----------------------+ +| NVIC | on-chip | arch/arm | ++-----------+------------+----------------------+ +| UART | on-chip | serial | ++-----------+------------+----------------------+ + +Other hardware features are currently not supported by the port. + +Programming and Debugging +************************* + +Applications for the ``ek_ra4w1`` board target configuration can be +built, flashed, and debugged in the usual way. See +:ref:`build_an_application` and :ref:`application_run` for more details on +building and running. + +Flashing +======== + +Program can be flashed to EK-RA4W1 via the on-board SEGGER J-Link debugger. +SEGGER J-link's drivers are avaialbe at https://www.segger.com/downloads/jlink/ + +To flash the program to board + + 1. Connect to J-Link OB via USB port to host PC + + 2. Make sure J-Link OB jumper is in default configuration as describe in `EK-RA4W1 - User's Manual`_ + + 3. Execute west command + + .. code-block:: console + + west flash -r jlink + +Debugging +========= + +You can use Segger Ozone (`Segger Ozone Download`_) for a visual debug interface + +Once downloaded and installed, open Segger Ozone and configure the debug project +like so: + +* Target Device: R7FA4W1AD +* Target Interface: SWD +* Target Interface Speed: 4 MHz +* Host Interface: USB +* Program File: + +**Note:** It's verified that we can debug OK on Segger Ozone v3.30d so please use this or later +version of Segger Ozone + +References +********** +- `EK-RA4W1 Website`_ +- `RA4W1 MCU group Website`_ + +.. _EK-RA4W1 Website: + https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra4w1-evaluation-kit-ra4w1-mcu-group + +.. _RA4W1 MCU group Website: + https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ra4w1-low-energy-single-chip-32-bit-microcontrollers-48mhz-bluetooth-50 + +.. _EK-RA4W1 - User's Manual: + https://www.renesas.com/us/en/document/man/ek-ra4w1-users-manual + +.. _RA4W1 Group User's Manual Hardware: + https://www.renesas.com/us/en/document/man/renesas-ra4w1-group-users-manual-hardware + +.. _Segger Ozone Download: + https://www.segger.com/downloads/jlink#Ozone diff --git a/boards/renesas/ek_ra4w1/doc/ra4w1-block-diagram.webp b/boards/renesas/ek_ra4w1/doc/ra4w1-block-diagram.webp new file mode 100644 index 00000000000..d569b021488 Binary files /dev/null and b/boards/renesas/ek_ra4w1/doc/ra4w1-block-diagram.webp differ diff --git a/boards/renesas/ek_ra4w1/ek_ra4w1-pinctrl.dtsi b/boards/renesas/ek_ra4w1/ek_ra4w1-pinctrl.dtsi new file mode 100644 index 00000000000..3c01cb6bec4 --- /dev/null +++ b/boards/renesas/ek_ra4w1/ek_ra4w1-pinctrl.dtsi @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2024 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + sci0_default: sci0_default { + group1 { + /* tx rx */ + psels = , + ; + }; + }; +}; diff --git a/boards/renesas/ek_ra4w1/ek_ra4w1.dts b/boards/renesas/ek_ra4w1/ek_ra4w1.dts new file mode 100644 index 00000000000..7d764631e03 --- /dev/null +++ b/boards/renesas/ek_ra4w1/ek_ra4w1.dts @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2024 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include +#include "ek_ra4w1-pinctrl.dtsi" + +/ { + model = "Renesas EK-RA4W1"; + compatible = "renesas,ra4w1", "renesas,ra"; + + chosen { + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + }; + + leds { + compatible = "gpio-leds"; + led1: led1 { + gpios = <&ioport1 6 GPIO_ACTIVE_HIGH>; + label = "LED1"; + }; + + led2: led2 { + gpios = <&ioport4 4 GPIO_ACTIVE_HIGH>; + label = "LED2"; + }; + }; + + aliases { + led0 = &led1; + }; +}; + +&subclk { + status = "okay"; +}; + +&sci0 { + pinctrl-0 = <&sci0_default>; + pinctrl-names = "default"; + status = "okay"; + uart0: uart { + current-speed = <115200>; + status = "okay"; + }; +}; + +&ioport1 { + status = "okay"; +}; + +&ioport4 { + status = "okay"; +}; diff --git a/boards/renesas/ek_ra4w1/ek_ra4w1.yaml b/boards/renesas/ek_ra4w1/ek_ra4w1.yaml new file mode 100644 index 00000000000..f31bcd0a7bc --- /dev/null +++ b/boards/renesas/ek_ra4w1/ek_ra4w1.yaml @@ -0,0 +1,12 @@ +identifier: ek_ra4w1 +name: Renesas EK-RA4W1 +type: mcu +arch: arm +ram: 96 +flash: 512 +toolchain: + - zephyr + - gnuarmemb +supported: + - gpio + - uart diff --git a/boards/renesas/ek_ra4w1/ek_ra4w1_defconfig b/boards/renesas/ek_ra4w1/ek_ra4w1_defconfig new file mode 100644 index 00000000000..99d88edca44 --- /dev/null +++ b/boards/renesas/ek_ra4w1/ek_ra4w1_defconfig @@ -0,0 +1,17 @@ +# Copyright (c) 2024 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=32000000 + +# Enable GPIO +CONFIG_GPIO=y +CONFIG_PINCTRL=y + +# Enable Console +CONFIG_SERIAL=y +CONFIG_UART_INTERRUPT_DRIVEN=y +CONFIG_UART_CONSOLE=y +CONFIG_CONSOLE=y + +CONFIG_BUILD_OUTPUT_HEX=y +CONFIG_BUILD_NO_GAP_FILL=y diff --git a/tests/drivers/uart/uart_async_api/boards/ek_ra4w1.overlay b/tests/drivers/uart/uart_async_api/boards/ek_ra4w1.overlay new file mode 100644 index 00000000000..238c284fa2d --- /dev/null +++ b/tests/drivers/uart/uart_async_api/boards/ek_ra4w1.overlay @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2024 Renesas Electronics Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + sci1_default: sci1_default { + group1 { + /* tx rx */ + psels = , + ; + }; + }; +}; + +&sci1 { + pinctrl-0 = <&sci1_default>; + pinctrl-names = "default"; + status = "okay"; + dut: uart { + current-speed = <115200>; + status = "okay"; + }; +};