Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add realtek rts5912 soc #75267

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions MAINTAINERS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3878,6 +3878,19 @@ OpenTitan Platforms:
description: >-
OpenTitan boards, SOCs, dts files and related drivers.

Realtek EC Platforms:
status: maintained
maintainers:
- JasonLin-RealTek
files:
- boards/realtek/
- drivers/*/*rts5912*
- dts/bindings/*/*rts5912*
- dts/arm/realtek/ec/
- soc/realtek/ec/
labels:
- "platform: Realtek EC"

Renesas SmartBond Platforms:
status: maintained
maintainers:
Expand Down
10 changes: 10 additions & 0 deletions boards/realtek/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.. _boards-realtek:

Realtek
#######

.. toctree::
:maxdepth: 1
:glob:

**/*
4 changes: 4 additions & 0 deletions boards/realtek/rts5912_evb/Kconfig.defconfig
fabiobaltieri marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7
#
7 changes: 7 additions & 0 deletions boards/realtek/rts5912_evb/Kconfig.rts5912_evb
Original file line number Diff line number Diff line change
@@ -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
6 changes: 6 additions & 0 deletions boards/realtek/rts5912_evb/board.cmake
Original file line number Diff line number Diff line change
@@ -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)
5 changes: 5 additions & 0 deletions boards/realtek/rts5912_evb/board.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
board:
name: rts5912_evb
vendor: realtek
socs:
- name: rts5912
93 changes: 93 additions & 0 deletions boards/realtek/rts5912_evb/doc/rts5912_evb.rst
Original file line number Diff line number Diff line change
@@ -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)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

newline

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add newline.

- 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:

+-----------+------------+-------------------------------------+
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

| 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``.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

newline

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix

#. 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
Binary file added boards/realtek/rts5912_evb/doc/rts5912evb.webp
Binary file not shown.
32 changes: 32 additions & 0 deletions boards/realtek/rts5912_evb/rts5912_evb.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7
*
*/

/dts-v1/;
#include <realtek/ec/rts5912.dtsi>
#include <realtek/ec/rts5912-pinctrl.dtsi>
#include <zephyr/dt-bindings/gpio/gpio.h>
/ {
model = "Realtek RTS5912 Evaluation Board";
compatible = "realtek,rts5912-evb";

chosen {
zephyr,sram = &sram0;
zephyr,console = &uart0;
zephyr,flash = &flash0;
};
};

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

non-blocking comment: should there be flash partitions here?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unaddressed

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

power states must not be at board level

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have put those power state to rts5912.dtsi.

&uart0 {
status = "okay";
current-speed = <115200>;
pinctrl-0 = <&uart_rx_gpio113 &uart_tx_gpio114>;
pinctrl-names = "default";
};

&swj_port {
status = "okay";
};
19 changes: 19 additions & 0 deletions boards/realtek/rts5912_evb/rts5912_evb.yaml
Original file line number Diff line number Diff line change
@@ -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
17 changes: 17 additions & 0 deletions boards/realtek/rts5912_evb/rts5912_evb_defconfig
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions drivers/clock_control/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_RENESAS_RA_CGC clock_cont
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_AMBIQ clock_control_ambiq.c)
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_PWM clock_control_pwm.c)
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_RPI_PICO clock_control_rpi_pico.c)
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_RTS5912_SCCON clock_control_rts5912_sccon.c)

if(CONFIG_CLOCK_CONTROL_NRF2)
zephyr_library_sources(clock_control_nrf2_common.c)
Expand Down
2 changes: 2 additions & 0 deletions drivers/clock_control/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ source "drivers/clock_control/Kconfig.npcx"

source "drivers/clock_control/Kconfig.rv32m1"

source "drivers/clock_control/Kconfig.rts5912"

source "drivers/clock_control/Kconfig.esp32"

source "drivers/clock_control/Kconfig.litex"
Expand Down
11 changes: 11 additions & 0 deletions drivers/clock_control/Kconfig.rts5912
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7
#

config CLOCK_CONTROL_RTS5912_SCCON
bool "Realtek RTS5912 system clock controller driver"
default y
depends on DT_HAS_REALTEK_RTS5912_SCCON_ENABLED
help
Enable support for RTS5912 system clock controller driver
Loading
Loading