xref: /freebsd/sys/contrib/device-tree/src/arm64/mediatek/mt6779.dtsi (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
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