2024-11-22 16:57:25 +08:00
|
|
|
/*
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
*
|
|
|
|
* Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <arm/armv8-m.dtsi>
|
|
|
|
#include <zephyr/dt-bindings/clock/rts5912_clock.h>
|
|
|
|
#include <zephyr/dt-bindings/gpio/realtek-gpio.h>
|
|
|
|
|
|
|
|
/ {
|
|
|
|
cpus {
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <0>;
|
|
|
|
|
|
|
|
cpu0: cpu@0 {
|
|
|
|
compatible = "arm,cortex-m33f";
|
|
|
|
reg = <0>;
|
|
|
|
cpu-power-states = <&idle &suspend_to_ram>;
|
|
|
|
};
|
|
|
|
|
|
|
|
power-states {
|
|
|
|
idle: idle {
|
|
|
|
compatible = "zephyr,power-state";
|
|
|
|
power-state-name = "suspend-to-idle";
|
|
|
|
min-residency-us = <100000>;
|
|
|
|
};
|
|
|
|
|
|
|
|
suspend_to_ram: suspend_to_ram {
|
|
|
|
compatible = "zephyr,power-state";
|
|
|
|
power-state-name = "suspend-to-ram";
|
|
|
|
min-residency-us = <250000>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
flash0: flash@20000400 {
|
|
|
|
reg = <0x20000400 0x4FC00>;
|
|
|
|
};
|
|
|
|
|
|
|
|
sram0: memory@20050000 {
|
|
|
|
compatible = "mmio-sram";
|
|
|
|
reg = <0x20050000 0x8000>;
|
|
|
|
};
|
|
|
|
|
2024-11-22 17:01:05 +08:00
|
|
|
clocks {
|
|
|
|
rc25m: rc25m {
|
|
|
|
compatible = "fixed-clock";
|
|
|
|
clock-frequency = <25000000>;
|
|
|
|
#clock-cells = <0>;
|
|
|
|
};
|
|
|
|
|
|
|
|
pll: pll {
|
|
|
|
compatible = "fixed-clock";
|
|
|
|
clock-frequency = <100000000>;
|
|
|
|
#clock-cells = <0>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-11-22 16:57:25 +08:00
|
|
|
soc {
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <1>;
|
|
|
|
compatible = "simple-bus";
|
|
|
|
interrupt-parent = <&nvic>;
|
|
|
|
ranges;
|
2024-11-22 17:01:05 +08:00
|
|
|
|
|
|
|
sccon: clock-controller@40020000 {
|
|
|
|
compatible = "realtek,rts5912-sccon";
|
|
|
|
reg = <0x40020000 0xf0>;
|
|
|
|
#clock-cells = <2>;
|
|
|
|
clocks = <&rc25m>, <&pll>;
|
|
|
|
clock-names = "rc25m", "pll";
|
|
|
|
};
|
2024-11-22 17:07:43 +08:00
|
|
|
|
2024-11-22 18:27:29 +08:00
|
|
|
slwtmr0: slwtmr0@4000c200 {
|
|
|
|
compatible = "realtek,rts5912-slwtimer";
|
|
|
|
reg = <0x4000c200 0x10>;
|
|
|
|
interrupts = <202 0>;
|
|
|
|
clocks = <&sccon RTS5912_SCCON_PERIPH_GRP1 PERIPH_GRP1_SLWTMR0_CLKPWR>;
|
|
|
|
clock-names = "slwtmr";
|
|
|
|
max-value = <0xFFFFFFFF>;
|
|
|
|
clock-frequency = <1000000>;
|
|
|
|
prescaler = <0>;
|
|
|
|
status = "okay";
|
|
|
|
};
|
|
|
|
|
|
|
|
rtmr: rtmr@4000c500 {
|
|
|
|
compatible = "realtek,rts5912-rtmr";
|
|
|
|
reg = <0x4000c500 0x10>;
|
|
|
|
interrupts = <204 0>;
|
|
|
|
status = "okay";
|
|
|
|
};
|
|
|
|
|
2024-11-23 08:20:58 +08:00
|
|
|
uart0: uart@40010100 {
|
|
|
|
compatible = "ns16550";
|
|
|
|
reg = <0x40010100 0x100>;
|
|
|
|
reg-shift = <2>;
|
|
|
|
clock-frequency = <25000000>;
|
|
|
|
interrupts = <191 0>;
|
|
|
|
status = "disabled";
|
|
|
|
};
|
|
|
|
|
|
|
|
uart0_wrapper: uart_wrapper@40010200 {
|
|
|
|
compatible = "realtek,rts5912-uart";
|
|
|
|
reg = <0x40010200 0x0020>;
|
|
|
|
port = <0>;
|
|
|
|
clocks = <&sccon RTS5912_SCCON_UART UART0_CLKPWR>;
|
|
|
|
clock-names = "uart0";
|
|
|
|
status = "disabled";
|
|
|
|
};
|
|
|
|
|
2024-11-22 17:07:43 +08:00
|
|
|
pinctrl: pin-controller@40090000 {
|
|
|
|
compatible = "realtek,rts5912-pinctrl";
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <1>;
|
|
|
|
reg = <0x40090000 0x300>;
|
2024-11-22 19:46:53 +08:00
|
|
|
|
|
|
|
/* GPIO0-GPIO15 */
|
|
|
|
gpioa: gpio@40090000 {
|
|
|
|
compatible = "realtek,rts5912-gpio";
|
|
|
|
gpio-controller;
|
|
|
|
#gpio-cells = <2>;
|
|
|
|
reg = <0x40090000 0x40>;
|
|
|
|
ngpios = <16>;
|
|
|
|
interrupts = <0 0 1 0 2 0 3 0
|
|
|
|
4 0 5 0 6 0 7 0
|
|
|
|
8 0 9 0 10 0 11 0
|
|
|
|
12 0 13 0 14 0 15 0>;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* GPIO16-GPIO31 */
|
|
|
|
gpiob: gpio@40090040 {
|
|
|
|
compatible = "realtek,rts5912-gpio";
|
|
|
|
gpio-controller;
|
|
|
|
#gpio-cells = <2>;
|
|
|
|
reg = <0x40090040 0x40>;
|
|
|
|
ngpios = <16>;
|
|
|
|
interrupts = <16 0 17 0 18 0 19 0
|
|
|
|
20 0 21 0 22 0 23 0
|
|
|
|
24 0 25 0 26 0 27 0
|
|
|
|
28 0 29 0 30 0 31 0>;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* GPIO32-GPIO47 */
|
|
|
|
gpioc: gpio@40090080 {
|
|
|
|
compatible = "realtek,rts5912-gpio";
|
|
|
|
gpio-controller;
|
|
|
|
#gpio-cells = <2>;
|
|
|
|
reg = <0x40090080 0x40>;
|
|
|
|
ngpios = <16>;
|
|
|
|
interrupts = <32 0 33 0 34 0 35 0
|
|
|
|
36 0 37 0 38 0 39 0
|
|
|
|
40 0 41 0 42 0 43 0
|
|
|
|
44 0 45 0 46 0 47 0>;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* GPIO48-GPIO63 */
|
|
|
|
gpiod: gpio@400900c0 {
|
|
|
|
compatible = "realtek,rts5912-gpio";
|
|
|
|
gpio-controller;
|
|
|
|
#gpio-cells = <2>;
|
|
|
|
reg = <0x400900c0 0x40>;
|
|
|
|
ngpios = <16>;
|
|
|
|
interrupts = <48 0 49 0 50 0 51 0
|
|
|
|
52 0 53 0 54 0 55 0
|
|
|
|
56 0 57 0 58 0 59 0
|
|
|
|
60 0 61 0 62 0 63 0>;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* GPIO64-GPIO79 */
|
|
|
|
gpioe: gpio@40090100 {
|
|
|
|
compatible = "realtek,rts5912-gpio";
|
|
|
|
gpio-controller;
|
|
|
|
#gpio-cells = <2>;
|
|
|
|
reg = <0x40090100 0x40>;
|
|
|
|
ngpios = <16>;
|
|
|
|
interrupts = <64 0 65 0 66 0 67 0
|
|
|
|
68 0 69 0 70 0 71 0
|
|
|
|
72 0 73 0 74 0 75 0
|
|
|
|
76 0 77 0 78 0 79 0>;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* GPIO80-GPIO95 */
|
|
|
|
gpiof: gpio@40090140 {
|
|
|
|
compatible = "realtek,rts5912-gpio";
|
|
|
|
gpio-controller;
|
|
|
|
#gpio-cells = <2>;
|
|
|
|
reg = <0x40090140 0x40>;
|
|
|
|
ngpios = <16>;
|
|
|
|
interrupts = <80 0 81 0 82 0 83 0
|
|
|
|
84 0 85 0 86 0 87 0
|
|
|
|
88 0 89 0 90 0 91 0
|
|
|
|
92 0 93 0 94 0 95 0>;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* GPIO96-GPIO111 */
|
|
|
|
gpiog: gpio@40090180 {
|
|
|
|
compatible = "realtek,rts5912-gpio";
|
|
|
|
gpio-controller;
|
|
|
|
#gpio-cells = <2>;
|
|
|
|
reg = <0x40090180 0x40>;
|
|
|
|
ngpios = <16>;
|
|
|
|
interrupts = <96 0 97 0 98 0 99 0
|
|
|
|
100 0 101 0 102 0 103 0
|
|
|
|
104 0 105 0 106 0 107 0
|
|
|
|
108 0 109 0 110 0 111 0>;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* GPIO112-GPIO127 */
|
|
|
|
gpioh: gpio@400901c0 {
|
|
|
|
compatible = "realtek,rts5912-gpio";
|
|
|
|
gpio-controller;
|
|
|
|
#gpio-cells = <2>;
|
|
|
|
reg = <0x400901c0 0x40>;
|
|
|
|
ngpios = <16>;
|
|
|
|
interrupts = <112 0 113 0 114 0 115 0
|
|
|
|
116 0 117 0 118 0 119 0
|
|
|
|
120 0 121 0 122 0 123 0
|
|
|
|
124 0 125 0 126 0 127 0>;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* GPIO128-GPIO131 */
|
|
|
|
gpioi: gpio@40090200 {
|
|
|
|
compatible = "realtek,rts5912-gpio";
|
|
|
|
gpio-controller;
|
|
|
|
#gpio-cells = <2>;
|
|
|
|
reg = <0x40090200 0x10>;
|
|
|
|
ngpios = <4>;
|
|
|
|
interrupts = <128 0 129 0 130 0 131 0
|
|
|
|
132 0 133 0 134 0 135 0
|
|
|
|
136 0 137 0 138 0 139 0
|
|
|
|
140 0 141 0 142 0 143 0>;
|
|
|
|
};
|
2024-11-22 17:07:43 +08:00
|
|
|
};
|
2024-11-22 16:57:25 +08:00
|
|
|
};
|
2024-11-22 18:23:37 +08:00
|
|
|
|
|
|
|
swj_port: swj-port {
|
|
|
|
compatible = "swj-connector";
|
|
|
|
pinctrl-0 = <&jtag_tdi_gpio87 &jtag_tdo_gpio88 &jtag_rst_gpio89
|
|
|
|
&jtag_clk_gpio90 &jtag_tms_gpio91>;
|
|
|
|
pinctrl-names = "default";
|
|
|
|
};
|
2024-11-22 16:57:25 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
&nvic {
|
|
|
|
arm,num-irq-priority-bits = <3>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&systick {
|
|
|
|
status = "disabled";
|
|
|
|
};
|