summaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/dts/zynq-7000.dtsi
blob: bb3085ca4f068f3d3f3b433bb7c9bef29a92e52a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
 *  Copyright (C) 2011 Xilinx
 *
 * This software is licensed under the terms of the GNU General Public
 * License version 2, as published by the Free Software Foundation, and
 * may be copied, distributed, and modified under those terms.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */
/include/ "skeleton.dtsi"

/ {
	compatible = "xlnx,zynq-7000";

	amba {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		interrupt-parent = <&intc>;
		ranges;

		intc: interrupt-controller@f8f01000 {
			compatible = "arm,cortex-a9-gic";
			#interrupt-cells = <3>;
			#address-cells = <1>;
			interrupt-controller;
			reg = <0xF8F01000 0x1000>,
			      <0xF8F00100 0x100>;
		};

		L2: cache-controller {
			compatible = "arm,pl310-cache";
			reg = <0xF8F02000 0x1000>;
			arm,data-latency = <2 3 2>;
			arm,tag-latency = <2 3 2>;
			cache-unified;
			cache-level = <2>;
		};

		uart0: uart@e0000000 {
			compatible = "xlnx,xuartps";
			reg = <0xE0000000 0x1000>;
			interrupts = <0 27 4>;
			clock = <50000000>;
		};

		uart1: uart@e0001000 {
			compatible = "xlnx,xuartps";
			reg = <0xE0001000 0x1000>;
			interrupts = <0 50 4>;
			clock = <50000000>;
		};

		slcr: slcr@f8000000 {
			compatible = "xlnx,zynq-slcr";
			reg = <0xF8000000 0x1000>;

			clocks {
				#address-cells = <1>;
				#size-cells = <0>;

				ps_clk: ps_clk {
					#clock-cells = <0>;
					compatible = "fixed-clock";
					/* clock-frequency set in board-specific file */
					clock-output-names = "ps_clk";
				};
				armpll: armpll {
					#clock-cells = <0>;
					compatible = "xlnx,zynq-pll";
					clocks = <&ps_clk>;
					reg = <0x100 0x110>;
					clock-output-names = "armpll";
				};
				ddrpll: ddrpll {
					#clock-cells = <0>;
					compatible = "xlnx,zynq-pll";
					clocks = <&ps_clk>;
					reg = <0x104 0x114>;
					clock-output-names = "ddrpll";
				};
				iopll: iopll {
					#clock-cells = <0>;
					compatible = "xlnx,zynq-pll";
					clocks = <&ps_clk>;
					reg = <0x108 0x118>;
					clock-output-names = "iopll";
				};
				uart_clk: uart_clk {
					#clock-cells = <1>;
					compatible = "xlnx,zynq-periph-clock";
					clocks = <&iopll &armpll &ddrpll>;
					reg = <0x154>;
					clock-output-names = "uart0_ref_clk",
							     "uart1_ref_clk";
				};
				cpu_clk: cpu_clk {
					#clock-cells = <1>;
					compatible = "xlnx,zynq-cpu-clock";
					clocks = <&iopll &armpll &ddrpll>;
					reg = <0x120 0x1C4>;
					clock-output-names = "cpu_6x4x",
							     "cpu_3x2x",
							     "cpu_2x",
							     "cpu_1x";
				};
			};
		};
	};
};