18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0 OR MIT) 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (C) 2015 Marvell Technology Group Ltd. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Author: Jisheng Zhang <jszhang@marvell.com> 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h> 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci/ { 118c2ecf20Sopenharmony_ci compatible = "marvell,berlin4ct", "marvell,berlin"; 128c2ecf20Sopenharmony_ci interrupt-parent = <&gic>; 138c2ecf20Sopenharmony_ci #address-cells = <2>; 148c2ecf20Sopenharmony_ci #size-cells = <2>; 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci aliases { 178c2ecf20Sopenharmony_ci serial0 = &uart0; 188c2ecf20Sopenharmony_ci }; 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci psci { 218c2ecf20Sopenharmony_ci compatible = "arm,psci-1.0", "arm,psci-0.2"; 228c2ecf20Sopenharmony_ci method = "smc"; 238c2ecf20Sopenharmony_ci }; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci cpus { 268c2ecf20Sopenharmony_ci #address-cells = <1>; 278c2ecf20Sopenharmony_ci #size-cells = <0>; 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci cpu0: cpu@0 { 308c2ecf20Sopenharmony_ci compatible = "arm,cortex-a53"; 318c2ecf20Sopenharmony_ci device_type = "cpu"; 328c2ecf20Sopenharmony_ci reg = <0x0>; 338c2ecf20Sopenharmony_ci enable-method = "psci"; 348c2ecf20Sopenharmony_ci next-level-cache = <&l2>; 358c2ecf20Sopenharmony_ci cpu-idle-states = <&CPU_SLEEP_0>; 368c2ecf20Sopenharmony_ci }; 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci cpu1: cpu@1 { 398c2ecf20Sopenharmony_ci compatible = "arm,cortex-a53"; 408c2ecf20Sopenharmony_ci device_type = "cpu"; 418c2ecf20Sopenharmony_ci reg = <0x1>; 428c2ecf20Sopenharmony_ci enable-method = "psci"; 438c2ecf20Sopenharmony_ci next-level-cache = <&l2>; 448c2ecf20Sopenharmony_ci cpu-idle-states = <&CPU_SLEEP_0>; 458c2ecf20Sopenharmony_ci }; 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci cpu2: cpu@2 { 488c2ecf20Sopenharmony_ci compatible = "arm,cortex-a53"; 498c2ecf20Sopenharmony_ci device_type = "cpu"; 508c2ecf20Sopenharmony_ci reg = <0x2>; 518c2ecf20Sopenharmony_ci enable-method = "psci"; 528c2ecf20Sopenharmony_ci next-level-cache = <&l2>; 538c2ecf20Sopenharmony_ci cpu-idle-states = <&CPU_SLEEP_0>; 548c2ecf20Sopenharmony_ci }; 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci cpu3: cpu@3 { 578c2ecf20Sopenharmony_ci compatible = "arm,cortex-a53"; 588c2ecf20Sopenharmony_ci device_type = "cpu"; 598c2ecf20Sopenharmony_ci reg = <0x3>; 608c2ecf20Sopenharmony_ci enable-method = "psci"; 618c2ecf20Sopenharmony_ci next-level-cache = <&l2>; 628c2ecf20Sopenharmony_ci cpu-idle-states = <&CPU_SLEEP_0>; 638c2ecf20Sopenharmony_ci }; 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci l2: cache { 668c2ecf20Sopenharmony_ci compatible = "cache"; 678c2ecf20Sopenharmony_ci }; 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci idle-states { 708c2ecf20Sopenharmony_ci entry-method = "psci"; 718c2ecf20Sopenharmony_ci CPU_SLEEP_0: cpu-sleep-0 { 728c2ecf20Sopenharmony_ci compatible = "arm,idle-state"; 738c2ecf20Sopenharmony_ci local-timer-stop; 748c2ecf20Sopenharmony_ci arm,psci-suspend-param = <0x0010000>; 758c2ecf20Sopenharmony_ci entry-latency-us = <75>; 768c2ecf20Sopenharmony_ci exit-latency-us = <155>; 778c2ecf20Sopenharmony_ci min-residency-us = <1000>; 788c2ecf20Sopenharmony_ci }; 798c2ecf20Sopenharmony_ci }; 808c2ecf20Sopenharmony_ci }; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci osc: osc { 838c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 848c2ecf20Sopenharmony_ci #clock-cells = <0>; 858c2ecf20Sopenharmony_ci clock-frequency = <25000000>; 868c2ecf20Sopenharmony_ci }; 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci pmu { 898c2ecf20Sopenharmony_ci compatible = "arm,cortex-a53-pmu", "arm,armv8-pmuv3"; 908c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>, 918c2ecf20Sopenharmony_ci <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, 928c2ecf20Sopenharmony_ci <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>, 938c2ecf20Sopenharmony_ci <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 948c2ecf20Sopenharmony_ci interrupt-affinity = <&cpu0>, 958c2ecf20Sopenharmony_ci <&cpu1>, 968c2ecf20Sopenharmony_ci <&cpu2>, 978c2ecf20Sopenharmony_ci <&cpu3>; 988c2ecf20Sopenharmony_ci }; 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci timer { 1018c2ecf20Sopenharmony_ci compatible = "arm,armv8-timer"; 1028c2ecf20Sopenharmony_ci interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1038c2ecf20Sopenharmony_ci <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1048c2ecf20Sopenharmony_ci <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1058c2ecf20Sopenharmony_ci <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 1068c2ecf20Sopenharmony_ci }; 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci soc@f7000000 { 1098c2ecf20Sopenharmony_ci compatible = "simple-bus"; 1108c2ecf20Sopenharmony_ci #address-cells = <1>; 1118c2ecf20Sopenharmony_ci #size-cells = <1>; 1128c2ecf20Sopenharmony_ci ranges = <0 0 0xf7000000 0x1000000>; 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci gic: interrupt-controller@901000 { 1158c2ecf20Sopenharmony_ci compatible = "arm,gic-400"; 1168c2ecf20Sopenharmony_ci #interrupt-cells = <3>; 1178c2ecf20Sopenharmony_ci interrupt-controller; 1188c2ecf20Sopenharmony_ci reg = <0x901000 0x1000>, 1198c2ecf20Sopenharmony_ci <0x902000 0x2000>, 1208c2ecf20Sopenharmony_ci <0x904000 0x2000>, 1218c2ecf20Sopenharmony_ci <0x906000 0x2000>; 1228c2ecf20Sopenharmony_ci interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 1238c2ecf20Sopenharmony_ci }; 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci apb@e80000 { 1268c2ecf20Sopenharmony_ci compatible = "simple-bus"; 1278c2ecf20Sopenharmony_ci #address-cells = <1>; 1288c2ecf20Sopenharmony_ci #size-cells = <1>; 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci ranges = <0 0xe80000 0x10000>; 1318c2ecf20Sopenharmony_ci interrupt-parent = <&aic>; 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci gpio0: gpio@400 { 1348c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio"; 1358c2ecf20Sopenharmony_ci reg = <0x0400 0x400>; 1368c2ecf20Sopenharmony_ci #address-cells = <1>; 1378c2ecf20Sopenharmony_ci #size-cells = <0>; 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ci porta: gpio-port@0 { 1408c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio-port"; 1418c2ecf20Sopenharmony_ci gpio-controller; 1428c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1438c2ecf20Sopenharmony_ci snps,nr-gpios = <32>; 1448c2ecf20Sopenharmony_ci reg = <0>; 1458c2ecf20Sopenharmony_ci interrupt-controller; 1468c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1478c2ecf20Sopenharmony_ci interrupts = <0>; 1488c2ecf20Sopenharmony_ci }; 1498c2ecf20Sopenharmony_ci }; 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci gpio1: gpio@800 { 1528c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio"; 1538c2ecf20Sopenharmony_ci reg = <0x0800 0x400>; 1548c2ecf20Sopenharmony_ci #address-cells = <1>; 1558c2ecf20Sopenharmony_ci #size-cells = <0>; 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci portb: gpio-port@1 { 1588c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio-port"; 1598c2ecf20Sopenharmony_ci gpio-controller; 1608c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1618c2ecf20Sopenharmony_ci snps,nr-gpios = <32>; 1628c2ecf20Sopenharmony_ci reg = <0>; 1638c2ecf20Sopenharmony_ci interrupt-controller; 1648c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1658c2ecf20Sopenharmony_ci interrupts = <1>; 1668c2ecf20Sopenharmony_ci }; 1678c2ecf20Sopenharmony_ci }; 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci gpio2: gpio@c00 { 1708c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio"; 1718c2ecf20Sopenharmony_ci reg = <0x0c00 0x400>; 1728c2ecf20Sopenharmony_ci #address-cells = <1>; 1738c2ecf20Sopenharmony_ci #size-cells = <0>; 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci portc: gpio-port@2 { 1768c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio-port"; 1778c2ecf20Sopenharmony_ci gpio-controller; 1788c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1798c2ecf20Sopenharmony_ci snps,nr-gpios = <32>; 1808c2ecf20Sopenharmony_ci reg = <0>; 1818c2ecf20Sopenharmony_ci interrupt-controller; 1828c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1838c2ecf20Sopenharmony_ci interrupts = <2>; 1848c2ecf20Sopenharmony_ci }; 1858c2ecf20Sopenharmony_ci }; 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_ci gpio3: gpio@1000 { 1888c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio"; 1898c2ecf20Sopenharmony_ci reg = <0x1000 0x400>; 1908c2ecf20Sopenharmony_ci #address-cells = <1>; 1918c2ecf20Sopenharmony_ci #size-cells = <0>; 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci portd: gpio-port@3 { 1948c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio-port"; 1958c2ecf20Sopenharmony_ci gpio-controller; 1968c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1978c2ecf20Sopenharmony_ci snps,nr-gpios = <32>; 1988c2ecf20Sopenharmony_ci reg = <0>; 1998c2ecf20Sopenharmony_ci interrupt-controller; 2008c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 2018c2ecf20Sopenharmony_ci interrupts = <3>; 2028c2ecf20Sopenharmony_ci }; 2038c2ecf20Sopenharmony_ci }; 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci aic: interrupt-controller@3800 { 2068c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-ictl"; 2078c2ecf20Sopenharmony_ci reg = <0x3800 0x30>; 2088c2ecf20Sopenharmony_ci interrupt-controller; 2098c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 2108c2ecf20Sopenharmony_ci interrupt-parent = <&gic>; 2118c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 2128c2ecf20Sopenharmony_ci }; 2138c2ecf20Sopenharmony_ci }; 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ci soc_pinctrl: pin-controller@ea8000 { 2168c2ecf20Sopenharmony_ci compatible = "marvell,berlin4ct-soc-pinctrl"; 2178c2ecf20Sopenharmony_ci reg = <0xea8000 0x14>; 2188c2ecf20Sopenharmony_ci }; 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci avio_pinctrl: pin-controller@ea8400 { 2218c2ecf20Sopenharmony_ci compatible = "marvell,berlin4ct-avio-pinctrl"; 2228c2ecf20Sopenharmony_ci reg = <0xea8400 0x8>; 2238c2ecf20Sopenharmony_ci }; 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci apb@fc0000 { 2268c2ecf20Sopenharmony_ci compatible = "simple-bus"; 2278c2ecf20Sopenharmony_ci #address-cells = <1>; 2288c2ecf20Sopenharmony_ci #size-cells = <1>; 2298c2ecf20Sopenharmony_ci ranges = <0 0xfc0000 0x10000>; 2308c2ecf20Sopenharmony_ci interrupt-parent = <&sic>; 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_ci sic: interrupt-controller@1000 { 2338c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-ictl"; 2348c2ecf20Sopenharmony_ci reg = <0x1000 0x30>; 2358c2ecf20Sopenharmony_ci interrupt-controller; 2368c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 2378c2ecf20Sopenharmony_ci interrupt-parent = <&gic>; 2388c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 2398c2ecf20Sopenharmony_ci }; 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_ci wdt0: watchdog@3000 { 2428c2ecf20Sopenharmony_ci compatible = "snps,dw-wdt"; 2438c2ecf20Sopenharmony_ci reg = <0x3000 0x100>; 2448c2ecf20Sopenharmony_ci clocks = <&osc>; 2458c2ecf20Sopenharmony_ci interrupts = <0>; 2468c2ecf20Sopenharmony_ci }; 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_ci wdt1: watchdog@4000 { 2498c2ecf20Sopenharmony_ci compatible = "snps,dw-wdt"; 2508c2ecf20Sopenharmony_ci reg = <0x4000 0x100>; 2518c2ecf20Sopenharmony_ci clocks = <&osc>; 2528c2ecf20Sopenharmony_ci interrupts = <1>; 2538c2ecf20Sopenharmony_ci }; 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci wdt2: watchdog@5000 { 2568c2ecf20Sopenharmony_ci compatible = "snps,dw-wdt"; 2578c2ecf20Sopenharmony_ci reg = <0x5000 0x100>; 2588c2ecf20Sopenharmony_ci clocks = <&osc>; 2598c2ecf20Sopenharmony_ci interrupts = <2>; 2608c2ecf20Sopenharmony_ci }; 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_ci sm_gpio0: gpio@8000 { 2638c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio"; 2648c2ecf20Sopenharmony_ci reg = <0x8000 0x400>; 2658c2ecf20Sopenharmony_ci #address-cells = <1>; 2668c2ecf20Sopenharmony_ci #size-cells = <0>; 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ci porte: gpio-port@4 { 2698c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio-port"; 2708c2ecf20Sopenharmony_ci gpio-controller; 2718c2ecf20Sopenharmony_ci #gpio-cells = <2>; 2728c2ecf20Sopenharmony_ci snps,nr-gpios = <32>; 2738c2ecf20Sopenharmony_ci reg = <0>; 2748c2ecf20Sopenharmony_ci }; 2758c2ecf20Sopenharmony_ci }; 2768c2ecf20Sopenharmony_ci 2778c2ecf20Sopenharmony_ci sm_gpio1: gpio@9000 { 2788c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio"; 2798c2ecf20Sopenharmony_ci reg = <0x9000 0x400>; 2808c2ecf20Sopenharmony_ci #address-cells = <1>; 2818c2ecf20Sopenharmony_ci #size-cells = <0>; 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ci portf: gpio-port@5 { 2848c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio-port"; 2858c2ecf20Sopenharmony_ci gpio-controller; 2868c2ecf20Sopenharmony_ci #gpio-cells = <2>; 2878c2ecf20Sopenharmony_ci snps,nr-gpios = <32>; 2888c2ecf20Sopenharmony_ci reg = <0>; 2898c2ecf20Sopenharmony_ci }; 2908c2ecf20Sopenharmony_ci }; 2918c2ecf20Sopenharmony_ci 2928c2ecf20Sopenharmony_ci uart0: uart@d000 { 2938c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-uart"; 2948c2ecf20Sopenharmony_ci reg = <0xd000 0x100>; 2958c2ecf20Sopenharmony_ci interrupts = <8>; 2968c2ecf20Sopenharmony_ci clocks = <&osc>; 2978c2ecf20Sopenharmony_ci reg-shift = <2>; 2988c2ecf20Sopenharmony_ci status = "disabled"; 2998c2ecf20Sopenharmony_ci pinctrl-0 = <&uart0_pmux>; 3008c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3018c2ecf20Sopenharmony_ci }; 3028c2ecf20Sopenharmony_ci }; 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ci system_pinctrl: pin-controller@fe2200 { 3058c2ecf20Sopenharmony_ci compatible = "marvell,berlin4ct-system-pinctrl"; 3068c2ecf20Sopenharmony_ci reg = <0xfe2200 0xc>; 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_ci uart0_pmux: uart0-pmux { 3098c2ecf20Sopenharmony_ci groups = "SM_URT0_TXD", "SM_URT0_RXD"; 3108c2ecf20Sopenharmony_ci function = "uart0"; 3118c2ecf20Sopenharmony_ci }; 3128c2ecf20Sopenharmony_ci }; 3138c2ecf20Sopenharmony_ci }; 3148c2ecf20Sopenharmony_ci}; 315