diff --git a/boards/realtek/index.rst b/boards/realtek/index.rst new file mode 100644 index 000000000000000..b15a0a3d34c3a64 --- /dev/null +++ b/boards/realtek/index.rst @@ -0,0 +1,10 @@ +.. _boards-realtek: + +Realtek +####### + +.. toctree:: + :maxdepth: 1 + :glob: + + **/* diff --git a/boards/realtek/rts5912_evb/Kconfig.defconfig b/boards/realtek/rts5912_evb/Kconfig.defconfig new file mode 100644 index 000000000000000..21c1e3c65143f9a --- /dev/null +++ b/boards/realtek/rts5912_evb/Kconfig.defconfig @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: Apache-2.0 +# +# Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7 +# diff --git a/boards/realtek/rts5912_evb/Kconfig.rts5912_evb b/boards/realtek/rts5912_evb/Kconfig.rts5912_evb new file mode 100644 index 000000000000000..d9e479f42b9c104 --- /dev/null +++ b/boards/realtek/rts5912_evb/Kconfig.rts5912_evb @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: Apache-2.0 +# +# Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7 +# + +config BOARD_RTS5912_EVB + select SOC_RTS5912 diff --git a/boards/realtek/rts5912_evb/board.cmake b/boards/realtek/rts5912_evb/board.cmake new file mode 100644 index 000000000000000..46c6d4bd1ffe4be --- /dev/null +++ b/boards/realtek/rts5912_evb/board.cmake @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: Apache-2.0 +# +# Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7 +# + +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) diff --git a/boards/realtek/rts5912_evb/board.yml b/boards/realtek/rts5912_evb/board.yml new file mode 100644 index 000000000000000..2be9b8d1746d831 --- /dev/null +++ b/boards/realtek/rts5912_evb/board.yml @@ -0,0 +1,5 @@ +board: + name: rts5912_evb + vendor: realtek + socs: + - name: rts5912 diff --git a/boards/realtek/rts5912_evb/doc/rts5912_evb.rst b/boards/realtek/rts5912_evb/doc/rts5912_evb.rst new file mode 100644 index 000000000000000..815dc9ad33a7e7a --- /dev/null +++ b/boards/realtek/rts5912_evb/doc/rts5912_evb.rst @@ -0,0 +1,93 @@ +.. _rts5912_evb: + +Realtek RTS5912 Evaluation Board +################################ + +Overview +******** + +The RTS5912 EVB is a development platform to evaluate the Realtek RTS5912 embedded controller. + +.. figure:: rts5912evb.webp + :width: 800px + :align: center + :alt: RTS5912-GR EVB + +Hardware +******** + +- Realtek-M300 Processor (compatible to Cortex-M33) +- Memory: + + - 384KB SRAM + - 64KB ROM + - 512KB Flash(MCM) + - 256B Battery SRAM +- PECI interface 3.1 +- FAN, PWM and TACHO pins +- 6x I2C instances +- eSPI header +- 1x PS/2 ports +- Keyboard interface headers + +For more information about the evb board please see `RTS5912_EVB_Schematics`_ and `RTS5912_DATASHEET`_ + +The board is powered through the +5V USB Type-C connector or adaptor. + +Supported Features +================== + +The ``rts5912_evb`` supports the following hardware features: + ++-----------+------------+-------------------------------------+ +| Interface | Controller | Driver/Component | ++===========+============+=====================================+ +| NVIC | on-chip | nested vector interrupt controller | ++-----------+------------+-------------------------------------+ +| UART | on-chip | serial | ++-----------+------------+-------------------------------------+ +| GPIO | on-chip | gpio | ++-----------+------------+-------------------------------------+ +| PINCTRL | on-chip | pinctrl | ++-----------+------------+-------------------------------------+ +| SCCON | on-chip | clock_control | ++-----------+------------+-------------------------------------+ +| RTMR | on-chip | timer | ++-----------+------------+-------------------------------------+ + +Other hardware features are not currently supported by Zephyr. + +Programming and Debugging +************************* + +Building +======== + +#. Build :zephyr:code-sample:`hello_world` application as you would normally do. + +#. The file ``zephyr.rts5912.bin`` will be created if the build system can build successfully. + This binary image can be found under file "build/zephyr/". + +Flashing +======== + +#. Connect Dediprog into header ``J81`` and ``J82``. +#. Use Dediprog SF600 programmer to write the binary into the external flash ``U10`` at the address 0x0. +#. Power off the board. +#. Set the strap pin ``GPIO108`` to high and power on the board. + +Debugging +========= + +Using SWD or JTAG with ULINPRO. + +References +********** + +.. target-notes:: + +.. _RTS5912_EVB_Schematics: + https://github.com/JasonLin-RealTek/Realtek_EC/blob/main/RTS5912_EVB_Schematic_Ver%201.1_20240701_1407.pdf + +.. _RTS5912_DATASHEET: + https://github.com/JasonLin-RealTek/Realtek_EC/blob/main/RTS5912_datasheet_brief.pdf diff --git a/boards/realtek/rts5912_evb/doc/rts5912evb.webp b/boards/realtek/rts5912_evb/doc/rts5912evb.webp new file mode 100644 index 000000000000000..e8a7d96420af3ad Binary files /dev/null and b/boards/realtek/rts5912_evb/doc/rts5912evb.webp differ diff --git a/boards/realtek/rts5912_evb/rts5912_evb.dts b/boards/realtek/rts5912_evb/rts5912_evb.dts new file mode 100644 index 000000000000000..1a89ecfca865b46 --- /dev/null +++ b/boards/realtek/rts5912_evb/rts5912_evb.dts @@ -0,0 +1,32 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7 + * + */ + +/dts-v1/; +#include +#include +#include +/ { + model = "Realtek RTS5912 Evaluation Board"; + compatible = "realtek,rts5912-evb"; + + chosen { + zephyr,sram = &sram0; + zephyr,console = &uart0; + zephyr,flash = &flash0; + }; +}; + +&uart0 { + status = "okay"; + current-speed = <115200>; + pinctrl-0 = <&uart_rx_gpio113 &uart_tx_gpio114>; + pinctrl-names = "default"; +}; + +&swj_port { + status = "okay"; +}; diff --git a/boards/realtek/rts5912_evb/rts5912_evb.yaml b/boards/realtek/rts5912_evb/rts5912_evb.yaml new file mode 100644 index 000000000000000..199a6e1027af483 --- /dev/null +++ b/boards/realtek/rts5912_evb/rts5912_evb.yaml @@ -0,0 +1,19 @@ +# SPDX-License-Identifier: Apache-2.0 +# +# Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7 +# + +identifier: rts5912_evb +name: RTS5912-EVB +type: mcu +arch: arm +toolchain: + - zephyr + - gnuarmemb + - xtools +ram: 64 +flash: 320 +supported: + - gpio + - pinmux +vendor: realtek diff --git a/boards/realtek/rts5912_evb/rts5912_evb_defconfig b/boards/realtek/rts5912_evb/rts5912_evb_defconfig new file mode 100644 index 000000000000000..90da0bda5e8fdd3 --- /dev/null +++ b/boards/realtek/rts5912_evb/rts5912_evb_defconfig @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +# +# Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7 +# + +# Enable RTS5912 image tool +CONFIG_REALTEK_RTS5912_BOOTROM_HEADER=y + +# Serial Driver +CONFIG_SERIAL=y + +# Console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable GPIO +CONFIG_GPIO=y