xref: /linux/arch/arm64/boot/dts/mediatek/mt7981b.dtsi (revision c3e87229b0fd8917af8dad6af94744c94929ed95)
1cf294275SRafał Miłecki// SPDX-License-Identifier: GPL-2.0-only OR MIT
2cf294275SRafał Miłecki
3cf294275SRafał Miłecki#include <dt-bindings/clock/mediatek,mt7981-clk.h>
4cf294275SRafał Miłecki#include <dt-bindings/interrupt-controller/arm-gic.h>
58f5a9d6bSRafał Miłecki#include <dt-bindings/reset/mt7986-resets.h>
6cf294275SRafał Miłecki
7cf294275SRafał Miłecki/ {
8cf294275SRafał Miłecki	compatible = "mediatek,mt7981b";
9cf294275SRafał Miłecki	interrupt-parent = <&gic>;
10cf294275SRafał Miłecki	#address-cells = <2>;
11cf294275SRafał Miłecki	#size-cells = <2>;
12cf294275SRafał Miłecki
13cf294275SRafał Miłecki	cpus {
14cf294275SRafał Miłecki		#address-cells = <1>;
15cf294275SRafał Miłecki		#size-cells = <0>;
16cf294275SRafał Miłecki
17cf294275SRafał Miłecki		cpu@0 {
18cf294275SRafał Miłecki			compatible = "arm,cortex-a53";
19cf294275SRafał Miłecki			reg = <0x0>;
20cf294275SRafał Miłecki			device_type = "cpu";
21cf294275SRafał Miłecki			enable-method = "psci";
22cf294275SRafał Miłecki		};
23cf294275SRafał Miłecki
24cf294275SRafał Miłecki		cpu@1 {
25cf294275SRafał Miłecki			compatible = "arm,cortex-a53";
26cf294275SRafał Miłecki			reg = <0x1>;
27cf294275SRafał Miłecki			device_type = "cpu";
28cf294275SRafał Miłecki			enable-method = "psci";
29cf294275SRafał Miłecki		};
30cf294275SRafał Miłecki	};
31cf294275SRafał Miłecki
32cf294275SRafał Miłecki	oscillator-40m {
33cf294275SRafał Miłecki		compatible = "fixed-clock";
34cf294275SRafał Miłecki		clock-frequency = <40000000>;
35cf294275SRafał Miłecki		clock-output-names = "clkxtal";
36cf294275SRafał Miłecki		#clock-cells = <0>;
37cf294275SRafał Miłecki	};
38cf294275SRafał Miłecki
39cf294275SRafał Miłecki	psci {
40cf294275SRafał Miłecki		compatible = "arm,psci-1.0";
41cf294275SRafał Miłecki		method = "smc";
42cf294275SRafał Miłecki	};
43cf294275SRafał Miłecki
44cf294275SRafał Miłecki	soc {
45cf294275SRafał Miłecki		compatible = "simple-bus";
46cf294275SRafał Miłecki		ranges;
47cf294275SRafał Miłecki		#address-cells = <2>;
48cf294275SRafał Miłecki		#size-cells = <2>;
49cf294275SRafał Miłecki
50cf294275SRafał Miłecki		gic: interrupt-controller@c000000 {
51cf294275SRafał Miłecki			compatible = "arm,gic-v3";
52cf294275SRafał Miłecki			reg = <0 0x0c000000 0 0x40000>,  /* GICD */
53cf294275SRafał Miłecki			      <0 0x0c080000 0 0x200000>; /* GICR */
54cf294275SRafał Miłecki			interrupt-parent = <&gic>;
55cf294275SRafał Miłecki			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
56cf294275SRafał Miłecki			interrupt-controller;
57cf294275SRafał Miłecki			#interrupt-cells = <3>;
58cf294275SRafał Miłecki		};
59cf294275SRafał Miłecki
60cf294275SRafał Miłecki		infracfg: clock-controller@10001000 {
61cf294275SRafał Miłecki			compatible = "mediatek,mt7981-infracfg", "syscon";
62cf294275SRafał Miłecki			reg = <0 0x10001000 0 0x1000>;
63cf294275SRafał Miłecki			#clock-cells = <1>;
64cf294275SRafał Miłecki		};
65cf294275SRafał Miłecki
668f5a9d6bSRafał Miłecki		topckgen: clock-controller@1001b000 {
67cf294275SRafał Miłecki			compatible = "mediatek,mt7981-topckgen", "syscon";
68cf294275SRafał Miłecki			reg = <0 0x1001b000 0 0x1000>;
69cf294275SRafał Miłecki			#clock-cells = <1>;
70cf294275SRafał Miłecki		};
71cf294275SRafał Miłecki
728f5a9d6bSRafał Miłecki		watchdog: watchdog@1001c000 {
738f5a9d6bSRafał Miłecki			compatible = "mediatek,mt7986-wdt";
748f5a9d6bSRafał Miłecki			reg = <0 0x1001c000 0 0x1000>;
758f5a9d6bSRafał Miłecki			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
768f5a9d6bSRafał Miłecki			#reset-cells = <1>;
778f5a9d6bSRafał Miłecki		};
788f5a9d6bSRafał Miłecki
79cf294275SRafał Miłecki		clock-controller@1001e000 {
80cf294275SRafał Miłecki			compatible = "mediatek,mt7981-apmixedsys";
81cf294275SRafał Miłecki			reg = <0 0x1001e000 0 0x1000>;
82cf294275SRafał Miłecki			#clock-cells = <1>;
83cf294275SRafał Miłecki		};
84cf294275SRafał Miłecki
85cf294275SRafał Miłecki		pwm@10048000 {
86cf294275SRafał Miłecki			compatible = "mediatek,mt7981-pwm";
87cf294275SRafał Miłecki			reg = <0 0x10048000 0 0x1000>;
88cf294275SRafał Miłecki			clocks = <&infracfg CLK_INFRA_PWM_STA>,
89cf294275SRafał Miłecki				 <&infracfg CLK_INFRA_PWM_HCK>,
90cf294275SRafał Miłecki				 <&infracfg CLK_INFRA_PWM1_CK>,
91cf294275SRafał Miłecki				 <&infracfg CLK_INFRA_PWM2_CK>,
92cf294275SRafał Miłecki				 <&infracfg CLK_INFRA_PWM3_CK>;
93cf294275SRafał Miłecki			clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
94cf294275SRafał Miłecki			#pwm-cells = <2>;
95cf294275SRafał Miłecki		};
96cf294275SRafał Miłecki
97*c3e87229SRafał Miłecki		i2c@11007000 {
98*c3e87229SRafał Miłecki			compatible = "mediatek,mt7981-i2c";
99*c3e87229SRafał Miłecki			reg = <0 0x11007000 0 0x1000>,
100*c3e87229SRafał Miłecki			      <0 0x10217080 0 0x80>;
101*c3e87229SRafał Miłecki			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
102*c3e87229SRafał Miłecki			clocks = <&infracfg CLK_INFRA_I2C0_CK>,
103*c3e87229SRafał Miłecki				 <&infracfg CLK_INFRA_AP_DMA_CK>,
104*c3e87229SRafał Miłecki				 <&infracfg CLK_INFRA_I2C_MCK_CK>,
105*c3e87229SRafał Miłecki				 <&infracfg CLK_INFRA_I2C_PCK_CK>;
106*c3e87229SRafał Miłecki			clock-names = "main", "dma", "arb", "pmic";
107*c3e87229SRafał Miłecki			#address-cells = <1>;
108*c3e87229SRafał Miłecki			#size-cells = <0>;
109*c3e87229SRafał Miłecki			status = "disabled";
110*c3e87229SRafał Miłecki		};
111*c3e87229SRafał Miłecki
11262b24c7fSRafał Miłecki		pio: pinctrl@11d00000 {
11362b24c7fSRafał Miłecki			compatible = "mediatek,mt7981-pinctrl";
11462b24c7fSRafał Miłecki			reg = <0 0x11d00000 0 0x1000>,
11562b24c7fSRafał Miłecki			      <0 0x11c00000 0 0x1000>,
11662b24c7fSRafał Miłecki			      <0 0x11c10000 0 0x1000>,
11762b24c7fSRafał Miłecki			      <0 0x11d20000 0 0x1000>,
11862b24c7fSRafał Miłecki			      <0 0x11e00000 0 0x1000>,
11962b24c7fSRafał Miłecki			      <0 0x11e20000 0 0x1000>,
12062b24c7fSRafał Miłecki			      <0 0x11f00000 0 0x1000>,
12162b24c7fSRafał Miłecki			      <0 0x11f10000 0 0x1000>,
12262b24c7fSRafał Miłecki			      <0 0x1000b000 0 0x1000>;
12362b24c7fSRafał Miłecki			reg-names = "gpio", "iocfg_rt", "iocfg_rm", "iocfg_rb", "iocfg_lb",
12462b24c7fSRafał Miłecki				    "iocfg_bl", "iocfg_tm", "iocfg_tl", "eint";
12562b24c7fSRafał Miłecki			interrupt-controller;
12662b24c7fSRafał Miłecki			interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
12762b24c7fSRafał Miłecki			interrupt-parent = <&gic>;
12862b24c7fSRafał Miłecki			gpio-ranges = <&pio 0 0 56>;
12962b24c7fSRafał Miłecki			gpio-controller;
13062b24c7fSRafał Miłecki			#gpio-cells = <2>;
13162b24c7fSRafał Miłecki			#interrupt-cells = <2>;
13262b24c7fSRafał Miłecki		};
13362b24c7fSRafał Miłecki
134454880d6SRafał Miłecki		efuse@11f20000 {
135454880d6SRafał Miłecki			compatible = "mediatek,mt7981-efuse", "mediatek,efuse";
136454880d6SRafał Miłecki			reg = <0 0x11f20000 0 0x1000>;
137454880d6SRafał Miłecki			#address-cells = <1>;
138454880d6SRafał Miłecki			#size-cells = <1>;
139454880d6SRafał Miłecki		};
140454880d6SRafał Miłecki
141cf294275SRafał Miłecki		clock-controller@15000000 {
142cf294275SRafał Miłecki			compatible = "mediatek,mt7981-ethsys", "syscon";
143cf294275SRafał Miłecki			reg = <0 0x15000000 0 0x1000>;
144cf294275SRafał Miłecki			#clock-cells = <1>;
145cf294275SRafał Miłecki			#reset-cells = <1>;
146cf294275SRafał Miłecki		};
1478f5a9d6bSRafał Miłecki
1488f5a9d6bSRafał Miłecki		wifi@18000000 {
1498f5a9d6bSRafał Miłecki			compatible = "mediatek,mt7981-wmac";
1508f5a9d6bSRafał Miłecki			reg = <0 0x18000000 0 0x1000000>,
1518f5a9d6bSRafał Miłecki			      <0 0x10003000 0 0x1000>,
1528f5a9d6bSRafał Miłecki			      <0 0x11d10000 0 0x1000>;
1538f5a9d6bSRafał Miłecki			interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
1548f5a9d6bSRafał Miłecki				     <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
1558f5a9d6bSRafał Miłecki				     <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
1568f5a9d6bSRafał Miłecki				     <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
1578f5a9d6bSRafał Miłecki			clocks = <&topckgen CLK_TOP_NETSYS_MCU_SEL>,
1588f5a9d6bSRafał Miłecki				 <&topckgen CLK_TOP_AP2CNN_HOST_SEL>;
1598f5a9d6bSRafał Miłecki			clock-names = "mcu", "ap2conn";
1608f5a9d6bSRafał Miłecki			resets = <&watchdog MT7986_TOPRGU_CONSYS_SW_RST>;
1618f5a9d6bSRafał Miłecki			reset-names = "consys";
1628f5a9d6bSRafał Miłecki		};
163cf294275SRafał Miłecki	};
164cf294275SRafał Miłecki
165cf294275SRafał Miłecki	timer {
166cf294275SRafał Miłecki		compatible = "arm,armv8-timer";
167cf294275SRafał Miłecki		interrupt-parent = <&gic>;
168cf294275SRafał Miłecki		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
169cf294275SRafał Miłecki			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
170cf294275SRafał Miłecki			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
171cf294275SRafał Miłecki			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
172cf294275SRafał Miłecki	};
173cf294275SRafał Miłecki};
174