Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
  1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
  2/*
  3 * Copyright (C) 2015 Marvell Technology Group Ltd.
  4 *
  5 * Author: Jisheng Zhang <jszhang@marvell.com>
  6 */
  7
  8#include <dt-bindings/interrupt-controller/arm-gic.h>
  9
 10/ {
 11	compatible = "marvell,berlin4ct", "marvell,berlin";
 12	interrupt-parent = <&gic>;
 13	#address-cells = <2>;
 14	#size-cells = <2>;
 15
 16	aliases {
 17		serial0 = &uart0;
 18	};
 19
 20	psci {
 21		compatible = "arm,psci-1.0", "arm,psci-0.2";
 22		method = "smc";
 23	};
 24
 25	cpus {
 26		#address-cells = <1>;
 27		#size-cells = <0>;
 28
 29		cpu0: cpu@0 {
 30			compatible = "arm,cortex-a53";
 31			device_type = "cpu";
 32			reg = <0x0>;
 33			enable-method = "psci";
 34			next-level-cache = <&l2>;
 35			cpu-idle-states = <&CPU_SLEEP_0>;
 36		};
 37
 38		cpu1: cpu@1 {
 39			compatible = "arm,cortex-a53";
 40			device_type = "cpu";
 41			reg = <0x1>;
 42			enable-method = "psci";
 43			next-level-cache = <&l2>;
 44			cpu-idle-states = <&CPU_SLEEP_0>;
 45		};
 46
 47		cpu2: cpu@2 {
 48			compatible = "arm,cortex-a53";
 49			device_type = "cpu";
 50			reg = <0x2>;
 51			enable-method = "psci";
 52			next-level-cache = <&l2>;
 53			cpu-idle-states = <&CPU_SLEEP_0>;
 54		};
 55
 56		cpu3: cpu@3 {
 57			compatible = "arm,cortex-a53";
 58			device_type = "cpu";
 59			reg = <0x3>;
 60			enable-method = "psci";
 61			next-level-cache = <&l2>;
 62			cpu-idle-states = <&CPU_SLEEP_0>;
 63		};
 64
 65		l2: cache {
 66			compatible = "cache";
 67			cache-level = <2>;
 68			cache-unified;
 69		};
 70
 71		idle-states {
 72			entry-method = "psci";
 73			CPU_SLEEP_0: cpu-sleep-0 {
 74				compatible = "arm,idle-state";
 75				local-timer-stop;
 76				arm,psci-suspend-param = <0x0010000>;
 77				entry-latency-us = <75>;
 78				exit-latency-us = <155>;
 79				min-residency-us = <1000>;
 80			};
 81		};
 82	};
 83
 84	osc: osc {
 85		compatible = "fixed-clock";
 86		#clock-cells = <0>;
 87		clock-frequency = <25000000>;
 88	};
 89
 90	pmu {
 91		compatible = "arm,cortex-a53-pmu";
 92		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
 93			     <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
 94			     <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
 95			     <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
 96		interrupt-affinity = <&cpu0>,
 97				     <&cpu1>,
 98				     <&cpu2>,
 99				     <&cpu3>;
100	};
101
102	timer {
103		compatible = "arm,armv8-timer";
104		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
105			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
106			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
107			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
108	};
109
110	soc@f7000000 {
111		compatible = "simple-bus";
112		#address-cells = <1>;
113		#size-cells = <1>;
114		ranges = <0 0 0xf7000000 0x1000000>;
115
116		gic: interrupt-controller@901000 {
117			compatible = "arm,gic-400";
118			#interrupt-cells = <3>;
119			interrupt-controller;
120			reg = <0x901000 0x1000>,
121			      <0x902000 0x2000>,
122			      <0x904000 0x2000>,
123			      <0x906000 0x2000>;
124			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
125		};
126
127		apb@e80000 {
128			compatible = "simple-bus";
129			#address-cells = <1>;
130			#size-cells = <1>;
131
132			ranges = <0 0xe80000 0x10000>;
133			interrupt-parent = <&aic>;
134
135			gpio0: gpio@400 {
136				compatible = "snps,dw-apb-gpio";
137				reg = <0x0400 0x400>;
138				#address-cells = <1>;
139				#size-cells = <0>;
140
141				porta: gpio-port@0 {
142					compatible = "snps,dw-apb-gpio-port";
143					gpio-controller;
144					#gpio-cells = <2>;
145					ngpios = <32>;
146					reg = <0>;
147					interrupt-controller;
148					#interrupt-cells = <2>;
149					interrupts = <0>;
150				};
151			};
152
153			gpio1: gpio@800 {
154				compatible = "snps,dw-apb-gpio";
155				reg = <0x0800 0x400>;
156				#address-cells = <1>;
157				#size-cells = <0>;
158
159				portb: gpio-port@1 {
160					compatible = "snps,dw-apb-gpio-port";
161					gpio-controller;
162					#gpio-cells = <2>;
163					ngpios = <32>;
164					reg = <0>;
165					interrupt-controller;
166					#interrupt-cells = <2>;
167					interrupts = <1>;
168				};
169			};
170
171			gpio2: gpio@c00 {
172				compatible = "snps,dw-apb-gpio";
173				reg = <0x0c00 0x400>;
174				#address-cells = <1>;
175				#size-cells = <0>;
176
177				portc: gpio-port@2 {
178					compatible = "snps,dw-apb-gpio-port";
179					gpio-controller;
180					#gpio-cells = <2>;
181					ngpios = <32>;
182					reg = <0>;
183					interrupt-controller;
184					#interrupt-cells = <2>;
185					interrupts = <2>;
186				};
187			};
188
189			gpio3: gpio@1000 {
190				compatible = "snps,dw-apb-gpio";
191				reg = <0x1000 0x400>;
192				#address-cells = <1>;
193				#size-cells = <0>;
194
195				portd: gpio-port@3 {
196					compatible = "snps,dw-apb-gpio-port";
197					gpio-controller;
198					#gpio-cells = <2>;
199					ngpios = <32>;
200					reg = <0>;
201					interrupt-controller;
202					#interrupt-cells = <2>;
203					interrupts = <3>;
204				};
205			};
206
207			aic: interrupt-controller@3800 {
208				compatible = "snps,dw-apb-ictl";
209				reg = <0x3800 0x30>;
210				interrupt-controller;
211				#interrupt-cells = <1>;
212				interrupt-parent = <&gic>;
213				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
214			};
215		};
216
217		soc_pinctrl: pin-controller@ea8000 {
218			compatible = "marvell,berlin4ct-soc-pinctrl";
219			reg = <0xea8000 0x14>;
220		};
221
222		avio_pinctrl: pin-controller@ea8400 {
223			compatible = "marvell,berlin4ct-avio-pinctrl";
224			reg = <0xea8400 0x8>;
225		};
226
227		apb@fc0000 {
228			compatible = "simple-bus";
229			#address-cells = <1>;
230			#size-cells = <1>;
231			ranges = <0 0xfc0000 0x10000>;
232			interrupt-parent = <&sic>;
233
234			sic: interrupt-controller@1000 {
235				compatible = "snps,dw-apb-ictl";
236				reg = <0x1000 0x30>;
237				interrupt-controller;
238				#interrupt-cells = <1>;
239				interrupt-parent = <&gic>;
240				interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
241			};
242
243			wdt0: watchdog@3000 {
244				compatible = "snps,dw-wdt";
245				reg = <0x3000 0x100>;
246				clocks = <&osc>;
247				interrupts = <0>;
248			};
249
250			wdt1: watchdog@4000 {
251				compatible = "snps,dw-wdt";
252				reg = <0x4000 0x100>;
253				clocks = <&osc>;
254				interrupts = <1>;
255			};
256
257			wdt2: watchdog@5000 {
258				compatible = "snps,dw-wdt";
259				reg = <0x5000 0x100>;
260				clocks = <&osc>;
261				interrupts = <2>;
262			};
263
264			sm_gpio0: gpio@8000 {
265				compatible = "snps,dw-apb-gpio";
266				reg = <0x8000 0x400>;
267				#address-cells = <1>;
268				#size-cells = <0>;
269
270				porte: gpio-port@4 {
271					compatible = "snps,dw-apb-gpio-port";
272					gpio-controller;
273					#gpio-cells = <2>;
274					ngpios = <32>;
275					reg = <0>;
276				};
277			};
278
279			sm_gpio1: gpio@9000 {
280				compatible = "snps,dw-apb-gpio";
281				reg = <0x9000 0x400>;
282				#address-cells = <1>;
283				#size-cells = <0>;
284
285				portf: gpio-port@5 {
286					compatible = "snps,dw-apb-gpio-port";
287					gpio-controller;
288					#gpio-cells = <2>;
289					ngpios = <32>;
290					reg = <0>;
291				};
292			};
293
294			uart0: serial@d000 {
295				compatible = "snps,dw-apb-uart";
296				reg = <0xd000 0x100>;
297				interrupts = <8>;
298				clocks = <&osc>;
299				reg-shift = <2>;
300				status = "disabled";
301				pinctrl-0 = <&uart0_pmux>;
302				pinctrl-names = "default";
303			};
304		};
305
306		system_pinctrl: pin-controller@fe2200 {
307			compatible = "marvell,berlin4ct-system-pinctrl";
308			reg = <0xfe2200 0xc>;
309
310			uart0_pmux: uart0-pmux {
311				groups = "SM_URT0_TXD", "SM_URT0_RXD";
312				function = "uart0";
313			};
314		};
315	};
316};