15def4c47SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+ 25def4c47SEmmanuel Vadot/* 35def4c47SEmmanuel Vadot * Copyright (c) 2019 MediaTek Inc. 45def4c47SEmmanuel Vadot * Author: Mars.C <mars.cheng@mediatek.com> 55def4c47SEmmanuel Vadot * 65def4c47SEmmanuel Vadot */ 75def4c47SEmmanuel Vadot 85def4c47SEmmanuel Vadot#include <dt-bindings/clock/mt6779-clk.h> 95def4c47SEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h> 105def4c47SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 115def4c47SEmmanuel Vadot#include <dt-bindings/pinctrl/mt6779-pinfunc.h> 125def4c47SEmmanuel Vadot 135def4c47SEmmanuel Vadot/ { 145def4c47SEmmanuel Vadot compatible = "mediatek,mt6779"; 155def4c47SEmmanuel Vadot interrupt-parent = <&sysirq>; 165def4c47SEmmanuel Vadot #address-cells = <2>; 175def4c47SEmmanuel Vadot #size-cells = <2>; 185def4c47SEmmanuel Vadot 195def4c47SEmmanuel Vadot psci { 205def4c47SEmmanuel Vadot compatible = "arm,psci-0.2"; 215def4c47SEmmanuel Vadot method = "smc"; 225def4c47SEmmanuel Vadot }; 235def4c47SEmmanuel Vadot 245def4c47SEmmanuel Vadot cpus { 255def4c47SEmmanuel Vadot #address-cells = <1>; 265def4c47SEmmanuel Vadot #size-cells = <0>; 275def4c47SEmmanuel Vadot 285def4c47SEmmanuel Vadot cpu0: cpu@0 { 295def4c47SEmmanuel Vadot device_type = "cpu"; 305def4c47SEmmanuel Vadot compatible = "arm,cortex-a55"; 315def4c47SEmmanuel Vadot enable-method = "psci"; 325def4c47SEmmanuel Vadot reg = <0x000>; 335def4c47SEmmanuel Vadot }; 345def4c47SEmmanuel Vadot 355def4c47SEmmanuel Vadot cpu1: cpu@1 { 365def4c47SEmmanuel Vadot device_type = "cpu"; 375def4c47SEmmanuel Vadot compatible = "arm,cortex-a55"; 385def4c47SEmmanuel Vadot enable-method = "psci"; 395def4c47SEmmanuel Vadot reg = <0x100>; 405def4c47SEmmanuel Vadot }; 415def4c47SEmmanuel Vadot 425def4c47SEmmanuel Vadot cpu2: cpu@2 { 435def4c47SEmmanuel Vadot device_type = "cpu"; 445def4c47SEmmanuel Vadot compatible = "arm,cortex-a55"; 455def4c47SEmmanuel Vadot enable-method = "psci"; 465def4c47SEmmanuel Vadot reg = <0x200>; 475def4c47SEmmanuel Vadot }; 485def4c47SEmmanuel Vadot 495def4c47SEmmanuel Vadot cpu3: cpu@3 { 505def4c47SEmmanuel Vadot device_type = "cpu"; 515def4c47SEmmanuel Vadot compatible = "arm,cortex-a55"; 525def4c47SEmmanuel Vadot enable-method = "psci"; 535def4c47SEmmanuel Vadot reg = <0x300>; 545def4c47SEmmanuel Vadot }; 555def4c47SEmmanuel Vadot 565def4c47SEmmanuel Vadot cpu4: cpu@4 { 575def4c47SEmmanuel Vadot device_type = "cpu"; 585def4c47SEmmanuel Vadot compatible = "arm,cortex-a55"; 595def4c47SEmmanuel Vadot enable-method = "psci"; 605def4c47SEmmanuel Vadot reg = <0x400>; 615def4c47SEmmanuel Vadot }; 625def4c47SEmmanuel Vadot 635def4c47SEmmanuel Vadot cpu5: cpu@5 { 645def4c47SEmmanuel Vadot device_type = "cpu"; 655def4c47SEmmanuel Vadot compatible = "arm,cortex-a55"; 665def4c47SEmmanuel Vadot enable-method = "psci"; 675def4c47SEmmanuel Vadot reg = <0x500>; 685def4c47SEmmanuel Vadot }; 695def4c47SEmmanuel Vadot 705def4c47SEmmanuel Vadot cpu6: cpu@6 { 715def4c47SEmmanuel Vadot device_type = "cpu"; 725def4c47SEmmanuel Vadot compatible = "arm,cortex-a75"; 735def4c47SEmmanuel Vadot enable-method = "psci"; 745def4c47SEmmanuel Vadot reg = <0x600>; 755def4c47SEmmanuel Vadot }; 765def4c47SEmmanuel Vadot 775def4c47SEmmanuel Vadot cpu7: cpu@7 { 785def4c47SEmmanuel Vadot device_type = "cpu"; 795def4c47SEmmanuel Vadot compatible = "arm,cortex-a75"; 805def4c47SEmmanuel Vadot enable-method = "psci"; 815def4c47SEmmanuel Vadot reg = <0x700>; 825def4c47SEmmanuel Vadot }; 835def4c47SEmmanuel Vadot }; 845def4c47SEmmanuel Vadot 855def4c47SEmmanuel Vadot pmu { 865def4c47SEmmanuel Vadot compatible = "arm,armv8-pmuv3"; 875def4c47SEmmanuel Vadot interrupt-parent = <&gic>; 885def4c47SEmmanuel Vadot interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW 0>; 895def4c47SEmmanuel Vadot }; 905def4c47SEmmanuel Vadot 91*8bab661aSEmmanuel Vadot clk26m: oscillator-26m { 925def4c47SEmmanuel Vadot compatible = "fixed-clock"; 935def4c47SEmmanuel Vadot #clock-cells = <0>; 945def4c47SEmmanuel Vadot clock-frequency = <26000000>; 955def4c47SEmmanuel Vadot clock-output-names = "clk26m"; 965def4c47SEmmanuel Vadot }; 975def4c47SEmmanuel Vadot 98*8bab661aSEmmanuel Vadot clk32k: oscillator-32k { 995def4c47SEmmanuel Vadot compatible = "fixed-clock"; 1005def4c47SEmmanuel Vadot #clock-cells = <0>; 1015def4c47SEmmanuel Vadot clock-frequency = <32768>; 1025def4c47SEmmanuel Vadot clock-output-names = "clk32k"; 1035def4c47SEmmanuel Vadot }; 1045def4c47SEmmanuel Vadot 1055def4c47SEmmanuel Vadot timer { 1065def4c47SEmmanuel Vadot compatible = "arm,armv8-timer"; 1075def4c47SEmmanuel Vadot interrupt-parent = <&gic>; 1085def4c47SEmmanuel Vadot interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>, 1095def4c47SEmmanuel Vadot <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>, 1105def4c47SEmmanuel Vadot <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>, 1115def4c47SEmmanuel Vadot <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>; 1125def4c47SEmmanuel Vadot }; 1135def4c47SEmmanuel Vadot 1145def4c47SEmmanuel Vadot soc { 1155def4c47SEmmanuel Vadot #address-cells = <2>; 1165def4c47SEmmanuel Vadot #size-cells = <2>; 1175def4c47SEmmanuel Vadot compatible = "simple-bus"; 1185def4c47SEmmanuel Vadot ranges; 1195def4c47SEmmanuel Vadot 120*8bab661aSEmmanuel Vadot gic: interrupt-controller@c000000 { 1215def4c47SEmmanuel Vadot compatible = "arm,gic-v3"; 1225def4c47SEmmanuel Vadot #interrupt-cells = <4>; 1235def4c47SEmmanuel Vadot interrupt-parent = <&gic>; 1245def4c47SEmmanuel Vadot interrupt-controller; 1255def4c47SEmmanuel Vadot reg = <0 0x0c000000 0 0x40000>, /* GICD */ 1265def4c47SEmmanuel Vadot <0 0x0c040000 0 0x200000>; /* GICR */ 1275def4c47SEmmanuel Vadot interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>; 1285def4c47SEmmanuel Vadot 1295def4c47SEmmanuel Vadot ppi-partitions { 1305def4c47SEmmanuel Vadot ppi_cluster0: interrupt-partition-0 { 1315def4c47SEmmanuel Vadot affinity = <&cpu0 &cpu1 \ 1325def4c47SEmmanuel Vadot &cpu2 &cpu3 &cpu4 &cpu5>; 1335def4c47SEmmanuel Vadot }; 1345def4c47SEmmanuel Vadot ppi_cluster1: interrupt-partition-1 { 1355def4c47SEmmanuel Vadot affinity = <&cpu6 &cpu7>; 1365def4c47SEmmanuel Vadot }; 1375def4c47SEmmanuel Vadot }; 1385def4c47SEmmanuel Vadot 1395def4c47SEmmanuel Vadot }; 1405def4c47SEmmanuel Vadot 141*8bab661aSEmmanuel Vadot sysirq: intpol-controller@c53a650 { 1425def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-sysirq", 1435def4c47SEmmanuel Vadot "mediatek,mt6577-sysirq"; 1445def4c47SEmmanuel Vadot interrupt-controller; 1455def4c47SEmmanuel Vadot #interrupt-cells = <3>; 1465def4c47SEmmanuel Vadot interrupt-parent = <&gic>; 1475def4c47SEmmanuel Vadot reg = <0 0x0c53a650 0 0x50>; 1485def4c47SEmmanuel Vadot }; 1495def4c47SEmmanuel Vadot 1505def4c47SEmmanuel Vadot topckgen: clock-controller@10000000 { 1515def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-topckgen", "syscon"; 1525def4c47SEmmanuel Vadot reg = <0 0x10000000 0 0x1000>; 1535def4c47SEmmanuel Vadot #clock-cells = <1>; 1545def4c47SEmmanuel Vadot }; 1555def4c47SEmmanuel Vadot 1565def4c47SEmmanuel Vadot infracfg_ao: clock-controller@10001000 { 1575def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-infracfg_ao", "syscon"; 1585def4c47SEmmanuel Vadot reg = <0 0x10001000 0 0x1000>; 1595def4c47SEmmanuel Vadot #clock-cells = <1>; 1605def4c47SEmmanuel Vadot }; 1615def4c47SEmmanuel Vadot 1625def4c47SEmmanuel Vadot pio: pinctrl@10005000 { 163*8bab661aSEmmanuel Vadot compatible = "mediatek,mt6779-pinctrl"; 1645def4c47SEmmanuel Vadot reg = <0 0x10005000 0 0x1000>, 1655def4c47SEmmanuel Vadot <0 0x11c20000 0 0x1000>, 1665def4c47SEmmanuel Vadot <0 0x11d10000 0 0x1000>, 1675def4c47SEmmanuel Vadot <0 0x11e20000 0 0x1000>, 1685def4c47SEmmanuel Vadot <0 0x11e70000 0 0x1000>, 1695def4c47SEmmanuel Vadot <0 0x11ea0000 0 0x1000>, 1705def4c47SEmmanuel Vadot <0 0x11f20000 0 0x1000>, 1715def4c47SEmmanuel Vadot <0 0x11f30000 0 0x1000>, 1725def4c47SEmmanuel Vadot <0 0x1000b000 0 0x1000>; 1735def4c47SEmmanuel Vadot reg-names = "gpio", "iocfg_rm", 1745def4c47SEmmanuel Vadot "iocfg_br", "iocfg_lm", 1755def4c47SEmmanuel Vadot "iocfg_lb", "iocfg_rt", 1765def4c47SEmmanuel Vadot "iocfg_lt", "iocfg_tl", 1775def4c47SEmmanuel Vadot "eint"; 1785def4c47SEmmanuel Vadot gpio-controller; 1795def4c47SEmmanuel Vadot #gpio-cells = <2>; 1805def4c47SEmmanuel Vadot gpio-ranges = <&pio 0 0 210>; 1815def4c47SEmmanuel Vadot interrupt-controller; 1825def4c47SEmmanuel Vadot #interrupt-cells = <2>; 1835def4c47SEmmanuel Vadot interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>; 1845def4c47SEmmanuel Vadot }; 1855def4c47SEmmanuel Vadot 1865def4c47SEmmanuel Vadot apmixed: clock-controller@1000c000 { 1875def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-apmixed", "syscon"; 1885def4c47SEmmanuel Vadot reg = <0 0x1000c000 0 0xe00>; 1895def4c47SEmmanuel Vadot #clock-cells = <1>; 1905def4c47SEmmanuel Vadot }; 1915def4c47SEmmanuel Vadot 1925def4c47SEmmanuel Vadot pwrap: pwrap@1000d000 { 1935def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-pwrap"; 1945def4c47SEmmanuel Vadot reg = <0 0x1000d000 0 0x1000>; 1955def4c47SEmmanuel Vadot reg-names = "pwrap"; 1965def4c47SEmmanuel Vadot interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>; 1975def4c47SEmmanuel Vadot clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_PMIC_AP>; 1985def4c47SEmmanuel Vadot clock-names = "spi", "wrap"; 1995def4c47SEmmanuel Vadot }; 2005def4c47SEmmanuel Vadot 2015def4c47SEmmanuel Vadot devapc: devapc@10207000 { 2025def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-devapc"; 2035def4c47SEmmanuel Vadot reg = <0 0x10207000 0 0x1000>; 2045def4c47SEmmanuel Vadot interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_LOW>; 2055def4c47SEmmanuel Vadot clocks = <&infracfg_ao CLK_INFRA_DEVICE_APC>; 2065def4c47SEmmanuel Vadot clock-names = "devapc-infra-clock"; 2075def4c47SEmmanuel Vadot }; 2085def4c47SEmmanuel Vadot 2095def4c47SEmmanuel Vadot uart0: serial@11002000 { 2105def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-uart", 2115def4c47SEmmanuel Vadot "mediatek,mt6577-uart"; 2125def4c47SEmmanuel Vadot reg = <0 0x11002000 0 0x400>; 2135def4c47SEmmanuel Vadot interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_LOW>; 2145def4c47SEmmanuel Vadot clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_UART0>; 2155def4c47SEmmanuel Vadot clock-names = "baud", "bus"; 2165def4c47SEmmanuel Vadot status = "disabled"; 2175def4c47SEmmanuel Vadot }; 2185def4c47SEmmanuel Vadot 2195def4c47SEmmanuel Vadot uart1: serial@11003000 { 2205def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-uart", 2215def4c47SEmmanuel Vadot "mediatek,mt6577-uart"; 2225def4c47SEmmanuel Vadot reg = <0 0x11003000 0 0x400>; 2235def4c47SEmmanuel Vadot interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_LOW>; 2245def4c47SEmmanuel Vadot clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_UART1>; 2255def4c47SEmmanuel Vadot clock-names = "baud", "bus"; 2265def4c47SEmmanuel Vadot status = "disabled"; 2275def4c47SEmmanuel Vadot }; 2285def4c47SEmmanuel Vadot 2295def4c47SEmmanuel Vadot uart2: serial@11004000 { 2305def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-uart", 2315def4c47SEmmanuel Vadot "mediatek,mt6577-uart"; 2325def4c47SEmmanuel Vadot reg = <0 0x11004000 0 0x400>; 2335def4c47SEmmanuel Vadot interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_LOW>; 2345def4c47SEmmanuel Vadot clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_UART2>; 2355def4c47SEmmanuel Vadot clock-names = "baud", "bus"; 2365def4c47SEmmanuel Vadot status = "disabled"; 2375def4c47SEmmanuel Vadot }; 2385def4c47SEmmanuel Vadot 2395def4c47SEmmanuel Vadot audio: clock-controller@11210000 { 2405def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-audio", "syscon"; 2415def4c47SEmmanuel Vadot reg = <0 0x11210000 0 0x1000>; 2425def4c47SEmmanuel Vadot #clock-cells = <1>; 2435def4c47SEmmanuel Vadot }; 2445def4c47SEmmanuel Vadot 2455def4c47SEmmanuel Vadot mfgcfg: clock-controller@13fbf000 { 2465def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-mfgcfg", "syscon"; 2475def4c47SEmmanuel Vadot reg = <0 0x13fbf000 0 0x1000>; 2485def4c47SEmmanuel Vadot #clock-cells = <1>; 2495def4c47SEmmanuel Vadot }; 2505def4c47SEmmanuel Vadot 2515def4c47SEmmanuel Vadot mmsys: syscon@14000000 { 2525def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-mmsys", "syscon"; 2535def4c47SEmmanuel Vadot reg = <0 0x14000000 0 0x1000>; 2545def4c47SEmmanuel Vadot #clock-cells = <1>; 2555def4c47SEmmanuel Vadot }; 2565def4c47SEmmanuel Vadot 2575def4c47SEmmanuel Vadot imgsys: clock-controller@15020000 { 2585def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-imgsys", "syscon"; 2595def4c47SEmmanuel Vadot reg = <0 0x15020000 0 0x1000>; 2605def4c47SEmmanuel Vadot #clock-cells = <1>; 2615def4c47SEmmanuel Vadot }; 2625def4c47SEmmanuel Vadot 2635def4c47SEmmanuel Vadot vdecsys: clock-controller@16000000 { 2645def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-vdecsys", "syscon"; 2655def4c47SEmmanuel Vadot reg = <0 0x16000000 0 0x1000>; 2665def4c47SEmmanuel Vadot #clock-cells = <1>; 2675def4c47SEmmanuel Vadot }; 2685def4c47SEmmanuel Vadot 2695def4c47SEmmanuel Vadot vencsys: clock-controller@17000000 { 2705def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-vencsys", "syscon"; 2715def4c47SEmmanuel Vadot reg = <0 0x17000000 0 0x1000>; 2725def4c47SEmmanuel Vadot #clock-cells = <1>; 2735def4c47SEmmanuel Vadot }; 2745def4c47SEmmanuel Vadot 2755def4c47SEmmanuel Vadot camsys: clock-controller@1a000000 { 2765def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-camsys", "syscon"; 2775def4c47SEmmanuel Vadot reg = <0 0x1a000000 0 0x10000>; 2785def4c47SEmmanuel Vadot #clock-cells = <1>; 2795def4c47SEmmanuel Vadot }; 2805def4c47SEmmanuel Vadot 2815def4c47SEmmanuel Vadot ipesys: clock-controller@1b000000 { 2825def4c47SEmmanuel Vadot compatible = "mediatek,mt6779-ipesys", "syscon"; 2835def4c47SEmmanuel Vadot reg = <0 0x1b000000 0 0x1000>; 2845def4c47SEmmanuel Vadot #clock-cells = <1>; 2855def4c47SEmmanuel Vadot }; 2865def4c47SEmmanuel Vadot 2875def4c47SEmmanuel Vadot }; 2885def4c47SEmmanuel Vadot}; 289