14c7a6260SHanks Chen// SPDX-License-Identifier: GPL-2.0+ 24c7a6260SHanks Chen/* 34c7a6260SHanks Chen * Copyright (c) 2019 MediaTek Inc. 44c7a6260SHanks Chen * Author: Mars.C <mars.cheng@mediatek.com> 54c7a6260SHanks Chen * 64c7a6260SHanks Chen */ 74c7a6260SHanks Chen 84c7a6260SHanks Chen#include <dt-bindings/clock/mt6779-clk.h> 94c7a6260SHanks Chen#include <dt-bindings/interrupt-controller/irq.h> 104c7a6260SHanks Chen#include <dt-bindings/interrupt-controller/arm-gic.h> 114c7a6260SHanks Chen#include <dt-bindings/pinctrl/mt6779-pinfunc.h> 124c7a6260SHanks Chen 134c7a6260SHanks Chen/ { 144c7a6260SHanks Chen compatible = "mediatek,mt6779"; 154c7a6260SHanks Chen interrupt-parent = <&sysirq>; 164c7a6260SHanks Chen #address-cells = <2>; 174c7a6260SHanks Chen #size-cells = <2>; 184c7a6260SHanks Chen 194c7a6260SHanks Chen psci { 204c7a6260SHanks Chen compatible = "arm,psci-0.2"; 214c7a6260SHanks Chen method = "smc"; 224c7a6260SHanks Chen }; 234c7a6260SHanks Chen 244c7a6260SHanks Chen cpus { 254c7a6260SHanks Chen #address-cells = <1>; 264c7a6260SHanks Chen #size-cells = <0>; 274c7a6260SHanks Chen 284c7a6260SHanks Chen cpu0: cpu@0 { 294c7a6260SHanks Chen device_type = "cpu"; 304c7a6260SHanks Chen compatible = "arm,cortex-a55"; 314c7a6260SHanks Chen enable-method = "psci"; 324c7a6260SHanks Chen reg = <0x000>; 334c7a6260SHanks Chen }; 344c7a6260SHanks Chen 354c7a6260SHanks Chen cpu1: cpu@1 { 364c7a6260SHanks Chen device_type = "cpu"; 374c7a6260SHanks Chen compatible = "arm,cortex-a55"; 384c7a6260SHanks Chen enable-method = "psci"; 394c7a6260SHanks Chen reg = <0x100>; 404c7a6260SHanks Chen }; 414c7a6260SHanks Chen 424c7a6260SHanks Chen cpu2: cpu@2 { 434c7a6260SHanks Chen device_type = "cpu"; 444c7a6260SHanks Chen compatible = "arm,cortex-a55"; 454c7a6260SHanks Chen enable-method = "psci"; 464c7a6260SHanks Chen reg = <0x200>; 474c7a6260SHanks Chen }; 484c7a6260SHanks Chen 494c7a6260SHanks Chen cpu3: cpu@3 { 504c7a6260SHanks Chen device_type = "cpu"; 514c7a6260SHanks Chen compatible = "arm,cortex-a55"; 524c7a6260SHanks Chen enable-method = "psci"; 534c7a6260SHanks Chen reg = <0x300>; 544c7a6260SHanks Chen }; 554c7a6260SHanks Chen 564c7a6260SHanks Chen cpu4: cpu@4 { 574c7a6260SHanks Chen device_type = "cpu"; 584c7a6260SHanks Chen compatible = "arm,cortex-a55"; 594c7a6260SHanks Chen enable-method = "psci"; 604c7a6260SHanks Chen reg = <0x400>; 614c7a6260SHanks Chen }; 624c7a6260SHanks Chen 634c7a6260SHanks Chen cpu5: cpu@5 { 644c7a6260SHanks Chen device_type = "cpu"; 654c7a6260SHanks Chen compatible = "arm,cortex-a55"; 664c7a6260SHanks Chen enable-method = "psci"; 674c7a6260SHanks Chen reg = <0x500>; 684c7a6260SHanks Chen }; 694c7a6260SHanks Chen 704c7a6260SHanks Chen cpu6: cpu@6 { 714c7a6260SHanks Chen device_type = "cpu"; 724c7a6260SHanks Chen compatible = "arm,cortex-a75"; 734c7a6260SHanks Chen enable-method = "psci"; 744c7a6260SHanks Chen reg = <0x600>; 754c7a6260SHanks Chen }; 764c7a6260SHanks Chen 774c7a6260SHanks Chen cpu7: cpu@7 { 784c7a6260SHanks Chen device_type = "cpu"; 794c7a6260SHanks Chen compatible = "arm,cortex-a75"; 804c7a6260SHanks Chen enable-method = "psci"; 814c7a6260SHanks Chen reg = <0x700>; 824c7a6260SHanks Chen }; 834c7a6260SHanks Chen }; 844c7a6260SHanks Chen 854c7a6260SHanks Chen pmu { 864c7a6260SHanks Chen compatible = "arm,armv8-pmuv3"; 874c7a6260SHanks Chen interrupt-parent = <&gic>; 884c7a6260SHanks Chen interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW 0>; 894c7a6260SHanks Chen }; 904c7a6260SHanks Chen 91*4d759c52SAngeloGioacchino Del Regno clk26m: oscillator-26m { 924c7a6260SHanks Chen compatible = "fixed-clock"; 934c7a6260SHanks Chen #clock-cells = <0>; 944c7a6260SHanks Chen clock-frequency = <26000000>; 954c7a6260SHanks Chen clock-output-names = "clk26m"; 964c7a6260SHanks Chen }; 974c7a6260SHanks Chen 98*4d759c52SAngeloGioacchino Del Regno clk32k: oscillator-32k { 994c7a6260SHanks Chen compatible = "fixed-clock"; 1004c7a6260SHanks Chen #clock-cells = <0>; 1014c7a6260SHanks Chen clock-frequency = <32768>; 1024c7a6260SHanks Chen clock-output-names = "clk32k"; 1034c7a6260SHanks Chen }; 1044c7a6260SHanks Chen 1054c7a6260SHanks Chen timer { 1064c7a6260SHanks Chen compatible = "arm,armv8-timer"; 1074c7a6260SHanks Chen interrupt-parent = <&gic>; 1084c7a6260SHanks Chen interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>, 1094c7a6260SHanks Chen <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>, 1104c7a6260SHanks Chen <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>, 1114c7a6260SHanks Chen <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>; 1124c7a6260SHanks Chen }; 1134c7a6260SHanks Chen 1144c7a6260SHanks Chen soc { 1154c7a6260SHanks Chen #address-cells = <2>; 1164c7a6260SHanks Chen #size-cells = <2>; 1174c7a6260SHanks Chen compatible = "simple-bus"; 1184c7a6260SHanks Chen ranges; 1194c7a6260SHanks Chen 120*4d759c52SAngeloGioacchino Del Regno gic: interrupt-controller@c000000 { 1214c7a6260SHanks Chen compatible = "arm,gic-v3"; 1224c7a6260SHanks Chen #interrupt-cells = <4>; 1234c7a6260SHanks Chen interrupt-parent = <&gic>; 1244c7a6260SHanks Chen interrupt-controller; 1254c7a6260SHanks Chen reg = <0 0x0c000000 0 0x40000>, /* GICD */ 1264c7a6260SHanks Chen <0 0x0c040000 0 0x200000>; /* GICR */ 1274c7a6260SHanks Chen interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>; 1284c7a6260SHanks Chen 1294c7a6260SHanks Chen ppi-partitions { 1304c7a6260SHanks Chen ppi_cluster0: interrupt-partition-0 { 1314c7a6260SHanks Chen affinity = <&cpu0 &cpu1 \ 1324c7a6260SHanks Chen &cpu2 &cpu3 &cpu4 &cpu5>; 1334c7a6260SHanks Chen }; 1344c7a6260SHanks Chen ppi_cluster1: interrupt-partition-1 { 1354c7a6260SHanks Chen affinity = <&cpu6 &cpu7>; 1364c7a6260SHanks Chen }; 1374c7a6260SHanks Chen }; 1384c7a6260SHanks Chen 1394c7a6260SHanks Chen }; 1404c7a6260SHanks Chen 141*4d759c52SAngeloGioacchino Del Regno sysirq: intpol-controller@c53a650 { 1424c7a6260SHanks Chen compatible = "mediatek,mt6779-sysirq", 1434c7a6260SHanks Chen "mediatek,mt6577-sysirq"; 1444c7a6260SHanks Chen interrupt-controller; 1454c7a6260SHanks Chen #interrupt-cells = <3>; 1464c7a6260SHanks Chen interrupt-parent = <&gic>; 1474c7a6260SHanks Chen reg = <0 0x0c53a650 0 0x50>; 1484c7a6260SHanks Chen }; 1494c7a6260SHanks Chen 1504c7a6260SHanks Chen topckgen: clock-controller@10000000 { 1514c7a6260SHanks Chen compatible = "mediatek,mt6779-topckgen", "syscon"; 1524c7a6260SHanks Chen reg = <0 0x10000000 0 0x1000>; 1534c7a6260SHanks Chen #clock-cells = <1>; 1544c7a6260SHanks Chen }; 1554c7a6260SHanks Chen 1564c7a6260SHanks Chen infracfg_ao: clock-controller@10001000 { 1574c7a6260SHanks Chen compatible = "mediatek,mt6779-infracfg_ao", "syscon"; 1584c7a6260SHanks Chen reg = <0 0x10001000 0 0x1000>; 1594c7a6260SHanks Chen #clock-cells = <1>; 1604c7a6260SHanks Chen }; 1614c7a6260SHanks Chen 1624c7a6260SHanks Chen pio: pinctrl@10005000 { 163db962d0dSYassine Oudjana compatible = "mediatek,mt6779-pinctrl"; 1644c7a6260SHanks Chen reg = <0 0x10005000 0 0x1000>, 1654c7a6260SHanks Chen <0 0x11c20000 0 0x1000>, 1664c7a6260SHanks Chen <0 0x11d10000 0 0x1000>, 1674c7a6260SHanks Chen <0 0x11e20000 0 0x1000>, 1684c7a6260SHanks Chen <0 0x11e70000 0 0x1000>, 1694c7a6260SHanks Chen <0 0x11ea0000 0 0x1000>, 1704c7a6260SHanks Chen <0 0x11f20000 0 0x1000>, 1714c7a6260SHanks Chen <0 0x11f30000 0 0x1000>, 1724c7a6260SHanks Chen <0 0x1000b000 0 0x1000>; 1734c7a6260SHanks Chen reg-names = "gpio", "iocfg_rm", 1744c7a6260SHanks Chen "iocfg_br", "iocfg_lm", 1754c7a6260SHanks Chen "iocfg_lb", "iocfg_rt", 1764c7a6260SHanks Chen "iocfg_lt", "iocfg_tl", 1774c7a6260SHanks Chen "eint"; 1784c7a6260SHanks Chen gpio-controller; 1794c7a6260SHanks Chen #gpio-cells = <2>; 1804c7a6260SHanks Chen gpio-ranges = <&pio 0 0 210>; 1814c7a6260SHanks Chen interrupt-controller; 1824c7a6260SHanks Chen #interrupt-cells = <2>; 1834c7a6260SHanks Chen interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>; 1844c7a6260SHanks Chen }; 1854c7a6260SHanks Chen 1864c7a6260SHanks Chen apmixed: clock-controller@1000c000 { 1874c7a6260SHanks Chen compatible = "mediatek,mt6779-apmixed", "syscon"; 1884c7a6260SHanks Chen reg = <0 0x1000c000 0 0xe00>; 1894c7a6260SHanks Chen #clock-cells = <1>; 1904c7a6260SHanks Chen }; 1914c7a6260SHanks Chen 192b870c585SArgus Lin pwrap: pwrap@1000d000 { 193b870c585SArgus Lin compatible = "mediatek,mt6779-pwrap"; 194b870c585SArgus Lin reg = <0 0x1000d000 0 0x1000>; 195b870c585SArgus Lin reg-names = "pwrap"; 196b870c585SArgus Lin interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>; 197b870c585SArgus Lin clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_PMIC_AP>; 198b870c585SArgus Lin clock-names = "spi", "wrap"; 199b870c585SArgus Lin }; 200b870c585SArgus Lin 2013960a7a2SNeal Liu devapc: devapc@10207000 { 2023960a7a2SNeal Liu compatible = "mediatek,mt6779-devapc"; 2033960a7a2SNeal Liu reg = <0 0x10207000 0 0x1000>; 2043960a7a2SNeal Liu interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_LOW>; 2053960a7a2SNeal Liu clocks = <&infracfg_ao CLK_INFRA_DEVICE_APC>; 2063960a7a2SNeal Liu clock-names = "devapc-infra-clock"; 2073960a7a2SNeal Liu }; 2083960a7a2SNeal Liu 2094c7a6260SHanks Chen uart0: serial@11002000 { 2104c7a6260SHanks Chen compatible = "mediatek,mt6779-uart", 2114c7a6260SHanks Chen "mediatek,mt6577-uart"; 2124c7a6260SHanks Chen reg = <0 0x11002000 0 0x400>; 2134c7a6260SHanks Chen interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_LOW>; 2144c7a6260SHanks Chen clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_UART0>; 2154c7a6260SHanks Chen clock-names = "baud", "bus"; 2164c7a6260SHanks Chen status = "disabled"; 2174c7a6260SHanks Chen }; 2184c7a6260SHanks Chen 2194c7a6260SHanks Chen uart1: serial@11003000 { 2204c7a6260SHanks Chen compatible = "mediatek,mt6779-uart", 2214c7a6260SHanks Chen "mediatek,mt6577-uart"; 2224c7a6260SHanks Chen reg = <0 0x11003000 0 0x400>; 2234c7a6260SHanks Chen interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_LOW>; 2244c7a6260SHanks Chen clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_UART1>; 2254c7a6260SHanks Chen clock-names = "baud", "bus"; 2264c7a6260SHanks Chen status = "disabled"; 2274c7a6260SHanks Chen }; 2284c7a6260SHanks Chen 2294c7a6260SHanks Chen uart2: serial@11004000 { 2304c7a6260SHanks Chen compatible = "mediatek,mt6779-uart", 2314c7a6260SHanks Chen "mediatek,mt6577-uart"; 2324c7a6260SHanks Chen reg = <0 0x11004000 0 0x400>; 2334c7a6260SHanks Chen interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_LOW>; 2344c7a6260SHanks Chen clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_UART2>; 2354c7a6260SHanks Chen clock-names = "baud", "bus"; 2364c7a6260SHanks Chen status = "disabled"; 2374c7a6260SHanks Chen }; 2384c7a6260SHanks Chen 2394c7a6260SHanks Chen audio: clock-controller@11210000 { 2404c7a6260SHanks Chen compatible = "mediatek,mt6779-audio", "syscon"; 2414c7a6260SHanks Chen reg = <0 0x11210000 0 0x1000>; 2424c7a6260SHanks Chen #clock-cells = <1>; 2434c7a6260SHanks Chen }; 2444c7a6260SHanks Chen 2454c7a6260SHanks Chen mfgcfg: clock-controller@13fbf000 { 2464c7a6260SHanks Chen compatible = "mediatek,mt6779-mfgcfg", "syscon"; 2474c7a6260SHanks Chen reg = <0 0x13fbf000 0 0x1000>; 2484c7a6260SHanks Chen #clock-cells = <1>; 2494c7a6260SHanks Chen }; 2504c7a6260SHanks Chen 2514c7a6260SHanks Chen mmsys: syscon@14000000 { 2524c7a6260SHanks Chen compatible = "mediatek,mt6779-mmsys", "syscon"; 2534c7a6260SHanks Chen reg = <0 0x14000000 0 0x1000>; 2544c7a6260SHanks Chen #clock-cells = <1>; 2554c7a6260SHanks Chen }; 2564c7a6260SHanks Chen 2574c7a6260SHanks Chen imgsys: clock-controller@15020000 { 2584c7a6260SHanks Chen compatible = "mediatek,mt6779-imgsys", "syscon"; 2594c7a6260SHanks Chen reg = <0 0x15020000 0 0x1000>; 2604c7a6260SHanks Chen #clock-cells = <1>; 2614c7a6260SHanks Chen }; 2624c7a6260SHanks Chen 2634c7a6260SHanks Chen vdecsys: clock-controller@16000000 { 2644c7a6260SHanks Chen compatible = "mediatek,mt6779-vdecsys", "syscon"; 2654c7a6260SHanks Chen reg = <0 0x16000000 0 0x1000>; 2664c7a6260SHanks Chen #clock-cells = <1>; 2674c7a6260SHanks Chen }; 2684c7a6260SHanks Chen 2694c7a6260SHanks Chen vencsys: clock-controller@17000000 { 2704c7a6260SHanks Chen compatible = "mediatek,mt6779-vencsys", "syscon"; 2714c7a6260SHanks Chen reg = <0 0x17000000 0 0x1000>; 2724c7a6260SHanks Chen #clock-cells = <1>; 2734c7a6260SHanks Chen }; 2744c7a6260SHanks Chen 2754c7a6260SHanks Chen camsys: clock-controller@1a000000 { 2764c7a6260SHanks Chen compatible = "mediatek,mt6779-camsys", "syscon"; 2774c7a6260SHanks Chen reg = <0 0x1a000000 0 0x10000>; 2784c7a6260SHanks Chen #clock-cells = <1>; 2794c7a6260SHanks Chen }; 2804c7a6260SHanks Chen 2814c7a6260SHanks Chen ipesys: clock-controller@1b000000 { 2824c7a6260SHanks Chen compatible = "mediatek,mt6779-ipesys", "syscon"; 2834c7a6260SHanks Chen reg = <0 0x1b000000 0 0x1000>; 2844c7a6260SHanks Chen #clock-cells = <1>; 2854c7a6260SHanks Chen }; 2864c7a6260SHanks Chen 2874c7a6260SHanks Chen }; 2884c7a6260SHanks Chen}; 289