xref: /freebsd/sys/contrib/device-tree/src/arm64/mediatek/mt7981b.dtsi (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1*01950c46SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only OR MIT
2*01950c46SEmmanuel Vadot
3*01950c46SEmmanuel Vadot#include <dt-bindings/clock/mediatek,mt7981-clk.h>
4*01950c46SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
5*01950c46SEmmanuel Vadot
6*01950c46SEmmanuel Vadot/ {
7*01950c46SEmmanuel Vadot	compatible = "mediatek,mt7981b";
8*01950c46SEmmanuel Vadot	interrupt-parent = <&gic>;
9*01950c46SEmmanuel Vadot	#address-cells = <2>;
10*01950c46SEmmanuel Vadot	#size-cells = <2>;
11*01950c46SEmmanuel Vadot
12*01950c46SEmmanuel Vadot	cpus {
13*01950c46SEmmanuel Vadot		#address-cells = <1>;
14*01950c46SEmmanuel Vadot		#size-cells = <0>;
15*01950c46SEmmanuel Vadot
16*01950c46SEmmanuel Vadot		cpu@0 {
17*01950c46SEmmanuel Vadot			compatible = "arm,cortex-a53";
18*01950c46SEmmanuel Vadot			reg = <0x0>;
19*01950c46SEmmanuel Vadot			device_type = "cpu";
20*01950c46SEmmanuel Vadot			enable-method = "psci";
21*01950c46SEmmanuel Vadot		};
22*01950c46SEmmanuel Vadot
23*01950c46SEmmanuel Vadot		cpu@1 {
24*01950c46SEmmanuel Vadot			compatible = "arm,cortex-a53";
25*01950c46SEmmanuel Vadot			reg = <0x1>;
26*01950c46SEmmanuel Vadot			device_type = "cpu";
27*01950c46SEmmanuel Vadot			enable-method = "psci";
28*01950c46SEmmanuel Vadot		};
29*01950c46SEmmanuel Vadot	};
30*01950c46SEmmanuel Vadot
31*01950c46SEmmanuel Vadot	oscillator-40m {
32*01950c46SEmmanuel Vadot		compatible = "fixed-clock";
33*01950c46SEmmanuel Vadot		clock-frequency = <40000000>;
34*01950c46SEmmanuel Vadot		clock-output-names = "clkxtal";
35*01950c46SEmmanuel Vadot		#clock-cells = <0>;
36*01950c46SEmmanuel Vadot	};
37*01950c46SEmmanuel Vadot
38*01950c46SEmmanuel Vadot	psci {
39*01950c46SEmmanuel Vadot		compatible = "arm,psci-1.0";
40*01950c46SEmmanuel Vadot		method = "smc";
41*01950c46SEmmanuel Vadot	};
42*01950c46SEmmanuel Vadot
43*01950c46SEmmanuel Vadot	soc {
44*01950c46SEmmanuel Vadot		compatible = "simple-bus";
45*01950c46SEmmanuel Vadot		ranges;
46*01950c46SEmmanuel Vadot		#address-cells = <2>;
47*01950c46SEmmanuel Vadot		#size-cells = <2>;
48*01950c46SEmmanuel Vadot
49*01950c46SEmmanuel Vadot		gic: interrupt-controller@c000000 {
50*01950c46SEmmanuel Vadot			compatible = "arm,gic-v3";
51*01950c46SEmmanuel Vadot			reg = <0 0x0c000000 0 0x40000>,  /* GICD */
52*01950c46SEmmanuel Vadot			      <0 0x0c080000 0 0x200000>; /* GICR */
53*01950c46SEmmanuel Vadot			interrupt-parent = <&gic>;
54*01950c46SEmmanuel Vadot			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
55*01950c46SEmmanuel Vadot			interrupt-controller;
56*01950c46SEmmanuel Vadot			#interrupt-cells = <3>;
57*01950c46SEmmanuel Vadot		};
58*01950c46SEmmanuel Vadot
59*01950c46SEmmanuel Vadot		infracfg: clock-controller@10001000 {
60*01950c46SEmmanuel Vadot			compatible = "mediatek,mt7981-infracfg", "syscon";
61*01950c46SEmmanuel Vadot			reg = <0 0x10001000 0 0x1000>;
62*01950c46SEmmanuel Vadot			#clock-cells = <1>;
63*01950c46SEmmanuel Vadot		};
64*01950c46SEmmanuel Vadot
65*01950c46SEmmanuel Vadot		clock-controller@1001b000 {
66*01950c46SEmmanuel Vadot			compatible = "mediatek,mt7981-topckgen", "syscon";
67*01950c46SEmmanuel Vadot			reg = <0 0x1001b000 0 0x1000>;
68*01950c46SEmmanuel Vadot			#clock-cells = <1>;
69*01950c46SEmmanuel Vadot		};
70*01950c46SEmmanuel Vadot
71*01950c46SEmmanuel Vadot		clock-controller@1001e000 {
72*01950c46SEmmanuel Vadot			compatible = "mediatek,mt7981-apmixedsys";
73*01950c46SEmmanuel Vadot			reg = <0 0x1001e000 0 0x1000>;
74*01950c46SEmmanuel Vadot			#clock-cells = <1>;
75*01950c46SEmmanuel Vadot		};
76*01950c46SEmmanuel Vadot
77*01950c46SEmmanuel Vadot		pwm@10048000 {
78*01950c46SEmmanuel Vadot			compatible = "mediatek,mt7981-pwm";
79*01950c46SEmmanuel Vadot			reg = <0 0x10048000 0 0x1000>;
80*01950c46SEmmanuel Vadot			clocks = <&infracfg CLK_INFRA_PWM_STA>,
81*01950c46SEmmanuel Vadot				<&infracfg CLK_INFRA_PWM_HCK>,
82*01950c46SEmmanuel Vadot				<&infracfg CLK_INFRA_PWM1_CK>,
83*01950c46SEmmanuel Vadot				<&infracfg CLK_INFRA_PWM2_CK>,
84*01950c46SEmmanuel Vadot				<&infracfg CLK_INFRA_PWM3_CK>;
85*01950c46SEmmanuel Vadot			clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
86*01950c46SEmmanuel Vadot			#pwm-cells = <2>;
87*01950c46SEmmanuel Vadot		};
88*01950c46SEmmanuel Vadot
89*01950c46SEmmanuel Vadot		clock-controller@15000000 {
90*01950c46SEmmanuel Vadot			compatible = "mediatek,mt7981-ethsys", "syscon";
91*01950c46SEmmanuel Vadot			reg = <0 0x15000000 0 0x1000>;
92*01950c46SEmmanuel Vadot			#clock-cells = <1>;
93*01950c46SEmmanuel Vadot			#reset-cells = <1>;
94*01950c46SEmmanuel Vadot		};
95*01950c46SEmmanuel Vadot	};
96*01950c46SEmmanuel Vadot
97*01950c46SEmmanuel Vadot	timer {
98*01950c46SEmmanuel Vadot		compatible = "arm,armv8-timer";
99*01950c46SEmmanuel Vadot		interrupt-parent = <&gic>;
100*01950c46SEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
101*01950c46SEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
102*01950c46SEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
103*01950c46SEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
104*01950c46SEmmanuel Vadot	};
105*01950c46SEmmanuel Vadot};
106