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 14003f5d0cSMars Cheng#include <dt-bindings/clock/mt6797-clk.h> 15464c510fSMars Cheng#include <dt-bindings/interrupt-controller/irq.h> 16464c510fSMars Cheng#include <dt-bindings/interrupt-controller/arm-gic.h> 179539c0c1SManivannan Sadhasivam#include <dt-bindings/pinctrl/mt6797-pinfunc.h> 18464c510fSMars Cheng 19464c510fSMars Cheng/ { 20464c510fSMars Cheng compatible = "mediatek,mt6797"; 21464c510fSMars Cheng interrupt-parent = <&sysirq>; 22464c510fSMars Cheng #address-cells = <2>; 23464c510fSMars Cheng #size-cells = <2>; 24464c510fSMars Cheng 25464c510fSMars Cheng psci { 26464c510fSMars Cheng compatible = "arm,psci-0.2"; 27464c510fSMars Cheng method = "smc"; 28464c510fSMars Cheng }; 29464c510fSMars Cheng 30464c510fSMars Cheng cpus { 31464c510fSMars Cheng #address-cells = <1>; 32464c510fSMars Cheng #size-cells = <0>; 33464c510fSMars Cheng 34464c510fSMars Cheng cpu0: cpu@0 { 35464c510fSMars Cheng device_type = "cpu"; 36464c510fSMars Cheng compatible = "arm,cortex-a53"; 37464c510fSMars Cheng enable-method = "psci"; 38464c510fSMars Cheng reg = <0x000>; 39464c510fSMars Cheng }; 40464c510fSMars Cheng 41464c510fSMars Cheng cpu1: cpu@1 { 42464c510fSMars Cheng device_type = "cpu"; 43464c510fSMars Cheng compatible = "arm,cortex-a53"; 44464c510fSMars Cheng enable-method = "psci"; 45464c510fSMars Cheng reg = <0x001>; 46464c510fSMars Cheng }; 47464c510fSMars Cheng 48464c510fSMars Cheng cpu2: cpu@2 { 49464c510fSMars Cheng device_type = "cpu"; 50464c510fSMars Cheng compatible = "arm,cortex-a53"; 51464c510fSMars Cheng enable-method = "psci"; 52464c510fSMars Cheng reg = <0x002>; 53464c510fSMars Cheng }; 54464c510fSMars Cheng 55464c510fSMars Cheng cpu3: cpu@3 { 56464c510fSMars Cheng device_type = "cpu"; 57464c510fSMars Cheng compatible = "arm,cortex-a53"; 58464c510fSMars Cheng enable-method = "psci"; 59464c510fSMars Cheng reg = <0x003>; 60464c510fSMars Cheng }; 61464c510fSMars Cheng 62464c510fSMars Cheng cpu4: cpu@100 { 63464c510fSMars Cheng device_type = "cpu"; 64464c510fSMars Cheng compatible = "arm,cortex-a53"; 65464c510fSMars Cheng enable-method = "psci"; 66464c510fSMars Cheng reg = <0x100>; 67464c510fSMars Cheng }; 68464c510fSMars Cheng 69464c510fSMars Cheng cpu5: cpu@101 { 70464c510fSMars Cheng device_type = "cpu"; 71464c510fSMars Cheng compatible = "arm,cortex-a53"; 72464c510fSMars Cheng enable-method = "psci"; 73464c510fSMars Cheng reg = <0x101>; 74464c510fSMars Cheng }; 75464c510fSMars Cheng 76464c510fSMars Cheng cpu6: cpu@102 { 77464c510fSMars Cheng device_type = "cpu"; 78464c510fSMars Cheng compatible = "arm,cortex-a53"; 79464c510fSMars Cheng enable-method = "psci"; 80464c510fSMars Cheng reg = <0x102>; 81464c510fSMars Cheng }; 82464c510fSMars Cheng 83464c510fSMars Cheng cpu7: cpu@103 { 84464c510fSMars Cheng device_type = "cpu"; 85464c510fSMars Cheng compatible = "arm,cortex-a53"; 86464c510fSMars Cheng enable-method = "psci"; 87464c510fSMars Cheng reg = <0x103>; 88464c510fSMars Cheng }; 89464c510fSMars Cheng 90464c510fSMars Cheng cpu8: cpu@200 { 91464c510fSMars Cheng device_type = "cpu"; 92464c510fSMars Cheng compatible = "arm,cortex-a72"; 93464c510fSMars Cheng enable-method = "psci"; 94464c510fSMars Cheng reg = <0x200>; 95464c510fSMars Cheng }; 96464c510fSMars Cheng 97464c510fSMars Cheng cpu9: cpu@201 { 98464c510fSMars Cheng device_type = "cpu"; 99464c510fSMars Cheng compatible = "arm,cortex-a72"; 100464c510fSMars Cheng enable-method = "psci"; 101464c510fSMars Cheng reg = <0x201>; 102464c510fSMars Cheng }; 103464c510fSMars Cheng }; 104464c510fSMars Cheng 105464c510fSMars Cheng clk26m: oscillator@0 { 106464c510fSMars Cheng compatible = "fixed-clock"; 107464c510fSMars Cheng #clock-cells = <0>; 108464c510fSMars Cheng clock-frequency = <26000000>; 109464c510fSMars Cheng clock-output-names = "clk26m"; 110464c510fSMars Cheng }; 111464c510fSMars Cheng 112464c510fSMars Cheng timer { 113464c510fSMars Cheng compatible = "arm,armv8-timer"; 114464c510fSMars Cheng interrupt-parent = <&gic>; 115464c510fSMars Cheng interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 116464c510fSMars Cheng <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 117464c510fSMars Cheng <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 118464c510fSMars Cheng <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 119464c510fSMars Cheng }; 120464c510fSMars Cheng 121003f5d0cSMars Cheng topckgen: topckgen@10000000 { 122003f5d0cSMars Cheng compatible = "mediatek,mt6797-topckgen"; 123003f5d0cSMars Cheng reg = <0 0x10000000 0 0x1000>; 124003f5d0cSMars Cheng #clock-cells = <1>; 125003f5d0cSMars Cheng }; 126003f5d0cSMars Cheng 127003f5d0cSMars Cheng infrasys: infracfg_ao@10001000 { 128003f5d0cSMars Cheng compatible = "mediatek,mt6797-infracfg", "syscon"; 129003f5d0cSMars Cheng reg = <0 0x10001000 0 0x1000>; 130003f5d0cSMars Cheng #clock-cells = <1>; 131003f5d0cSMars Cheng }; 132003f5d0cSMars Cheng 1339539c0c1SManivannan Sadhasivam pio: pinctrl@10005000 { 1349539c0c1SManivannan Sadhasivam compatible = "mediatek,mt6797-pinctrl"; 1359539c0c1SManivannan Sadhasivam reg = <0 0x10005000 0 0x1000>, 1369539c0c1SManivannan Sadhasivam <0 0x10002000 0 0x400>, 1379539c0c1SManivannan Sadhasivam <0 0x10002400 0 0x400>, 1389539c0c1SManivannan Sadhasivam <0 0x10002800 0 0x400>, 1399539c0c1SManivannan Sadhasivam <0 0x10002C00 0 0x400>; 1409539c0c1SManivannan Sadhasivam reg-names = "gpio", "iocfgl", "iocfgb", 1419539c0c1SManivannan Sadhasivam "iocfgr", "iocfgt"; 1429539c0c1SManivannan Sadhasivam gpio-controller; 1439539c0c1SManivannan Sadhasivam #gpio-cells = <2>; 1449539c0c1SManivannan Sadhasivam }; 1459539c0c1SManivannan Sadhasivam 146003f5d0cSMars Cheng scpsys: scpsys@10006000 { 147003f5d0cSMars Cheng compatible = "mediatek,mt6797-scpsys"; 148003f5d0cSMars Cheng #power-domain-cells = <1>; 149003f5d0cSMars Cheng reg = <0 0x10006000 0 0x1000>; 150003f5d0cSMars Cheng clocks = <&topckgen CLK_TOP_MUX_MFG>, 151003f5d0cSMars Cheng <&topckgen CLK_TOP_MUX_MM>, 152003f5d0cSMars Cheng <&topckgen CLK_TOP_MUX_VDEC>; 153003f5d0cSMars Cheng clock-names = "mfg", "mm", "vdec"; 154003f5d0cSMars Cheng infracfg = <&infrasys>; 155003f5d0cSMars Cheng }; 156003f5d0cSMars Cheng 1576717728cSMatthias Brugger watchdog: watchdog@10007000 { 1586717728cSMatthias Brugger compatible = "mediatek,mt6797-wdt", "mediatek,mt6589-wdt"; 1596717728cSMatthias Brugger reg = <0 0x10007000 0 0x100>; 1606717728cSMatthias Brugger }; 1616717728cSMatthias Brugger 162003f5d0cSMars Cheng apmixedsys: apmixed@1000c000 { 163003f5d0cSMars Cheng compatible = "mediatek,mt6797-apmixedsys"; 164003f5d0cSMars Cheng reg = <0 0x1000c000 0 0x1000>; 165003f5d0cSMars Cheng #clock-cells = <1>; 166003f5d0cSMars Cheng }; 167003f5d0cSMars Cheng 168464c510fSMars Cheng sysirq: intpol-controller@10200620 { 169464c510fSMars Cheng compatible = "mediatek,mt6797-sysirq", 170464c510fSMars Cheng "mediatek,mt6577-sysirq"; 171464c510fSMars Cheng interrupt-controller; 172464c510fSMars Cheng #interrupt-cells = <3>; 173464c510fSMars Cheng interrupt-parent = <&gic>; 174464c510fSMars Cheng reg = <0 0x10220620 0 0x20>, 175464c510fSMars Cheng <0 0x10220690 0 0x10>; 176464c510fSMars Cheng }; 177464c510fSMars Cheng 178464c510fSMars Cheng uart0: serial@11002000 { 179464c510fSMars Cheng compatible = "mediatek,mt6797-uart", 180464c510fSMars Cheng "mediatek,mt6577-uart"; 181464c510fSMars Cheng reg = <0 0x11002000 0 0x400>; 182464c510fSMars Cheng interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>; 183003f5d0cSMars Cheng clocks = <&infrasys CLK_INFRA_UART0>, 184003f5d0cSMars Cheng <&infrasys CLK_INFRA_AP_DMA>; 185003f5d0cSMars Cheng clock-names = "baud", "bus"; 186464c510fSMars Cheng status = "disabled"; 187464c510fSMars Cheng }; 188464c510fSMars Cheng 189464c510fSMars Cheng uart1: serial@11003000 { 190464c510fSMars Cheng compatible = "mediatek,mt6797-uart", 191464c510fSMars Cheng "mediatek,mt6577-uart"; 192464c510fSMars Cheng reg = <0 0x11003000 0 0x400>; 193464c510fSMars Cheng interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>; 194003f5d0cSMars Cheng clocks = <&infrasys CLK_INFRA_UART1>, 195003f5d0cSMars Cheng <&infrasys CLK_INFRA_AP_DMA>; 196003f5d0cSMars Cheng clock-names = "baud", "bus"; 197464c510fSMars Cheng status = "disabled"; 198464c510fSMars Cheng }; 199464c510fSMars Cheng 200464c510fSMars Cheng uart2: serial@11004000 { 201464c510fSMars Cheng compatible = "mediatek,mt6797-uart", 202464c510fSMars Cheng "mediatek,mt6577-uart"; 203464c510fSMars Cheng reg = <0 0x11004000 0 0x400>; 204464c510fSMars Cheng interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>; 205003f5d0cSMars Cheng clocks = <&infrasys CLK_INFRA_UART2>, 206003f5d0cSMars Cheng <&infrasys CLK_INFRA_AP_DMA>; 207003f5d0cSMars Cheng clock-names = "baud", "bus"; 208464c510fSMars Cheng status = "disabled"; 209464c510fSMars Cheng }; 210464c510fSMars Cheng 211464c510fSMars Cheng uart3: serial@11005000 { 212464c510fSMars Cheng compatible = "mediatek,mt6797-uart", 213464c510fSMars Cheng "mediatek,mt6577-uart"; 214464c510fSMars Cheng reg = <0 0x11005000 0 0x400>; 215464c510fSMars Cheng interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>; 216003f5d0cSMars Cheng clocks = <&infrasys CLK_INFRA_UART3>, 217003f5d0cSMars Cheng <&infrasys CLK_INFRA_AP_DMA>; 218003f5d0cSMars Cheng clock-names = "baud", "bus"; 219464c510fSMars Cheng status = "disabled"; 220464c510fSMars Cheng }; 221464c510fSMars Cheng 222003f5d0cSMars Cheng mmsys: mmsys_config@14000000 { 223003f5d0cSMars Cheng compatible = "mediatek,mt6797-mmsys", "syscon"; 224003f5d0cSMars Cheng reg = <0 0x14000000 0 0x1000>; 225003f5d0cSMars Cheng #clock-cells = <1>; 226003f5d0cSMars Cheng }; 227003f5d0cSMars Cheng 228003f5d0cSMars Cheng imgsys: imgsys_config@15000000 { 229003f5d0cSMars Cheng compatible = "mediatek,mt6797-imgsys", "syscon"; 230003f5d0cSMars Cheng reg = <0 0x15000000 0 0x1000>; 231003f5d0cSMars Cheng #clock-cells = <1>; 232003f5d0cSMars Cheng }; 233003f5d0cSMars Cheng 234003f5d0cSMars Cheng vdecsys: vdec_gcon@16000000 { 235003f5d0cSMars Cheng compatible = "mediatek,mt6797-vdecsys", "syscon"; 236003f5d0cSMars Cheng reg = <0 0x16000000 0 0x10000>; 237003f5d0cSMars Cheng #clock-cells = <1>; 238003f5d0cSMars Cheng }; 239003f5d0cSMars Cheng 240003f5d0cSMars Cheng vencsys: venc_gcon@17000000 { 241003f5d0cSMars Cheng compatible = "mediatek,mt6797-vencsys", "syscon"; 242003f5d0cSMars Cheng reg = <0 0x17000000 0 0x1000>; 243003f5d0cSMars Cheng #clock-cells = <1>; 244003f5d0cSMars Cheng }; 245003f5d0cSMars Cheng 246464c510fSMars Cheng gic: interrupt-controller@19000000 { 247464c510fSMars Cheng compatible = "arm,gic-v3"; 248464c510fSMars Cheng #interrupt-cells = <3>; 249464c510fSMars Cheng interrupt-parent = <&gic>; 250464c510fSMars Cheng interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 251464c510fSMars Cheng interrupt-controller; 252464c510fSMars Cheng reg = <0 0x19000000 0 0x10000>, /* GICD */ 253464c510fSMars Cheng <0 0x19200000 0 0x200000>, /* GICR */ 254464c510fSMars Cheng <0 0x10240000 0 0x2000>; /* GICC */ 255464c510fSMars Cheng }; 256464c510fSMars Cheng}; 257