1*b69af098SJacky Huang// SPDX-License-Identifier: GPL-2.0 2*b69af098SJacky Huang/* 3*b69af098SJacky Huang * Copyright (C) 2023 Nuvoton Technology Corp. 4*b69af098SJacky Huang * Author: Shan-Chun Hung <schung@nuvoton.com> 5*b69af098SJacky Huang * Jacky huang <ychuang3@nuvoton.com> 6*b69af098SJacky Huang */ 7*b69af098SJacky Huang 8*b69af098SJacky Huang#include <dt-bindings/interrupt-controller/arm-gic.h> 9*b69af098SJacky Huang#include <dt-bindings/input/input.h> 10*b69af098SJacky Huang#include <dt-bindings/gpio/gpio.h> 11*b69af098SJacky Huang#include <dt-bindings/clock/nuvoton,ma35d1-clk.h> 12*b69af098SJacky Huang#include <dt-bindings/reset/nuvoton,ma35d1-reset.h> 13*b69af098SJacky Huang 14*b69af098SJacky Huang/ { 15*b69af098SJacky Huang compatible = "nuvoton,ma35d1"; 16*b69af098SJacky Huang interrupt-parent = <&gic>; 17*b69af098SJacky Huang #address-cells = <2>; 18*b69af098SJacky Huang #size-cells = <2>; 19*b69af098SJacky Huang 20*b69af098SJacky Huang cpus { 21*b69af098SJacky Huang #address-cells = <2>; 22*b69af098SJacky Huang #size-cells = <0>; 23*b69af098SJacky Huang 24*b69af098SJacky Huang cpu0: cpu@0 { 25*b69af098SJacky Huang device_type = "cpu"; 26*b69af098SJacky Huang compatible = "arm,cortex-a35"; 27*b69af098SJacky Huang reg = <0x0 0x0>; 28*b69af098SJacky Huang enable-method = "psci"; 29*b69af098SJacky Huang next-level-cache = <&L2_0>; 30*b69af098SJacky Huang }; 31*b69af098SJacky Huang 32*b69af098SJacky Huang cpu1: cpu@1 { 33*b69af098SJacky Huang device_type = "cpu"; 34*b69af098SJacky Huang compatible = "arm,cortex-a35"; 35*b69af098SJacky Huang reg = <0x0 0x1>; 36*b69af098SJacky Huang enable-method = "psci"; 37*b69af098SJacky Huang next-level-cache = <&L2_0>; 38*b69af098SJacky Huang }; 39*b69af098SJacky Huang 40*b69af098SJacky Huang L2_0: l2-cache { 41*b69af098SJacky Huang compatible = "cache"; 42*b69af098SJacky Huang cache-level = <2>; 43*b69af098SJacky Huang cache-unified; 44*b69af098SJacky Huang cache-size = <0x80000>; 45*b69af098SJacky Huang }; 46*b69af098SJacky Huang }; 47*b69af098SJacky Huang 48*b69af098SJacky Huang psci { 49*b69af098SJacky Huang compatible = "arm,psci-0.2"; 50*b69af098SJacky Huang method = "smc"; 51*b69af098SJacky Huang }; 52*b69af098SJacky Huang 53*b69af098SJacky Huang gic: interrupt-controller@50801000 { 54*b69af098SJacky Huang compatible = "arm,gic-400"; 55*b69af098SJacky Huang reg = <0x0 0x50801000 0 0x1000>, /* GICD */ 56*b69af098SJacky Huang <0x0 0x50802000 0 0x2000>, /* GICC */ 57*b69af098SJacky Huang <0x0 0x50804000 0 0x2000>, /* GICH */ 58*b69af098SJacky Huang <0x0 0x50806000 0 0x2000>; /* GICV */ 59*b69af098SJacky Huang #interrupt-cells = <3>; 60*b69af098SJacky Huang interrupt-parent = <&gic>; 61*b69af098SJacky Huang interrupt-controller; 62*b69af098SJacky Huang interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0x13) | 63*b69af098SJacky Huang IRQ_TYPE_LEVEL_HIGH)>; 64*b69af098SJacky Huang }; 65*b69af098SJacky Huang 66*b69af098SJacky Huang timer { 67*b69af098SJacky Huang compatible = "arm,armv8-timer"; 68*b69af098SJacky Huang interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | 69*b69af098SJacky Huang IRQ_TYPE_LEVEL_LOW)>, /* Physical Secure */ 70*b69af098SJacky Huang <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | 71*b69af098SJacky Huang IRQ_TYPE_LEVEL_LOW)>, /* Physical Non-Secure */ 72*b69af098SJacky Huang <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | 73*b69af098SJacky Huang IRQ_TYPE_LEVEL_LOW)>, /* Virtual */ 74*b69af098SJacky Huang <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | 75*b69af098SJacky Huang IRQ_TYPE_LEVEL_LOW)>; /* Hypervisor */ 76*b69af098SJacky Huang interrupt-parent = <&gic>; 77*b69af098SJacky Huang }; 78*b69af098SJacky Huang 79*b69af098SJacky Huang soc { 80*b69af098SJacky Huang compatible = "simple-bus"; 81*b69af098SJacky Huang #address-cells = <2>; 82*b69af098SJacky Huang #size-cells = <2>; 83*b69af098SJacky Huang ranges; 84*b69af098SJacky Huang 85*b69af098SJacky Huang sys: system-management@40460000 { 86*b69af098SJacky Huang compatible = "nuvoton,ma35d1-reset"; 87*b69af098SJacky Huang reg = <0x0 0x40460000 0x0 0x200>; 88*b69af098SJacky Huang #reset-cells = <1>; 89*b69af098SJacky Huang }; 90*b69af098SJacky Huang 91*b69af098SJacky Huang clk: clock-controller@40460200 { 92*b69af098SJacky Huang compatible = "nuvoton,ma35d1-clk"; 93*b69af098SJacky Huang reg = <0x00000000 0x40460200 0x0 0x100>; 94*b69af098SJacky Huang #clock-cells = <1>; 95*b69af098SJacky Huang clocks = <&clk_hxt>; 96*b69af098SJacky Huang }; 97*b69af098SJacky Huang 98*b69af098SJacky Huang uart0: serial@40700000 { 99*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 100*b69af098SJacky Huang reg = <0x0 0x40700000 0x0 0x100>; 101*b69af098SJacky Huang interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 102*b69af098SJacky Huang clocks = <&clk UART0_GATE>; 103*b69af098SJacky Huang status = "disabled"; 104*b69af098SJacky Huang }; 105*b69af098SJacky Huang 106*b69af098SJacky Huang uart1: serial@40710000 { 107*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 108*b69af098SJacky Huang reg = <0x0 0x40710000 0x0 0x100>; 109*b69af098SJacky Huang interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 110*b69af098SJacky Huang clocks = <&clk UART1_GATE>; 111*b69af098SJacky Huang status = "disabled"; 112*b69af098SJacky Huang }; 113*b69af098SJacky Huang 114*b69af098SJacky Huang uart2: serial@40720000 { 115*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 116*b69af098SJacky Huang reg = <0x0 0x40720000 0x0 0x100>; 117*b69af098SJacky Huang interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 118*b69af098SJacky Huang clocks = <&clk UART2_GATE>; 119*b69af098SJacky Huang status = "disabled"; 120*b69af098SJacky Huang }; 121*b69af098SJacky Huang 122*b69af098SJacky Huang uart3: serial@40730000 { 123*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 124*b69af098SJacky Huang reg = <0x0 0x40730000 0x0 0x100>; 125*b69af098SJacky Huang interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 126*b69af098SJacky Huang clocks = <&clk UART3_GATE>; 127*b69af098SJacky Huang status = "disabled"; 128*b69af098SJacky Huang }; 129*b69af098SJacky Huang 130*b69af098SJacky Huang uart4: serial@40740000 { 131*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 132*b69af098SJacky Huang reg = <0x0 0x40740000 0x0 0x100>; 133*b69af098SJacky Huang interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 134*b69af098SJacky Huang clocks = <&clk UART4_GATE>; 135*b69af098SJacky Huang status = "disabled"; 136*b69af098SJacky Huang }; 137*b69af098SJacky Huang 138*b69af098SJacky Huang uart5: serial@40750000 { 139*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 140*b69af098SJacky Huang reg = <0x0 0x40750000 0x0 0x100>; 141*b69af098SJacky Huang interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 142*b69af098SJacky Huang clocks = <&clk UART5_GATE>; 143*b69af098SJacky Huang status = "disabled"; 144*b69af098SJacky Huang }; 145*b69af098SJacky Huang 146*b69af098SJacky Huang uart6: serial@40760000 { 147*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 148*b69af098SJacky Huang reg = <0x0 0x40760000 0x0 0x100>; 149*b69af098SJacky Huang interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 150*b69af098SJacky Huang clocks = <&clk UART6_GATE>; 151*b69af098SJacky Huang status = "disabled"; 152*b69af098SJacky Huang }; 153*b69af098SJacky Huang 154*b69af098SJacky Huang uart7: serial@40770000 { 155*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 156*b69af098SJacky Huang reg = <0x0 0x40770000 0x0 0x100>; 157*b69af098SJacky Huang interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 158*b69af098SJacky Huang clocks = <&clk UART7_GATE>; 159*b69af098SJacky Huang status = "disabled"; 160*b69af098SJacky Huang }; 161*b69af098SJacky Huang 162*b69af098SJacky Huang uart8: serial@40780000 { 163*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 164*b69af098SJacky Huang reg = <0x0 0x40780000 0x0 0x100>; 165*b69af098SJacky Huang interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 166*b69af098SJacky Huang clocks = <&clk UART8_GATE>; 167*b69af098SJacky Huang status = "disabled"; 168*b69af098SJacky Huang }; 169*b69af098SJacky Huang 170*b69af098SJacky Huang uart9: serial@40790000 { 171*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 172*b69af098SJacky Huang reg = <0x0 0x40790000 0x0 0x100>; 173*b69af098SJacky Huang interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 174*b69af098SJacky Huang clocks = <&clk UART9_GATE>; 175*b69af098SJacky Huang status = "disabled"; 176*b69af098SJacky Huang }; 177*b69af098SJacky Huang 178*b69af098SJacky Huang uart10: serial@407a0000 { 179*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 180*b69af098SJacky Huang reg = <0x0 0x407a0000 0x0 0x100>; 181*b69af098SJacky Huang interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 182*b69af098SJacky Huang clocks = <&clk UART10_GATE>; 183*b69af098SJacky Huang status = "disabled"; 184*b69af098SJacky Huang }; 185*b69af098SJacky Huang 186*b69af098SJacky Huang uart11: serial@407b0000 { 187*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 188*b69af098SJacky Huang reg = <0x0 0x407b0000 0x0 0x100>; 189*b69af098SJacky Huang interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 190*b69af098SJacky Huang clocks = <&clk UART11_GATE>; 191*b69af098SJacky Huang status = "disabled"; 192*b69af098SJacky Huang }; 193*b69af098SJacky Huang 194*b69af098SJacky Huang uart12: serial@407c0000 { 195*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 196*b69af098SJacky Huang reg = <0x0 0x407c0000 0x0 0x100>; 197*b69af098SJacky Huang interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 198*b69af098SJacky Huang clocks = <&clk UART12_GATE>; 199*b69af098SJacky Huang status = "disabled"; 200*b69af098SJacky Huang }; 201*b69af098SJacky Huang 202*b69af098SJacky Huang uart13: serial@407d0000 { 203*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 204*b69af098SJacky Huang reg = <0x0 0x407d0000 0x0 0x100>; 205*b69af098SJacky Huang interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 206*b69af098SJacky Huang clocks = <&clk UART13_GATE>; 207*b69af098SJacky Huang status = "disabled"; 208*b69af098SJacky Huang }; 209*b69af098SJacky Huang 210*b69af098SJacky Huang uart14: serial@407e0000 { 211*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 212*b69af098SJacky Huang reg = <0x0 0x407e0000 0x0 0x100>; 213*b69af098SJacky Huang interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 214*b69af098SJacky Huang clocks = <&clk UART14_GATE>; 215*b69af098SJacky Huang status = "disabled"; 216*b69af098SJacky Huang }; 217*b69af098SJacky Huang 218*b69af098SJacky Huang uart15: serial@407f0000 { 219*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 220*b69af098SJacky Huang reg = <0x0 0x407f0000 0x0 0x100>; 221*b69af098SJacky Huang interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; 222*b69af098SJacky Huang clocks = <&clk UART15_GATE>; 223*b69af098SJacky Huang status = "disabled"; 224*b69af098SJacky Huang }; 225*b69af098SJacky Huang 226*b69af098SJacky Huang uart16: serial@40880000 { 227*b69af098SJacky Huang compatible = "nuvoton,ma35d1-uart"; 228*b69af098SJacky Huang reg = <0x0 0x40880000 0x0 0x100>; 229*b69af098SJacky Huang interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 230*b69af098SJacky Huang clocks = <&clk UART16_GATE>; 231*b69af098SJacky Huang status = "disabled"; 232*b69af098SJacky Huang }; 233*b69af098SJacky Huang }; 234*b69af098SJacky Huang}; 235