xref: /arm-trusted-firmware/fdts/fvp-foundation-motherboard.dtsi (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu/*
2*91f16700Schasinglulu * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu *
4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu */
6*91f16700Schasinglulu
7*91f16700Schasinglulu	motherboard {
8*91f16700Schasinglulu		arm,v2m-memory-map = "rs1";
9*91f16700Schasinglulu		compatible = "arm,vexpress,v2m-p1", "simple-bus";
10*91f16700Schasinglulu		#address-cells = <2>; /* SMB chipselect number and offset */
11*91f16700Schasinglulu		#size-cells = <1>;
12*91f16700Schasinglulu		ranges;
13*91f16700Schasinglulu
14*91f16700Schasinglulu		ethernet@2,02000000 {
15*91f16700Schasinglulu			compatible = "smsc,lan91c111";
16*91f16700Schasinglulu			reg = <2 0x02000000 0x10000>;
17*91f16700Schasinglulu			interrupts = <0 15 4>;
18*91f16700Schasinglulu		};
19*91f16700Schasinglulu
20*91f16700Schasinglulu		v2m_clk24mhz: clk24mhz {
21*91f16700Schasinglulu			compatible = "fixed-clock";
22*91f16700Schasinglulu			#clock-cells = <0>;
23*91f16700Schasinglulu			clock-frequency = <24000000>;
24*91f16700Schasinglulu			clock-output-names = "v2m:clk24mhz";
25*91f16700Schasinglulu		};
26*91f16700Schasinglulu
27*91f16700Schasinglulu		v2m_refclk1mhz: refclk1mhz {
28*91f16700Schasinglulu			compatible = "fixed-clock";
29*91f16700Schasinglulu			#clock-cells = <0>;
30*91f16700Schasinglulu			clock-frequency = <1000000>;
31*91f16700Schasinglulu			clock-output-names = "v2m:refclk1mhz";
32*91f16700Schasinglulu		};
33*91f16700Schasinglulu
34*91f16700Schasinglulu		v2m_refclk32khz: refclk32khz {
35*91f16700Schasinglulu			compatible = "fixed-clock";
36*91f16700Schasinglulu			#clock-cells = <0>;
37*91f16700Schasinglulu			clock-frequency = <32768>;
38*91f16700Schasinglulu			clock-output-names = "v2m:refclk32khz";
39*91f16700Schasinglulu		};
40*91f16700Schasinglulu
41*91f16700Schasinglulu		iofpga@3,00000000 {
42*91f16700Schasinglulu			compatible = "arm,amba-bus", "simple-bus";
43*91f16700Schasinglulu			#address-cells = <1>;
44*91f16700Schasinglulu			#size-cells = <1>;
45*91f16700Schasinglulu			ranges = <0 3 0 0x200000>;
46*91f16700Schasinglulu
47*91f16700Schasinglulu			v2m_sysreg: sysreg@10000 {
48*91f16700Schasinglulu				compatible = "arm,vexpress-sysreg";
49*91f16700Schasinglulu				reg = <0x010000 0x1000>;
50*91f16700Schasinglulu				gpio-controller;
51*91f16700Schasinglulu				#gpio-cells = <2>;
52*91f16700Schasinglulu			};
53*91f16700Schasinglulu
54*91f16700Schasinglulu			v2m_sysctl: sysctl@20000 {
55*91f16700Schasinglulu				compatible = "arm,sp810", "arm,primecell";
56*91f16700Schasinglulu				reg = <0x020000 0x1000>;
57*91f16700Schasinglulu				clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>;
58*91f16700Schasinglulu				clock-names = "refclk", "timclk", "apb_pclk";
59*91f16700Schasinglulu				#clock-cells = <1>;
60*91f16700Schasinglulu				clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
61*91f16700Schasinglulu			};
62*91f16700Schasinglulu
63*91f16700Schasinglulu			v2m_serial0: uart@90000 {
64*91f16700Schasinglulu				compatible = "arm,pl011", "arm,primecell";
65*91f16700Schasinglulu				reg = <0x090000 0x1000>;
66*91f16700Schasinglulu				interrupts = <0 5 4>;
67*91f16700Schasinglulu				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
68*91f16700Schasinglulu				clock-names = "uartclk", "apb_pclk";
69*91f16700Schasinglulu			};
70*91f16700Schasinglulu
71*91f16700Schasinglulu			v2m_serial1: uart@a0000 {
72*91f16700Schasinglulu				compatible = "arm,pl011", "arm,primecell";
73*91f16700Schasinglulu				reg = <0x0a0000 0x1000>;
74*91f16700Schasinglulu				interrupts = <0 6 4>;
75*91f16700Schasinglulu				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
76*91f16700Schasinglulu				clock-names = "uartclk", "apb_pclk";
77*91f16700Schasinglulu			};
78*91f16700Schasinglulu
79*91f16700Schasinglulu			v2m_serial2: uart@b0000 {
80*91f16700Schasinglulu				compatible = "arm,pl011", "arm,primecell";
81*91f16700Schasinglulu				reg = <0x0b0000 0x1000>;
82*91f16700Schasinglulu				interrupts = <0 7 4>;
83*91f16700Schasinglulu				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
84*91f16700Schasinglulu				clock-names = "uartclk", "apb_pclk";
85*91f16700Schasinglulu			};
86*91f16700Schasinglulu
87*91f16700Schasinglulu			v2m_serial3: uart@c0000 {
88*91f16700Schasinglulu				compatible = "arm,pl011", "arm,primecell";
89*91f16700Schasinglulu				reg = <0x0c0000 0x1000>;
90*91f16700Schasinglulu				interrupts = <0 8 4>;
91*91f16700Schasinglulu				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
92*91f16700Schasinglulu				clock-names = "uartclk", "apb_pclk";
93*91f16700Schasinglulu			};
94*91f16700Schasinglulu
95*91f16700Schasinglulu			wdt@f0000 {
96*91f16700Schasinglulu				compatible = "arm,sp805", "arm,primecell";
97*91f16700Schasinglulu				reg = <0x0f0000 0x1000>;
98*91f16700Schasinglulu				interrupts = <0 0 4>;
99*91f16700Schasinglulu				clocks = <&v2m_refclk32khz>, <&v2m_clk24mhz>;
100*91f16700Schasinglulu				clock-names = "wdogclk", "apb_pclk";
101*91f16700Schasinglulu			};
102*91f16700Schasinglulu
103*91f16700Schasinglulu			v2m_timer01: timer@110000 {
104*91f16700Schasinglulu				compatible = "arm,sp804", "arm,primecell";
105*91f16700Schasinglulu				reg = <0x110000 0x1000>;
106*91f16700Schasinglulu				interrupts = <0 2 4>;
107*91f16700Schasinglulu				clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_clk24mhz>;
108*91f16700Schasinglulu				clock-names = "timclken1", "timclken2", "apb_pclk";
109*91f16700Schasinglulu			};
110*91f16700Schasinglulu
111*91f16700Schasinglulu			v2m_timer23: timer@120000 {
112*91f16700Schasinglulu				compatible = "arm,sp804", "arm,primecell";
113*91f16700Schasinglulu				reg = <0x120000 0x1000>;
114*91f16700Schasinglulu				interrupts = <0 3 4>;
115*91f16700Schasinglulu				clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&v2m_clk24mhz>;
116*91f16700Schasinglulu				clock-names = "timclken1", "timclken2", "apb_pclk";
117*91f16700Schasinglulu			};
118*91f16700Schasinglulu
119*91f16700Schasinglulu			rtc@170000 {
120*91f16700Schasinglulu				compatible = "arm,pl031", "arm,primecell";
121*91f16700Schasinglulu				reg = <0x170000 0x1000>;
122*91f16700Schasinglulu				interrupts = <0 4 4>;
123*91f16700Schasinglulu				clocks = <&v2m_clk24mhz>;
124*91f16700Schasinglulu				clock-names = "apb_pclk";
125*91f16700Schasinglulu			};
126*91f16700Schasinglulu
127*91f16700Schasinglulu			virtio_block@130000 {
128*91f16700Schasinglulu				compatible = "virtio,mmio";
129*91f16700Schasinglulu				reg = <0x130000 0x1000>;
130*91f16700Schasinglulu				interrupts = <0 0x2a 4>;
131*91f16700Schasinglulu			};
132*91f16700Schasinglulu		};
133*91f16700Schasinglulu
134*91f16700Schasinglulu		v2m_fixed_3v3: fixedregulator@0 {
135*91f16700Schasinglulu			compatible = "regulator-fixed";
136*91f16700Schasinglulu			regulator-name = "3V3";
137*91f16700Schasinglulu			regulator-min-microvolt = <3300000>;
138*91f16700Schasinglulu			regulator-max-microvolt = <3300000>;
139*91f16700Schasinglulu			regulator-always-on;
140*91f16700Schasinglulu		};
141*91f16700Schasinglulu
142*91f16700Schasinglulu
143*91f16700Schasinglulu		mcc {
144*91f16700Schasinglulu			compatible = "arm,vexpress,config-bus", "simple-bus";
145*91f16700Schasinglulu			arm,vexpress,config-bridge = <&v2m_sysreg>;
146*91f16700Schasinglulu
147*91f16700Schasinglulu			/*
148*91f16700Schasinglulu			 * Not supported in FVP models
149*91f16700Schasinglulu			 *
150*91f16700Schasinglulu			 * reset@0 {
151*91f16700Schasinglulu			 * 	compatible = "arm,vexpress-reset";
152*91f16700Schasinglulu			 * 	arm,vexpress-sysreg,func = <5 0>;
153*91f16700Schasinglulu			 * };
154*91f16700Schasinglulu			 */
155*91f16700Schasinglulu
156*91f16700Schasinglulu			muxfpga@0 {
157*91f16700Schasinglulu				compatible = "arm,vexpress-muxfpga";
158*91f16700Schasinglulu				arm,vexpress-sysreg,func = <7 0>;
159*91f16700Schasinglulu			};
160*91f16700Schasinglulu
161*91f16700Schasinglulu			/*
162*91f16700Schasinglulu			 * Not used - Superseded by PSCI sys_poweroff
163*91f16700Schasinglulu			 *
164*91f16700Schasinglulu			 * shutdown@0 {
165*91f16700Schasinglulu			 * 	compatible = "arm,vexpress-shutdown";
166*91f16700Schasinglulu			 * 	arm,vexpress-sysreg,func = <8 0>;
167*91f16700Schasinglulu			 * };
168*91f16700Schasinglulu			 */
169*91f16700Schasinglulu
170*91f16700Schasinglulu			/*
171*91f16700Schasinglulu			 * Not used - Superseded by PSCI sys_reset
172*91f16700Schasinglulu			 *
173*91f16700Schasinglulu			 * reboot@0 {
174*91f16700Schasinglulu			 * 	compatible = "arm,vexpress-reboot";
175*91f16700Schasinglulu			 * 	arm,vexpress-sysreg,func = <9 0>;
176*91f16700Schasinglulu			 * };
177*91f16700Schasinglulu			 */
178*91f16700Schasinglulu
179*91f16700Schasinglulu			dvimode@0 {
180*91f16700Schasinglulu				compatible = "arm,vexpress-dvimode";
181*91f16700Schasinglulu				arm,vexpress-sysreg,func = <11 0>;
182*91f16700Schasinglulu			};
183*91f16700Schasinglulu		};
184*91f16700Schasinglulu	};
185