Resguardo inicial

This commit is contained in:
lastdragon
2026-09-06 12:53:21 -06:00
parent 662efe3c2a
commit ad2088d178
94853 changed files with 43200404 additions and 0 deletions
@@ -0,0 +1,4 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_MA35) += ma35d1-iot-512m.dtb
dtb-$(CONFIG_ARCH_MA35) += ma35d1-som-256m.dtb
dtb-$(CONFIG_ARCH_NPCM) += nuvoton-npcm845-evb.dtb
@@ -0,0 +1,153 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2023 Nuvoton Technology Corp.
* Author: Shan-Chun Hung <schung@nuvoton.com>
* Jacky huang <ychuang3@nuvoton.com>
*/
/dts-v1/;
#include "ma35d1.dtsi"
/ {
model = "Nuvoton MA35D1-IoT";
compatible = "nuvoton,ma35d1-iot", "nuvoton,ma35d1";
aliases {
serial0 = &uart0;
serial10 = &uart10;
serial12 = &uart12;
serial13 = &uart13;
serial14 = &uart14;
ethernet0 = &gmac0;
ethernet1 = &gmac1;
};
chosen {
stdout-path = "serial0:115200n8";
};
mem: memory@80000000 {
device_type = "memory";
reg = <0x00000000 0x80000000 0 0x20000000>; /* 512M DRAM */
};
clk_hxt: clock-hxt {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24000000>;
clock-output-names = "clk_hxt";
};
};
&clk {
assigned-clocks = <&clk CAPLL>,
<&clk DDRPLL>,
<&clk APLL>,
<&clk EPLL>,
<&clk VPLL>;
assigned-clock-rates = <800000000>,
<266000000>,
<180000000>,
<500000000>,
<102000000>;
nuvoton,pll-mode = "integer",
"fractional",
"integer",
"integer",
"integer";
};
&pinctrl {
uart-grp {
pinctrl_uart0: uart0-pins {
nuvoton,pins = <4 14 1>,
<4 15 1>;
bias-disable;
power-source = <1>;
};
pinctrl_uart10: uart10-pins {
nuvoton,pins = <7 4 2>,
<7 5 2>,
<7 6 2>,
<7 7 2>;
bias-disable;
power-source = <1>;
};
pinctrl_uart12: uart12-pins {
nuvoton,pins = <2 13 2>,
<2 14 2>,
<2 15 2>;
bias-disable;
power-source = <1>;
};
pinctrl_uart13: uart13-pins {
nuvoton,pins = <7 12 3>,
<7 13 3>;
bias-disable;
power-source = <1>;
};
pinctrl_uart14: uart14-pins {
nuvoton,pins = <7 14 2>,
<7 15 2>;
bias-disable;
power-source = <1>;
};
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart0>;
status = "okay";
};
&uart10 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart10>;
status = "okay";
};
&uart12 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart12>;
status = "okay";
};
&uart13 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart13>;
status = "okay";
};
&uart14 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart14>;
status = "okay";
};
&gmac0 {
status = "okay";
phy-handle = <&eth_phy0>;
};
&mdio0 {
eth_phy0: ethernet-phy@0 {
reg = <0>;
};
};
&gmac1 {
status = "okay";
phy-mode = "rmii";
phy-handle = <&eth_phy1>;
};
&mdio1 {
eth_phy1: ethernet-phy@1 {
reg = <1>;
};
};
@@ -0,0 +1,155 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2023 Nuvoton Technology Corp.
* Author: Shan-Chun Hung <schung@nuvoton.com>
* Jacky huang <ychuang3@nuvoton.com>
*/
/dts-v1/;
#include "ma35d1.dtsi"
/ {
model = "Nuvoton MA35D1-SOM";
compatible = "nuvoton,ma35d1-som", "nuvoton,ma35d1";
aliases {
serial0 = &uart0;
serial11 = &uart11;
serial12 = &uart12;
serial14 = &uart14;
serial16 = &uart16;
ethernet0 = &gmac0;
ethernet1 = &gmac1;
};
chosen {
stdout-path = "serial0:115200n8";
};
mem: memory@80000000 {
device_type = "memory";
reg = <0x00000000 0x80000000 0 0x10000000>; /* 256M DRAM */
};
clk_hxt: clock-hxt {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24000000>;
clock-output-names = "clk_hxt";
};
};
&clk {
assigned-clocks = <&clk CAPLL>,
<&clk DDRPLL>,
<&clk APLL>,
<&clk EPLL>,
<&clk VPLL>;
assigned-clock-rates = <800000000>,
<266000000>,
<180000000>,
<500000000>,
<102000000>;
nuvoton,pll-mode = "integer",
"fractional",
"integer",
"integer",
"integer";
};
&pinctrl {
uart-grp {
pinctrl_uart0: uart0-pins {
nuvoton,pins = <4 14 1>,
<4 15 1>;
bias-disable;
power-source = <1>;
};
pinctrl_uart11: uart11-pins {
nuvoton,pins = <11 0 2>,
<11 1 2>,
<11 2 2>,
<11 3 2>;
bias-disable;
power-source = <1>;
};
pinctrl_uart12: uart12-pins {
nuvoton,pins = <8 1 2>,
<8 2 2>,
<8 3 2>;
bias-disable;
power-source = <1>;
};
pinctrl_uart14: uart14-pins {
nuvoton,pins = <8 5 2>,
<8 6 2>,
<8 7 2>;
bias-disable;
power-source = <1>;
};
pinctrl_uart16: uart16-pins {
nuvoton,pins = <10 0 2>,
<10 1 2>,
<10 2 2>,
<10 3 2>;
bias-disable;
power-source = <1>;
};
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart0>;
status = "okay";
};
&uart11 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart11>;
status = "okay";
};
&uart12 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart12>;
status = "okay";
};
&uart14 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart14>;
status = "okay";
};
&uart16 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart16>;
status = "okay";
};
&gmac0 {
status = "okay";
phy-handle = <&eth_phy0>;
};
&mdio0 {
eth_phy0: ethernet-phy@0 {
reg = <0>;
};
};
&gmac1 {
status = "okay";
phy-handle = <&eth_phy1>;
};
&mdio1 {
eth_phy1: ethernet-phy@1 {
reg = <1>;
};
};
@@ -0,0 +1,435 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2023 Nuvoton Technology Corp.
* Author: Shan-Chun Hung <schung@nuvoton.com>
* Jacky huang <ychuang3@nuvoton.com>
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/clock/nuvoton,ma35d1-clk.h>
#include <dt-bindings/reset/nuvoton,ma35d1-reset.h>
/ {
compatible = "nuvoton,ma35d1";
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <2>;
cpus {
#address-cells = <2>;
#size-cells = <0>;
cpu0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a35";
reg = <0x0 0x0>;
enable-method = "psci";
next-level-cache = <&L2_0>;
};
cpu1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a35";
reg = <0x0 0x1>;
enable-method = "psci";
next-level-cache = <&L2_0>;
};
L2_0: l2-cache {
compatible = "cache";
cache-level = <2>;
cache-unified;
cache-size = <0x80000>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
gic: interrupt-controller@50801000 {
compatible = "arm,gic-400";
reg = <0x0 0x50801000 0 0x1000>, /* GICD */
<0x0 0x50802000 0 0x2000>, /* GICC */
<0x0 0x50804000 0 0x2000>, /* GICH */
<0x0 0x50806000 0 0x2000>; /* GICV */
#interrupt-cells = <3>;
interrupt-parent = <&gic>;
interrupt-controller;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0x13) |
IRQ_TYPE_LEVEL_HIGH)>;
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) |
IRQ_TYPE_LEVEL_LOW)>, /* Physical Secure */
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) |
IRQ_TYPE_LEVEL_LOW)>, /* Physical Non-Secure */
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) |
IRQ_TYPE_LEVEL_LOW)>, /* Virtual */
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) |
IRQ_TYPE_LEVEL_LOW)>; /* Hypervisor */
interrupt-parent = <&gic>;
};
soc {
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
ranges;
sys: system-management@40460000 {
compatible = "nuvoton,ma35d1-reset", "syscon";
reg = <0x0 0x40460000 0x0 0x200>;
#reset-cells = <1>;
};
clk: clock-controller@40460200 {
compatible = "nuvoton,ma35d1-clk";
reg = <0x00000000 0x40460200 0x0 0x100>;
#clock-cells = <1>;
clocks = <&clk_hxt>;
};
pinctrl: pinctrl@40040000 {
compatible = "nuvoton,ma35d1-pinctrl";
reg = <0x0 0x40040000 0x0 0xc00>;
#address-cells = <1>;
#size-cells = <1>;
nuvoton,sys = <&sys>;
ranges = <0x0 0x0 0x40040000 0x400>;
gpioa: gpio@0 {
reg = <0x0 0x40>;
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPA_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpiob: gpio@40 {
reg = <0x40 0x40>;
interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPB_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpioc: gpio@80 {
reg = <0x80 0x40>;
interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPC_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpiod: gpio@c0 {
reg = <0xc0 0x40>;
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPD_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpioe: gpio@100 {
reg = <0x100 0x40>;
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPE_GATE>;
#gpio-cells = <2>;
gpio-controller;
interrupt-controller;
#interrupt-cells = <2>;
};
gpiof: gpio@140 {
reg = <0x140 0x40>;
interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPF_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpiog: gpio@180 {
reg = <0x180 0x40>;
interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPG_GATE>;
#gpio-cells = <2>;
gpio-controller;
interrupt-controller;
#interrupt-cells = <2>;
};
gpioh: gpio@1c0 {
reg = <0x1c0 0x40>;
interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPH_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpioi: gpio@200 {
reg = <0x200 0x40>;
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPI_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpioj: gpio@240 {
reg = <0x240 0x40>;
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPJ_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpiok: gpio@280 {
reg = <0x280 0x40>;
interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPK_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpiol: gpio@2c0 {
reg = <0x2c0 0x40>;
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPL_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpiom: gpio@300 {
reg = <0x300 0x40>;
interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPM_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpion: gpio@340 {
reg = <0x340 0x40>;
interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk GPN_GATE>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
};
uart0: serial@40700000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40700000 0x0 0x100>;
interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART0_GATE>;
status = "disabled";
};
uart1: serial@40710000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40710000 0x0 0x100>;
interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART1_GATE>;
status = "disabled";
};
uart2: serial@40720000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40720000 0x0 0x100>;
interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART2_GATE>;
status = "disabled";
};
uart3: serial@40730000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40730000 0x0 0x100>;
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART3_GATE>;
status = "disabled";
};
uart4: serial@40740000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40740000 0x0 0x100>;
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART4_GATE>;
status = "disabled";
};
uart5: serial@40750000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40750000 0x0 0x100>;
interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART5_GATE>;
status = "disabled";
};
uart6: serial@40760000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40760000 0x0 0x100>;
interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART6_GATE>;
status = "disabled";
};
uart7: serial@40770000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40770000 0x0 0x100>;
interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART7_GATE>;
status = "disabled";
};
uart8: serial@40780000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40780000 0x0 0x100>;
interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART8_GATE>;
status = "disabled";
};
uart9: serial@40790000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40790000 0x0 0x100>;
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART9_GATE>;
status = "disabled";
};
uart10: serial@407a0000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x407a0000 0x0 0x100>;
interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART10_GATE>;
status = "disabled";
};
uart11: serial@407b0000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x407b0000 0x0 0x100>;
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART11_GATE>;
status = "disabled";
};
uart12: serial@407c0000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x407c0000 0x0 0x100>;
interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART12_GATE>;
status = "disabled";
};
uart13: serial@407d0000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x407d0000 0x0 0x100>;
interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART13_GATE>;
status = "disabled";
};
uart14: serial@407e0000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x407e0000 0x0 0x100>;
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART14_GATE>;
status = "disabled";
};
uart15: serial@407f0000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x407f0000 0x0 0x100>;
interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART15_GATE>;
status = "disabled";
};
uart16: serial@40880000 {
compatible = "nuvoton,ma35d1-uart";
reg = <0x0 0x40880000 0x0 0x100>;
interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk UART16_GATE>;
status = "disabled";
};
gmac0: ethernet@40120000 {
compatible = "nuvoton,ma35d1-dwmac", "snps,dwmac-3.70a";
reg = <0x0 0x40120000 0x0 0x10000>;
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "macirq";
clocks = <&clk EMAC0_GATE>, <&clk EPLL_DIV8>;
clock-names = "stmmaceth", "ptp_ref";
nuvoton,sys = <&sys 0>;
resets = <&sys MA35D1_RESET_GMAC0>;
reset-names = "stmmaceth";
snps,multicast-filter-bins = <0>;
snps,perfect-filter-entries = <8>;
rx-fifo-depth = <4096>;
tx-fifo-depth = <2048>;
phy-mode = "rgmii-id";
status = "disabled";
mdio0: mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
#size-cells = <0>;
};
};
gmac1: ethernet@40130000 {
compatible = "nuvoton,ma35d1-dwmac", "snps,dwmac-3.70a";
reg = <0x0 0x40130000 0x0 0x10000>;
interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "macirq";
clocks = <&clk EMAC1_GATE>, <&clk EPLL_DIV8>;
clock-names = "stmmaceth", "ptp_ref";
nuvoton,sys = <&sys 1>;
resets = <&sys MA35D1_RESET_GMAC1>;
reset-names = "stmmaceth";
snps,multicast-filter-bins = <0>;
snps,perfect-filter-entries = <8>;
rx-fifo-depth = <4096>;
tx-fifo-depth = <2048>;
phy-mode = "rgmii-id";
status = "disabled";
mdio1: mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
#size-cells = <0>;
};
};
};
};
@@ -0,0 +1,881 @@
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2021 Nuvoton Technology tomer.maimon@nuvoton.com
#include <dt-bindings/clock/nuvoton,npcm845-clk.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
#address-cells = <2>;
#size-cells = <2>;
interrupt-parent = <&gic>;
soc {
#address-cells = <2>;
#size-cells = <2>;
compatible = "simple-bus";
interrupt-parent = <&gic>;
ranges;
gcr: system-controller@f0800000 {
compatible = "nuvoton,npcm845-gcr", "syscon";
reg = <0x0 0xf0800000 0x0 0x1000>;
};
gic: interrupt-controller@dfff9000 {
compatible = "arm,gic-400";
reg = <0x0 0xdfff9000 0x0 0x1000>,
<0x0 0xdfffa000 0x0 0x2000>,
<0x0 0xdfffc000 0x0 0x2000>,
<0x0 0xdfffe000 0x0 0x2000>;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
#interrupt-cells = <3>;
interrupt-controller;
#address-cells = <0>;
};
};
ahb {
#address-cells = <2>;
#size-cells = <2>;
compatible = "simple-bus";
interrupt-parent = <&gic>;
ranges;
clk: rstc: reset-controller@f0801000 {
compatible = "nuvoton,npcm845-reset";
reg = <0x0 0xf0801000 0x0 0xC4>;
nuvoton,sysgcr = <&gcr>;
#reset-cells = <2>;
clocks = <&refclk>;
#clock-cells = <1>;
};
apb {
#address-cells = <1>;
#size-cells = <1>;
compatible = "simple-bus";
interrupt-parent = <&gic>;
ranges = <0x0 0x0 0xf0000000 0x00300000>,
<0xfff00000 0x0 0xfff00000 0x00016000>;
peci: peci-controller@100000 {
compatible = "nuvoton,npcm845-peci";
reg = <0x100000 0x1000>;
interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk NPCM8XX_CLK_APB3>;
cmd-timeout-ms = <1000>;
status = "disabled";
};
timer0: timer@8000 {
compatible = "nuvoton,npcm845-timer";
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x8000 0x1C>;
clocks = <&refclk>;
clock-names = "refclk";
};
serial0: serial@0 {
compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
reg = <0x0 0x1000>;
clocks = <&clk NPCM8XX_CLK_UART>;
interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
status = "disabled";
};
serial1: serial@1000 {
compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
reg = <0x1000 0x1000>;
clocks = <&clk NPCM8XX_CLK_UART>;
interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
status = "disabled";
};
serial2: serial@2000 {
compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
reg = <0x2000 0x1000>;
clocks = <&clk NPCM8XX_CLK_UART>;
interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
status = "disabled";
};
serial3: serial@3000 {
compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
reg = <0x3000 0x1000>;
clocks = <&clk NPCM8XX_CLK_UART>;
interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
status = "disabled";
};
serial4: serial@4000 {
compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
reg = <0x4000 0x1000>;
clocks = <&clk NPCM8XX_CLK_UART>;
interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
status = "disabled";
};
serial5: serial@5000 {
compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
reg = <0x5000 0x1000>;
clocks = <&clk NPCM8XX_CLK_UART>;
interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
status = "disabled";
};
serial6: serial@6000 {
compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
reg = <0x6000 0x1000>;
clocks = <&clk NPCM8XX_CLK_UART>;
interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
status = "disabled";
};
watchdog0: watchdog@801c {
compatible = "nuvoton,npcm845-wdt", "nuvoton,npcm750-wdt";
interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x801c 0x4>;
status = "disabled";
clocks = <&refclk>;
};
watchdog1: watchdog@901c {
compatible = "nuvoton,npcm845-wdt", "nuvoton,npcm750-wdt";
interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x901c 0x4>;
status = "disabled";
clocks = <&refclk>;
};
watchdog2: watchdog@a01c {
compatible = "nuvoton,npcm845-wdt", "nuvoton,npcm750-wdt";
interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
reg = <0xa01c 0x4>;
status = "disabled";
clocks = <&refclk>;
};
};
};
pinctrl: pinctrl@f0010000 {
compatible = "nuvoton,npcm845-pinctrl";
ranges = <0x0 0x0 0xf0010000 0x8000>;
#address-cells = <1>;
#size-cells = <1>;
nuvoton,sysgcr = <&gcr>;
status = "okay";
gpio0: gpio@f0010000 {
gpio-controller;
#gpio-cells = <2>;
reg = <0x0 0xB0>;
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
gpio-ranges = <&pinctrl 0 0 32>;
};
gpio1: gpio@f0011000 {
gpio-controller;
#gpio-cells = <2>;
reg = <0x1000 0xB0>;
interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
gpio-ranges = <&pinctrl 0 32 32>;
};
gpio2: gpio@f0012000 {
gpio-controller;
#gpio-cells = <2>;
reg = <0x2000 0xB0>;
interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
gpio-ranges = <&pinctrl 0 64 32>;
};
gpio3: gpio@f0013000 {
gpio-controller;
#gpio-cells = <2>;
reg = <0x3000 0xB0>;
interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
gpio-ranges = <&pinctrl 0 96 32>;
};
gpio4: gpio@f0014000 {
gpio-controller;
#gpio-cells = <2>;
reg = <0x4000 0xB0>;
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
gpio-ranges = <&pinctrl 0 128 32>;
};
gpio5: gpio@f0015000 {
gpio-controller;
#gpio-cells = <2>;
reg = <0x5000 0xB0>;
interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
gpio-ranges = <&pinctrl 0 160 32>;
};
gpio6: gpio@f0016000 {
gpio-controller;
#gpio-cells = <2>;
reg = <0x6000 0xB0>;
interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
gpio-ranges = <&pinctrl 0 192 32>;
};
gpio7: gpio@f0017000 {
gpio-controller;
#gpio-cells = <2>;
reg = <0x7000 0xB0>;
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
gpio-ranges = <&pinctrl 0 224 32>;
};
iox1_pins: iox1-mux {
groups = "iox1";
function = "iox1";
};
iox2_pins: iox2-mux {
groups = "iox2";
function = "iox2";
};
smb1d_pins: smb1d-mux {
groups = "smb1d";
function = "smb1d";
};
smb2d_pins: smb2d-mux {
groups = "smb2d";
function = "smb2d";
};
lkgpo1_pins: lkgpo1-mux {
groups = "lkgpo1";
function = "lkgpo1";
};
lkgpo2_pins: lkgpo2-mux {
groups = "lkgpo2";
function = "lkgpo2";
};
ioxh_pins: ioxh-mux {
groups = "ioxh";
function = "ioxh";
};
gspi_pins: gspi-mux {
groups = "gspi";
function = "gspi";
};
smb5b_pins: smb5b-mux {
groups = "smb5b";
function = "smb5b";
};
smb5c_pins: smb5c-mux {
groups = "smb5c";
function = "smb5c";
};
lkgpo0_pins: lkgpo0-mux {
groups = "lkgpo0";
function = "lkgpo0";
};
pspi_pins: pspi-mux {
groups = "pspi";
function = "pspi";
};
jm1_pins: jm1-mux {
groups = "jm1";
function = "jm1";
};
jm2_pins: jm2-mux {
groups = "jm2";
function = "jm2";
};
smb4b_pins: smb4b-mux {
groups = "smb4b";
function = "smb4b";
};
smb4c_pins: smb4c-mux {
groups = "smb4c";
function = "smb4c";
};
smb15_pins: smb15-mux {
groups = "smb15";
function = "smb15";
};
smb16_pins: smb16-mux {
groups = "smb16";
function = "smb16";
};
smb17_pins: smb17-mux {
groups = "smb17";
function = "smb17";
};
smb18_pins: smb18-mux {
groups = "smb18";
function = "smb18";
};
smb19_pins: smb19-mux {
groups = "smb19";
function = "smb19";
};
smb20_pins: smb20-mux {
groups = "smb20";
function = "smb20";
};
smb21_pins: smb21-mux {
groups = "smb21";
function = "smb21";
};
smb22_pins: smb22-mux {
groups = "smb22";
function = "smb22";
};
smb23_pins: smb23-mux {
groups = "smb23";
function = "smb23";
};
smb23b_pins: smb23b-mux {
groups = "smb23b";
function = "smb23b";
};
smb4d_pins: smb4d-mux {
groups = "smb4d";
function = "smb4d";
};
smb14_pins: smb14-mux {
groups = "smb14";
function = "smb14";
};
smb5_pins: smb5-mux {
groups = "smb5";
function = "smb5";
};
smb4_pins: smb4-mux {
groups = "smb4";
function = "smb4";
};
smb3_pins: smb3-mux {
groups = "smb3";
function = "smb3";
};
spi0cs1_pins: spi0cs1-mux {
groups = "spi0cs1";
function = "spi0cs1";
};
spi1cs0_pins: spi1cs0-mux {
groups = "spi1cs0";
function = "spi1cs0";
};
spi1cs1_pins: spi1cs1-mux {
groups = "spi1cs1";
function = "spi1cs1";
};
spi1cs2_pins: spi1cs2-mux {
groups = "spi1cs2";
function = "spi1cs2";
};
spi1cs3_pins: spi1cs3-mux {
groups = "spi1cs3";
function = "spi1cs3";
};
smb3c_pins: smb3c-mux {
groups = "smb3c";
function = "smb3c";
};
smb3b_pins: smb3b-mux {
groups = "smb3b";
function = "smb3b";
};
bmcuart0a_pins: bmcuart0a-mux {
groups = "bmcuart0a";
function = "bmcuart0a";
};
uart1_pins: uart1-mux {
groups = "uart1";
function = "uart1";
};
jtag2_pins: jtag2-mux {
groups = "jtag2";
function = "jtag2";
};
bmcuart1_pins: bmcuart1-mux {
groups = "bmcuart1";
function = "bmcuart1";
};
uart2_pins: uart2-mux {
groups = "uart2";
function = "uart2";
};
bmcuart0b_pins: bmcuart0b-mux {
groups = "bmcuart0b";
function = "bmcuart0b";
};
r1err_pins: r1err-mux {
groups = "r1err";
function = "r1err";
};
r1md_pins: r1md-mux {
groups = "r1md";
function = "r1md";
};
r1oen_pins: r1oen-mux {
groups = "r1oen";
function = "r1oen";
};
r2oen_pins: r2oen-mux {
groups = "r2oen";
function = "r2oen";
};
rmii3_pins: rmii3-mux {
groups = "rmii3";
function = "rmii3";
};
r3oen_pins: r3oen-mux {
groups = "r3oen";
function = "r3oen";
};
smb3d_pins: smb3d-mux {
groups = "smb3d";
function = "smb3d";
};
fanin0_pins: fanin0-mux {
groups = "fanin0";
function = "fanin0";
};
fanin1_pins: fanin1-mux {
groups = "fanin1";
function = "fanin1";
};
fanin2_pins: fanin2-mux {
groups = "fanin2";
function = "fanin2";
};
fanin3_pins: fanin3-mux {
groups = "fanin3";
function = "fanin3";
};
fanin4_pins: fanin4-mux {
groups = "fanin4";
function = "fanin4";
};
fanin5_pins: fanin5-mux {
groups = "fanin5";
function = "fanin5";
};
fanin6_pins: fanin6-mux {
groups = "fanin6";
function = "fanin6";
};
fanin7_pins: fanin7-mux {
groups = "fanin7";
function = "fanin7";
};
fanin8_pins: fanin8-mux {
groups = "fanin8";
function = "fanin8";
};
fanin9_pins: fanin9-mux {
groups = "fanin9";
function = "fanin9";
};
fanin10_pins: fanin10-mux {
groups = "fanin10";
function = "fanin10";
};
fanin11_pins: fanin11-mux {
groups = "fanin11";
function = "fanin11";
};
fanin12_pins: fanin12-mux {
groups = "fanin12";
function = "fanin12";
};
fanin13_pins: fanin13-mux {
groups = "fanin13";
function = "fanin13";
};
fanin14_pins: fanin14-mux {
groups = "fanin14";
function = "fanin14";
};
fanin15_pins: fanin15-mux {
groups = "fanin15";
function = "fanin15";
};
pwm0_pins: pwm0-mux {
groups = "pwm0";
function = "pwm0";
};
pwm1_pins: pwm1-mux {
groups = "pwm1";
function = "pwm1";
};
pwm2_pins: pwm2-mux {
groups = "pwm2";
function = "pwm2";
};
pwm3_pins: pwm3-mux {
groups = "pwm3";
function = "pwm3";
};
r2_pins: r2-mux {
groups = "r2";
function = "r2";
};
r2err_pins: r2err-mux {
groups = "r2err";
function = "r2err";
};
r2md_pins: r2md-mux {
groups = "r2md";
function = "r2md";
};
r3rxer_pins: r3rxer-mux {
groups = "r3rxer";
function = "r3rxer";
};
ga20kbc_pins: ga20kbc-mux {
groups = "ga20kbc";
function = "ga20kbc";
};
smb5d_pins: smb5d-mux {
groups = "smb5d";
function = "smb5d";
};
lpc_pins: lpc-mux {
groups = "lpc";
function = "lpc";
};
espi_pins: espi-mux {
groups = "espi";
function = "espi";
};
sg1mdio_pins: sg1mdio-mux {
groups = "sg1mdio";
function = "sg1mdio";
};
rg2_pins: rg2-mux {
groups = "rg2";
function = "rg2";
};
ddr_pins: ddr-mux {
groups = "ddr";
function = "ddr";
};
i3c0_pins: i3c0-mux {
groups = "i3c0";
function = "i3c0";
};
i3c1_pins: i3c1-mux {
groups = "i3c1";
function = "i3c1";
};
i3c2_pins: i3c2-mux {
groups = "i3c2";
function = "i3c2";
};
i3c3_pins: i3c3-mux {
groups = "i3c3";
function = "i3c3";
};
i3c4_pins: i3c4-mux {
groups = "i3c4";
function = "i3c4";
};
i3c5_pins: i3c5-mux {
groups = "i3c5";
function = "i3c5";
};
smb0_pins: smb0-mux {
groups = "smb0";
function = "smb0";
};
smb1_pins: smb1-mux {
groups = "smb1";
function = "smb1";
};
smb2_pins: smb2-mux {
groups = "smb2";
function = "smb2";
};
smb2c_pins: smb2c-mux {
groups = "smb2c";
function = "smb2c";
};
smb2b_pins: smb2b-mux {
groups = "smb2b";
function = "smb2b";
};
smb1c_pins: smb1c-mux {
groups = "smb1c";
function = "smb1c";
};
smb1b_pins: smb1b-mux {
groups = "smb1b";
function = "smb1b";
};
smb8_pins: smb8-mux {
groups = "smb8";
function = "smb8";
};
smb9_pins: smb9-mux {
groups = "smb9";
function = "smb9";
};
smb10_pins: smb10-mux {
groups = "smb10";
function = "smb10";
};
smb11_pins: smb11-mux {
groups = "smb11";
function = "smb11";
};
sd1_pins: sd1-mux {
groups = "sd1";
function = "sd1";
};
sd1pwr_pins: sd1pwr-mux {
groups = "sd1pwr";
function = "sd1pwr";
};
pwm4_pins: pwm4-mux {
groups = "pwm4";
function = "pwm4";
};
pwm5_pins: pwm5-mux {
groups = "pwm5";
function = "pwm5";
};
pwm6_pins: pwm6-mux {
groups = "pwm6";
function = "pwm6";
};
pwm7_pins: pwm7-mux {
groups = "pwm7";
function = "pwm7";
};
pwm8_pins: pwm8-mux {
groups = "pwm8";
function = "pwm8";
};
pwm9_pins: pwm9-mux {
groups = "pwm9";
function = "pwm9";
};
pwm10_pins: pwm10-mux {
groups = "pwm10";
function = "pwm10";
};
pwm11_pins: pwm11-mux {
groups = "pwm11";
function = "pwm11";
};
mmc8_pins: mmc8-mux {
groups = "mmc8";
function = "mmc8";
};
mmc_pins: mmc-mux {
groups = "mmc";
function = "mmc";
};
mmcwp_pins: mmcwp-mux {
groups = "mmcwp";
function = "mmcwp";
};
mmccd_pins: mmccd-mux {
groups = "mmccd";
function = "mmccd";
};
mmcrst_pins: mmcrst-mux {
groups = "mmcrst";
function = "mmcrst";
};
clkout_pins: clkout-mux {
groups = "clkout";
function = "clkout";
};
serirq_pins: serirq-mux {
groups = "serirq";
function = "serirq";
};
scipme_pins: scipme-mux {
groups = "scipme";
function = "scipme";
};
smb6_pins: smb6-mux {
groups = "smb6";
function = "smb6";
};
smb6b_pins: smb6b-mux {
groups = "smb6b";
function = "smb6b";
};
smb6c_pins: smb6c-mux {
groups = "smb6c";
function = "smb6c";
};
smb6d_pins: smb6d-mux {
groups = "smb6d";
function = "smb6d";
};
smb7_pins: smb7-mux {
groups = "smb7";
function = "smb7";
};
smb7b_pins: smb7b-mux {
groups = "smb7b";
function = "smb7b";
};
smb7c_pins: smb7c-mux {
groups = "smb7c";
function = "smb7c";
};
smb7d_pins: smb7d-mux {
groups = "smb7d";
function = "smb7d";
};
spi1_pins: spi1-mux {
groups = "spi1";
function = "spi1";
};
faninx_pins: faninx-mux {
groups = "faninx";
function = "faninx";
};
r1_pins: r1-mux {
groups = "r1";
function = "r1";
};
spi3_pins: spi3-mux {
groups = "spi3";
function = "spi3";
};
spi3cs1_pins: spi3cs1-mux {
groups = "spi3cs1";
function = "spi3cs1";
};
spi3quad_pins: spi3quad-mux {
groups = "spi3quad";
function = "spi3quad";
};
spi3cs2_pins: spi3cs2-mux {
groups = "spi3cs2";
function = "spi3cs2";
};
spi3cs3_pins: spi3cs3-mux {
groups = "spi3cs3";
function = "spi3cs3";
};
nprd_smi_pins: nprd-smi-mux {
groups = "nprd_smi";
function = "nprd_smi";
};
smi_pins: smi-mux {
groups = "smi";
function = "smi";
};
smb0b_pins: smb0b-mux {
groups = "smb0b";
function = "smb0b";
};
smb0c_pins: smb0c-mux {
groups = "smb0c";
function = "smb0c";
};
smb0den_pins: smb0den-mux {
groups = "smb0den";
function = "smb0den";
};
smb0d_pins: smb0d-mux {
groups = "smb0d";
function = "smb0d";
};
ddc_pins: ddc-mux {
groups = "ddc";
function = "ddc";
};
rg2mdio_pins: rg2mdio-mux {
groups = "rg2mdio";
function = "rg2mdio";
};
wdog1_pins: wdog1-mux {
groups = "wdog1";
function = "wdog1";
};
wdog2_pins: wdog2-mux {
groups = "wdog2";
function = "wdog2";
};
smb12_pins: smb12-mux {
groups = "smb12";
function = "smb12";
};
smb13_pins: smb13-mux {
groups = "smb13";
function = "smb13";
};
spix_pins: spix-mux {
groups = "spix";
function = "spix";
};
spixcs1_pins: spixcs1-mux {
groups = "spixcs1";
function = "spixcs1";
};
clkreq_pins: clkreq-mux {
groups = "clkreq";
function = "clkreq";
};
hgpio0_pins: hgpio0-mux {
groups = "hgpio0";
function = "hgpio0";
};
hgpio1_pins: hgpio1-mux {
groups = "hgpio1";
function = "hgpio1";
};
hgpio2_pins: hgpio2-mux {
groups = "hgpio2";
function = "hgpio2";
};
hgpio3_pins: hgpio3-mux {
groups = "hgpio3";
function = "hgpio3";
};
hgpio4_pins: hgpio4-mux {
groups = "hgpio4";
function = "hgpio4";
};
hgpio5_pins: hgpio5-mux {
groups = "hgpio5";
function = "hgpio5";
};
hgpio6_pins: hgpio6-mux {
groups = "hgpio6";
function = "hgpio6";
};
hgpio7_pins: hgpio7-mux {
groups = "hgpio7";
function = "hgpio7";
};
bu4_pins: bu4-mux {
groups = "bu4";
function = "bu4";
};
bu4b_pins: bu4b-mux {
groups = "bu4b";
function = "bu4b";
};
bu5_pins: bu5-mux {
groups = "bu5";
function = "bu5";
};
bu5b_pins: bu5b-mux {
groups = "bu5b";
function = "bu5b";
};
bu6_pins: bu6-mux {
groups = "bu6";
function = "bu6";
};
gpo187_pins: gpo187-mux {
groups = "gpo187";
function = "gpo187";
};
};
};
@@ -0,0 +1,37 @@
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2021 Nuvoton Technology tomer.maimon@nuvoton.com
/dts-v1/;
#include "nuvoton-npcm845.dtsi"
/ {
model = "Nuvoton npcm845 Development Board (Device Tree)";
compatible = "nuvoton,npcm845-evb", "nuvoton,npcm845";
aliases {
serial0 = &serial0;
};
chosen {
stdout-path = &serial0;
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x40000000>;
};
refclk: refclk-25mhz {
compatible = "fixed-clock";
clock-frequency = <25000000>;
#clock-cells = <0>;
};
};
&serial0 {
status = "okay";
};
&watchdog1 {
status = "okay";
};
@@ -0,0 +1,78 @@
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2021 Nuvoton Technology tomer.maimon@nuvoton.com
#include "nuvoton-common-npcm8xx.dtsi"
/ {
#address-cells = <2>;
#size-cells = <2>;
cpus {
#address-cells = <2>;
#size-cells = <0>;
cpu0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a35";
clocks = <&clk NPCM8XX_CLK_CPU>;
reg = <0x0 0x0>;
next-level-cache = <&l2>;
enable-method = "psci";
};
cpu1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a35";
clocks = <&clk NPCM8XX_CLK_CPU>;
reg = <0x0 0x1>;
next-level-cache = <&l2>;
enable-method = "psci";
};
cpu2: cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a35";
clocks = <&clk NPCM8XX_CLK_CPU>;
reg = <0x0 0x2>;
next-level-cache = <&l2>;
enable-method = "psci";
};
cpu3: cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a35";
clocks = <&clk NPCM8XX_CLK_CPU>;
reg = <0x0 0x3>;
next-level-cache = <&l2>;
enable-method = "psci";
};
l2: l2-cache {
compatible = "cache";
cache-level = <2>;
cache-unified;
};
};
arm-pmu {
compatible = "arm,cortex-a35-pmu";
interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
};
psci {
compatible = "arm,psci-1.0";
method = "smc";
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
};
};