openwrt/target/linux/realtek/dts/rtl930x.dtsi
Markus Stockhausen b49f9d9804 realtek: backport ECC driver
Upstream will get support for the Realtek ECC engine with 6.18.
To make use of this in Openwrt

- backport upstream patches
- change config so that ECC will be built for nand subtargets
- define ECC engine in RTL93xx DTS.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19746
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-30 11:15:26 +02:00

371 lines
7 KiB
Text

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "macros.dtsi"
/dts-v1/;
/ {
#address-cells = <1>;
#size-cells = <1>;
compatible = "realtek,rtl838x-soc";
cpus {
#address-cells = <1>;
#size-cells = <0>;
frequency = <800000000>;
cpu@0 {
compatible = "mips,mips34Kc";
reg = <0>;
};
};
memory@0 {
device_type = "memory";
reg = <0x0 0x8000000>;
};
aliases {
serial0 = &uart0;
serial1 = &uart1;
};
chosen {
bootargs = "earlycon";
stdout-path = "serial0:115200n8";
};
cpuintc: cpuintc {
compatible = "mti,cpu-interrupt-controller";
#address-cells = <0>;
#interrupt-cells = <1>;
interrupt-controller;
};
lx_clk: lx_clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <175000000>;
};
soc: soc {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x18000000 0x20000>;
ecc0: ecc@1a600 {
compatible = "realtek,rtl9301-ecc";
reg = <0x1a600 0x54>;
status = "disabled";
};
intc: interrupt-controller@3000 {
compatible = "realtek,rtl9300-intc", "realtek,rtl-intc";
reg = <0x3000 0x18>, <0x3018 0x18>;
interrupt-controller;
#interrupt-cells = <2>;
interrupt-parent = <&cpuintc>;
interrupts = <2>, <3>, <4>, <5>, <6>, <7>;
};
snand: spi@1a400 {
compatible = "realtek,rtl9301-snand";
reg = <0x1a400 0x44>;
interrupt-parent = <&intc>;
interrupts = <19 2>;
clocks = <&lx_clk>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
spi0: spi@1200 {
compatible = "realtek,rtl8380-spi";
reg = <0x1200 0x100>;
#address-cells = <1>;
#size-cells = <0>;
};
timer0: timer@3200 {
compatible = "realtek,rtl930x-timer", "realtek,otto-timer";
reg = <0x3200 0x10>, <0x3210 0x10>, <0x3220 0x10>,
<0x3230 0x10>, <0x3240 0x10>;
interrupt-parent = <&intc>;
interrupts = <7 4>, <8 4>, <9 4>, <10 4>, <11 4>;
clocks = <&lx_clk>;
};
uart0: uart@2000 {
compatible = "ns16550a";
reg = <0x2000 0x100>;
clocks = <&lx_clk>;
interrupt-parent = <&intc>;
interrupts = <30 1>;
reg-io-width = <1>;
reg-shift = <2>;
fifo-size = <1>;
no-loopback-test;
};
uart1: uart@2100 {
compatible = "ns16550a";
reg = <0x2100 0x100>;
clocks = <&lx_clk>;
interrupt-parent = <&intc>;
interrupts = <31 0>;
reg-io-width = <1>;
reg-shift = <2>;
fifo-size = <1>;
no-loopback-test;
status = "disabled";
};
watchdog0: watchdog@3260 {
compatible = "realtek,rtl9300-wdt";
reg = <0x3260 0xc>;
realtek,reset-mode = "soc";
clocks = <&lx_clk>;
timeout-sec = <30>;
interrupt-parent = <&intc>;
interrupt-names = "phase1", "phase2";
interrupts = <5 4>, <6 4>;
};
gpio0: gpio-controller@3300 {
compatible = "realtek,rtl9300-gpio", "realtek,otto-gpio";
reg = <0x3300 0x1c>, <0x3338 0x8>;
gpio-controller;
#gpio-cells = <2>;
ngpios = <24>;
interrupt-controller;
#interrupt-cells = <2>;
interrupt-parent = <&intc>;
interrupts = <13 1>;
};
};
switchcore@1b000000 {
compatible = "syscon", "simple-mfd";
reg = <0x1b000000 0x10000>;
#address-cells = <1>;
#size-cells = <1>;
i2c_mst1: i2c@36c {
compatible = "realtek,rtl9301-i2c";
reg = <0x36c 0x18>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
i2c_mst2: i2c@388 {
compatible = "realtek,rtl9301-i2c";
reg = <0x388 0x18>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
mdio_ctrl: mdio-controller {
compatible = "realtek,rtl9301-mdio", "realtek,otto-mdio";
#address-cells = <1>;
#size-cells = <0>;
mdio_bus0: mdio-bus@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
};
};
mdio_aux: mdio-aux {
compatible = "realtek,rtl9300-aux-mdio";
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&pinmux_gpio_mdio_en>;
pinctrl-names = "default";
status = "disabled";
};
mdio_serdes: mdio-serdes {
compatible = "realtek,rtl9301-serdes-mdio", "realtek,otto-serdes-mdio";
};
pcs {
compatible = "realtek,rtl9301-pcs", "realtek,otto-pcs";
#address-cells = <1>;
#size-cells = <0>;
serdes0: serdes@0 {
reg = <0>;
};
serdes1: serdes@1 {
reg = <1>;
};
serdes2: serdes@2 {
reg = <2>;
};
serdes3: serdes@3 {
reg = <3>;
};
serdes4: serdes@4 {
reg = <4>;
};
serdes5: serdes@5 {
reg = <5>;
};
serdes6: serdes@6 {
reg = <6>;
};
serdes7: serdes@7 {
reg = <7>;
};
serdes8: serdes@8 {
reg = <8>;
};
serdes9: serdes@9 {
reg = <9>;
};
serdes10: serdes@10 {
reg = <10>;
};
serdes11: serdes@11 {
reg = <11>;
};
};
soc_thermal: thermal {
compatible = "realtek,rtl9300-thermal";
#thermal-sensor-cells = <0>;
};
};
pinmux@1b000200 {
compatible = "pinctrl-single";
reg = <0x1b000200 0x4>;
pinctrl-single,bit-per-mux;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0x1>;
#pinctrl-cells = <2>;
/* Enable GPIO 19 */
pinmux_disable_led_sync: disable-led-sync {
pinctrl-single,bits = <0x0 0x0 0x800>;
};
pinmux_enable_led_sync: enable-led-sync {
pinctrl-single,bits = <0x0 0x800 0x800>;
};
/* Enable GPIO 18 */
pinmux_disable_usb_led: disable-usb-led {
pinctrl-single,bits = <0x0 0x0 0x400>;
};
pinmux_enable_usb_led: enable-usb-led {
pinctrl-single,bits = <0x0 0x400 0x400>;
};
/* Disable SLV SPI CS - freeing any associated GPIOs */
pinmux_disable_slv_spi_cs: disable-slv-spi-cs {
pinctrl-single,bits = <0x0 0x0 0x3E0>;
};
/* Disable SLV SPI SDO - freeing any associated GPIOs */
pinmux_disable_slv_spi_sdo: disable-slv-spi-sdo {
pinctrl-single,bits = <0x0 0x0 0x1F>;
};
};
pinmux@1b00c600 {
compatible = "pinctrl-single";
reg = <0x1b00c600 0x4>;
pinctrl-single,bit-per-mux;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0x1>;
#pinctrl-cells = <2>;
pinmux_gpio_mdio_en: gpio-mdio-en {
pinctrl-single,bits = <0x0 0x100 0x100>;
};
};
pinmux_led: pinmux@1b00cc00 {
compatible = "pinctrl-single";
reg = <0x1b00cc00 0x4>;
pinctrl-single,bit-per-mux;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0x1>;
#pinctrl-cells = <2>;
/* enable GPIO 0 */
pinmux_disable_sys_led: disable_sys_led {
pinctrl-single,bits = <0x0 0x0 0x1000>;
};
};
ethernet0: ethernet@1b00a300 {
compatible = "realtek,rtl838x-eth";
reg = <0x1b00a300 0x100>;
interrupt-parent = <&intc>;
interrupts = <24 3>;
phy-mode = "internal";
fixed-link {
speed = <1000>;
full-duplex;
};
};
switch0: switch@1b000000 {
compatible = "realtek,rtl83xx-switch";
status = "okay";
interrupt-parent = <&intc>;
interrupts = <23 2>;
};
thermal_zones: thermal-zones {
cpu-thermal {
polling-delay-passive = <1000>;
polling-delay = <1000>;
coefficients = <1000 0>;
thermal-sensors = <&soc_thermal>;
trips {
critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};
};