1464c510fSMars Cheng/* 2464c510fSMars Cheng * Copyright (c) 2017 MediaTek Inc. 3464c510fSMars Cheng * Author: Mars.C <mars.cheng@mediatek.com> 4464c510fSMars Cheng * 5464c510fSMars Cheng * This program is free software; you can redistribute it and/or modify 6464c510fSMars Cheng * it under the terms of the GNU General Public License version 2 as 7464c510fSMars Cheng * published by the Free Software Foundation. 8464c510fSMars Cheng * 9464c510fSMars Cheng * This program is distributed in the hope that it will be useful, 10464c510fSMars Cheng * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11464c510fSMars Cheng * GNU General Public License for more details. 12464c510fSMars Cheng */ 13464c510fSMars Cheng 14464c510fSMars Cheng#include <dt-bindings/interrupt-controller/irq.h> 15464c510fSMars Cheng#include <dt-bindings/interrupt-controller/arm-gic.h> 16464c510fSMars Cheng 17464c510fSMars Cheng/ { 18464c510fSMars Cheng compatible = "mediatek,mt6797"; 19464c510fSMars Cheng interrupt-parent = <&sysirq>; 20464c510fSMars Cheng #address-cells = <2>; 21464c510fSMars Cheng #size-cells = <2>; 22464c510fSMars Cheng 23464c510fSMars Cheng psci { 24464c510fSMars Cheng compatible = "arm,psci-0.2"; 25464c510fSMars Cheng method = "smc"; 26464c510fSMars Cheng }; 27464c510fSMars Cheng 28464c510fSMars Cheng cpus { 29464c510fSMars Cheng #address-cells = <1>; 30464c510fSMars Cheng #size-cells = <0>; 31464c510fSMars Cheng 32464c510fSMars Cheng cpu0: cpu@0 { 33464c510fSMars Cheng device_type = "cpu"; 34464c510fSMars Cheng compatible = "arm,cortex-a53"; 35464c510fSMars Cheng enable-method = "psci"; 36464c510fSMars Cheng reg = <0x000>; 37464c510fSMars Cheng }; 38464c510fSMars Cheng 39464c510fSMars Cheng cpu1: cpu@1 { 40464c510fSMars Cheng device_type = "cpu"; 41464c510fSMars Cheng compatible = "arm,cortex-a53"; 42464c510fSMars Cheng enable-method = "psci"; 43464c510fSMars Cheng reg = <0x001>; 44464c510fSMars Cheng }; 45464c510fSMars Cheng 46464c510fSMars Cheng cpu2: cpu@2 { 47464c510fSMars Cheng device_type = "cpu"; 48464c510fSMars Cheng compatible = "arm,cortex-a53"; 49464c510fSMars Cheng enable-method = "psci"; 50464c510fSMars Cheng reg = <0x002>; 51464c510fSMars Cheng }; 52464c510fSMars Cheng 53464c510fSMars Cheng cpu3: cpu@3 { 54464c510fSMars Cheng device_type = "cpu"; 55464c510fSMars Cheng compatible = "arm,cortex-a53"; 56464c510fSMars Cheng enable-method = "psci"; 57464c510fSMars Cheng reg = <0x003>; 58464c510fSMars Cheng }; 59464c510fSMars Cheng 60464c510fSMars Cheng cpu4: cpu@100 { 61464c510fSMars Cheng device_type = "cpu"; 62464c510fSMars Cheng compatible = "arm,cortex-a53"; 63464c510fSMars Cheng enable-method = "psci"; 64464c510fSMars Cheng reg = <0x100>; 65464c510fSMars Cheng }; 66464c510fSMars Cheng 67464c510fSMars Cheng cpu5: cpu@101 { 68464c510fSMars Cheng device_type = "cpu"; 69464c510fSMars Cheng compatible = "arm,cortex-a53"; 70464c510fSMars Cheng enable-method = "psci"; 71464c510fSMars Cheng reg = <0x101>; 72464c510fSMars Cheng }; 73464c510fSMars Cheng 74464c510fSMars Cheng cpu6: cpu@102 { 75464c510fSMars Cheng device_type = "cpu"; 76464c510fSMars Cheng compatible = "arm,cortex-a53"; 77464c510fSMars Cheng enable-method = "psci"; 78464c510fSMars Cheng reg = <0x102>; 79464c510fSMars Cheng }; 80464c510fSMars Cheng 81464c510fSMars Cheng cpu7: cpu@103 { 82464c510fSMars Cheng device_type = "cpu"; 83464c510fSMars Cheng compatible = "arm,cortex-a53"; 84464c510fSMars Cheng enable-method = "psci"; 85464c510fSMars Cheng reg = <0x103>; 86464c510fSMars Cheng }; 87464c510fSMars Cheng 88464c510fSMars Cheng cpu8: cpu@200 { 89464c510fSMars Cheng device_type = "cpu"; 90464c510fSMars Cheng compatible = "arm,cortex-a72"; 91464c510fSMars Cheng enable-method = "psci"; 92464c510fSMars Cheng reg = <0x200>; 93464c510fSMars Cheng }; 94464c510fSMars Cheng 95464c510fSMars Cheng cpu9: cpu@201 { 96464c510fSMars Cheng device_type = "cpu"; 97464c510fSMars Cheng compatible = "arm,cortex-a72"; 98464c510fSMars Cheng enable-method = "psci"; 99464c510fSMars Cheng reg = <0x201>; 100464c510fSMars Cheng }; 101464c510fSMars Cheng }; 102464c510fSMars Cheng 103464c510fSMars Cheng clk26m: oscillator@0 { 104464c510fSMars Cheng compatible = "fixed-clock"; 105464c510fSMars Cheng #clock-cells = <0>; 106464c510fSMars Cheng clock-frequency = <26000000>; 107464c510fSMars Cheng clock-output-names = "clk26m"; 108464c510fSMars Cheng }; 109464c510fSMars Cheng 110464c510fSMars Cheng clk32k: oscillator@1 { 111464c510fSMars Cheng compatible = "fixed-clock"; 112464c510fSMars Cheng #clock-cells = <0>; 113464c510fSMars Cheng clock-frequency = <32000>; 114464c510fSMars Cheng clock-output-names = "clk32k"; 115464c510fSMars Cheng }; 116464c510fSMars Cheng 117464c510fSMars Cheng timer { 118464c510fSMars Cheng compatible = "arm,armv8-timer"; 119464c510fSMars Cheng interrupt-parent = <&gic>; 120464c510fSMars Cheng interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 121464c510fSMars Cheng <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 122464c510fSMars Cheng <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 123464c510fSMars Cheng <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 124464c510fSMars Cheng }; 125464c510fSMars Cheng 126464c510fSMars Cheng sysirq: intpol-controller@10200620 { 127464c510fSMars Cheng compatible = "mediatek,mt6797-sysirq", 128464c510fSMars Cheng "mediatek,mt6577-sysirq"; 129464c510fSMars Cheng interrupt-controller; 130464c510fSMars Cheng #interrupt-cells = <3>; 131464c510fSMars Cheng interrupt-parent = <&gic>; 132464c510fSMars Cheng reg = <0 0x10220620 0 0x20>, 133464c510fSMars Cheng <0 0x10220690 0 0x10>; 134464c510fSMars Cheng }; 135464c510fSMars Cheng 136464c510fSMars Cheng uart0: serial@11002000 { 137464c510fSMars Cheng compatible = "mediatek,mt6797-uart", 138464c510fSMars Cheng "mediatek,mt6577-uart"; 139464c510fSMars Cheng reg = <0 0x11002000 0 0x400>; 140464c510fSMars Cheng interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>; 141464c510fSMars Cheng clocks = <&clk26m>; 142464c510fSMars Cheng status = "disabled"; 143464c510fSMars Cheng }; 144464c510fSMars Cheng 145464c510fSMars Cheng uart1: serial@11003000 { 146464c510fSMars Cheng compatible = "mediatek,mt6797-uart", 147464c510fSMars Cheng "mediatek,mt6577-uart"; 148464c510fSMars Cheng reg = <0 0x11003000 0 0x400>; 149464c510fSMars Cheng interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>; 150464c510fSMars Cheng clocks = <&clk26m>; 151464c510fSMars Cheng status = "disabled"; 152464c510fSMars Cheng }; 153464c510fSMars Cheng 154464c510fSMars Cheng uart2: serial@11004000 { 155464c510fSMars Cheng compatible = "mediatek,mt6797-uart", 156464c510fSMars Cheng "mediatek,mt6577-uart"; 157464c510fSMars Cheng reg = <0 0x11004000 0 0x400>; 158464c510fSMars Cheng interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>; 159464c510fSMars Cheng clocks = <&clk26m>; 160464c510fSMars Cheng status = "disabled"; 161464c510fSMars Cheng }; 162464c510fSMars Cheng 163464c510fSMars Cheng uart3: serial@11005000 { 164464c510fSMars Cheng compatible = "mediatek,mt6797-uart", 165464c510fSMars Cheng "mediatek,mt6577-uart"; 166464c510fSMars Cheng reg = <0 0x11005000 0 0x400>; 167464c510fSMars Cheng interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>; 168464c510fSMars Cheng clocks = <&clk26m>; 169464c510fSMars Cheng status = "disabled"; 170464c510fSMars Cheng }; 171464c510fSMars Cheng 172464c510fSMars Cheng gic: interrupt-controller@19000000 { 173464c510fSMars Cheng compatible = "arm,gic-v3"; 174464c510fSMars Cheng #interrupt-cells = <3>; 175464c510fSMars Cheng interrupt-parent = <&gic>; 176464c510fSMars Cheng interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 177464c510fSMars Cheng interrupt-controller; 178464c510fSMars Cheng reg = <0 0x19000000 0 0x10000>, /* GICD */ 179464c510fSMars Cheng <0 0x19200000 0 0x200000>, /* GICR */ 180464c510fSMars Cheng <0 0x10240000 0 0x2000>; /* GICC */ 181464c510fSMars Cheng }; 182464c510fSMars Cheng}; 183