blob: ef11dab304468f6363b73a0abccd829923323e10 [file] [log] [blame]
John Linnb85a3ef2011-06-20 11:47:27 -06001/*
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -07002 * Copyright (C) 2011 - 2014 Xilinx
John Linnb85a3ef2011-06-20 11:47:27 -06003 *
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
Josh Cartwrighte06f1a92012-10-31 12:24:48 -060013/include/ "skeleton.dtsi"
John Linnb85a3ef2011-06-20 11:47:27 -060014
John Linnb85a3ef2011-06-20 11:47:27 -060015/ {
Josh Cartwrighte06f1a92012-10-31 12:24:48 -060016 compatible = "xlnx,zynq-7000";
John Linnb85a3ef2011-06-20 11:47:27 -060017
Soren Brinkmann41e4cdb2013-11-26 17:04:49 -080018 cpus {
19 #address-cells = <1>;
20 #size-cells = <0>;
21
22 cpu@0 {
23 compatible = "arm,cortex-a9";
24 device_type = "cpu";
25 reg = <0>;
26 clocks = <&clkc 3>;
Soren Brinkmannb2bf5d42014-04-04 16:14:12 -070027 clock-latency = <1000>;
Soren Brinkmanne1e22df2014-05-02 14:07:32 -070028 cpu0-supply = <&regulator_vccpint>;
Soren Brinkmanncd325292014-02-19 15:14:44 -080029 operating-points = <
30 /* kHz uV */
31 666667 1000000
32 333334 1000000
33 222223 1000000
34 >;
Soren Brinkmann41e4cdb2013-11-26 17:04:49 -080035 };
36
37 cpu@1 {
38 compatible = "arm,cortex-a9";
39 device_type = "cpu";
40 reg = <1>;
41 clocks = <&clkc 3>;
42 };
43 };
44
Michal Simek268a8202013-03-20 13:37:01 +010045 pmu {
46 compatible = "arm,cortex-a9-pmu";
47 interrupts = <0 5 4>, <0 6 4>;
48 interrupt-parent = <&intc>;
49 reg = < 0xf8891000 0x1000 0xf8893000 0x1000 >;
50 };
51
Soren Brinkmanne1e22df2014-05-02 14:07:32 -070052 regulator_vccpint: fixedregulator@0 {
53 compatible = "regulator-fixed";
54 regulator-name = "VCCPINT";
55 regulator-min-microvolt = <1000000>;
56 regulator-max-microvolt = <1000000>;
57 regulator-boot-on;
58 regulator-always-on;
59 };
60
John Linnb85a3ef2011-06-20 11:47:27 -060061 amba {
62 compatible = "simple-bus";
63 #address-cells = <1>;
64 #size-cells = <1>;
Josh Cartwrighte06f1a92012-10-31 12:24:48 -060065 interrupt-parent = <&intc>;
John Linnb85a3ef2011-06-20 11:47:27 -060066 ranges;
67
Soren Brinkmann21555602014-06-05 09:05:23 -070068 adc@f8007100 {
69 compatible = "xlnx,zynq-xadc-1.00.a";
70 reg = <0xf8007100 0x20>;
71 interrupts = <0 7 4>;
72 interrupt-parent = <&intc>;
73 clocks = <&clkc 12>;
Soren Brinkmanne0a5c552014-07-10 11:53:38 -070074 };
75
76 gpio0: gpio@e000a000 {
77 compatible = "xlnx,zynq-gpio-1.0";
78 #gpio-cells = <2>;
79 clocks = <&clkc 42>;
80 gpio-controller;
81 interrupt-parent = <&intc>;
82 interrupts = <0 20 4>;
83 reg = <0xe000a000 0x1000>;
Soren Brinkmann21555602014-06-05 09:05:23 -070084 };
85
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -070086 i2c0: i2c@e0004000 {
Soren Brinkmann0f6faa32014-04-04 14:27:56 -070087 compatible = "cdns,i2c-r1p10";
88 status = "disabled";
89 clocks = <&clkc 38>;
90 interrupt-parent = <&intc>;
91 interrupts = <0 25 4>;
92 reg = <0xe0004000 0x1000>;
93 #address-cells = <1>;
94 #size-cells = <0>;
95 };
96
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -070097 i2c1: i2c@e0005000 {
Soren Brinkmann0f6faa32014-04-04 14:27:56 -070098 compatible = "cdns,i2c-r1p10";
99 status = "disabled";
100 clocks = <&clkc 39>;
101 interrupt-parent = <&intc>;
102 interrupts = <0 48 4>;
103 reg = <0xe0005000 0x1000>;
104 #address-cells = <1>;
105 #size-cells = <0>;
106 };
107
John Linnb85a3ef2011-06-20 11:47:27 -0600108 intc: interrupt-controller@f8f01000 {
Josh Cartwrightf447ed22012-10-17 19:46:49 -0500109 compatible = "arm,cortex-a9-gic";
110 #interrupt-cells = <3>;
John Linnb85a3ef2011-06-20 11:47:27 -0600111 interrupt-controller;
Josh Cartwrightf447ed22012-10-17 19:46:49 -0500112 reg = <0xF8F01000 0x1000>,
113 <0xF8F00100 0x100>;
John Linnb85a3ef2011-06-20 11:47:27 -0600114 };
115
Josh Cartwright0fcfdbc2012-10-23 17:34:22 -0500116 L2: cache-controller {
117 compatible = "arm,pl310-cache";
118 reg = <0xF8F02000 0x1000>;
Soren Brinkmann39c41df92013-07-31 16:24:59 -0700119 arm,data-latency = <3 2 2>;
120 arm,tag-latency = <2 2 2>;
Josh Cartwright0fcfdbc2012-10-23 17:34:22 -0500121 cache-unified;
122 cache-level = <2>;
123 };
124
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700125 uart0: serial@e0000000 {
Soren Brinkmann8fe93462014-04-04 17:23:45 -0700126 compatible = "xlnx,xuartps", "cdns,uart-r1p8";
Soren Brinkmannec11ebc2013-06-13 09:37:16 -0700127 status = "disabled";
Soren Brinkmann30e1e282013-05-13 10:46:38 -0700128 clocks = <&clkc 23>, <&clkc 40>;
Soren Brinkmann8fe93462014-04-04 17:23:45 -0700129 clock-names = "uart_clk", "pclk";
John Linnb85a3ef2011-06-20 11:47:27 -0600130 reg = <0xE0000000 0x1000>;
Josh Cartwrightf447ed22012-10-17 19:46:49 -0500131 interrupts = <0 27 4>;
John Linnb85a3ef2011-06-20 11:47:27 -0600132 };
Josh Cartwright78d67852012-10-31 13:45:17 -0600133
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700134 uart1: serial@e0001000 {
Soren Brinkmann8fe93462014-04-04 17:23:45 -0700135 compatible = "xlnx,xuartps", "cdns,uart-r1p8";
Soren Brinkmannec11ebc2013-06-13 09:37:16 -0700136 status = "disabled";
Soren Brinkmann30e1e282013-05-13 10:46:38 -0700137 clocks = <&clkc 24>, <&clkc 41>;
Soren Brinkmann8fe93462014-04-04 17:23:45 -0700138 clock-names = "uart_clk", "pclk";
Josh Cartwright78d67852012-10-31 13:45:17 -0600139 reg = <0xE0001000 0x1000>;
140 interrupts = <0 50 4>;
Josh Cartwright78d67852012-10-31 13:45:17 -0600141 };
Josh Cartwright0f586fb2012-11-08 12:04:26 -0600142
Andreas Färberf07ab7a2014-07-25 13:12:31 +0200143 spi0: spi@e0006000 {
144 compatible = "xlnx,zynq-spi-r1p6";
145 reg = <0xe0006000 0x1000>;
146 status = "disabled";
147 interrupt-parent = <&intc>;
148 interrupts = <0 26 4>;
149 clocks = <&clkc 25>, <&clkc 34>;
150 clock-names = "ref_clk", "pclk";
151 #address-cells = <1>;
152 #size-cells = <0>;
153 };
154
155 spi1: spi@e0007000 {
156 compatible = "xlnx,zynq-spi-r1p6";
157 reg = <0xe0007000 0x1000>;
158 status = "disabled";
159 interrupt-parent = <&intc>;
160 interrupts = <0 49 4>;
161 clocks = <&clkc 26>, <&clkc 35>;
162 clock-names = "ref_clk", "pclk";
163 #address-cells = <1>;
164 #size-cells = <0>;
165 };
166
Steffen Trumtrar982264c2013-12-11 09:29:49 -0800167 gem0: ethernet@e000b000 {
168 compatible = "cdns,gem";
169 reg = <0xe000b000 0x4000>;
170 status = "disabled";
171 interrupts = <0 22 4>;
172 clocks = <&clkc 30>, <&clkc 30>, <&clkc 13>;
173 clock-names = "pclk", "hclk", "tx_clk";
174 };
175
176 gem1: ethernet@e000c000 {
177 compatible = "cdns,gem";
178 reg = <0xe000c000 0x4000>;
179 status = "disabled";
180 interrupts = <0 45 4>;
181 clocks = <&clkc 31>, <&clkc 31>, <&clkc 14>;
182 clock-names = "pclk", "hclk", "tx_clk";
183 };
184
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700185 sdhci0: sdhci@e0100000 {
Soren Brinkmann3f7c7302013-12-02 10:02:37 -0800186 compatible = "arasan,sdhci-8.9a";
187 status = "disabled";
188 clock-names = "clk_xin", "clk_ahb";
189 clocks = <&clkc 21>, <&clkc 32>;
190 interrupt-parent = <&intc>;
191 interrupts = <0 24 4>;
192 reg = <0xe0100000 0x1000>;
193 } ;
194
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700195 sdhci1: sdhci@e0101000 {
Soren Brinkmann3f7c7302013-12-02 10:02:37 -0800196 compatible = "arasan,sdhci-8.9a";
197 status = "disabled";
198 clock-names = "clk_xin", "clk_ahb";
199 clocks = <&clkc 22>, <&clkc 33>;
200 interrupt-parent = <&intc>;
201 interrupts = <0 47 4>;
202 reg = <0xe0101000 0x1000>;
203 } ;
204
Josh Cartwright0f586fb2012-11-08 12:04:26 -0600205 slcr: slcr@f8000000 {
Michal Simekb0504e32013-11-18 16:48:19 +0100206 #address-cells = <1>;
207 #size-cells = <1>;
Michal Simek016f4dc2013-11-26 15:41:31 +0100208 compatible = "xlnx,zynq-slcr", "syscon";
Josh Cartwright0f586fb2012-11-08 12:04:26 -0600209 reg = <0xF8000000 0x1000>;
Michal Simekb0504e32013-11-18 16:48:19 +0100210 ranges;
211 clkc: clkc@100 {
212 #clock-cells = <1>;
213 compatible = "xlnx,ps7-clkc";
214 ps-clk-frequency = <33333333>;
215 fclk-enable = <0>;
216 clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x",
217 "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x",
218 "dci", "lqspi", "smc", "pcap", "gem0", "gem1",
219 "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1",
220 "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1",
221 "dma", "usb0_aper", "usb1_aper", "gem0_aper",
222 "gem1_aper", "sdio0_aper", "sdio1_aper",
223 "spi0_aper", "spi1_aper", "can0_aper", "can1_aper",
224 "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper",
225 "gpio_aper", "lqspi_aper", "smc_aper", "swdt",
226 "dbg_trc", "dbg_apb";
227 reg = <0x100 0x100>;
Josh Cartwright0f586fb2012-11-08 12:04:26 -0600228 };
229 };
Josh Cartwright91dc9852012-10-31 13:56:14 -0600230
Andreas Färberfbb4add2014-07-25 01:00:15 +0200231 dmac_s: dmac@f8003000 {
232 compatible = "arm,pl330", "arm,primecell";
233 reg = <0xf8003000 0x1000>;
234 interrupt-parent = <&intc>;
235 interrupts = <0 13 4>,
236 <0 14 4>, <0 15 4>,
237 <0 16 4>, <0 17 4>,
238 <0 40 4>, <0 41 4>,
239 <0 42 4>, <0 43 4>;
240 #dma-cells = <1>;
241 #dma-channels = <8>;
242 #dma-requests = <4>;
243 clocks = <&clkc 27>;
244 clock-names = "apb_pclk";
245 };
246
Michal Simek00f7dc62013-07-31 09:19:59 +0200247 devcfg: devcfg@f8007000 {
248 compatible = "xlnx,zynq-devcfg-1.0";
249 reg = <0xf8007000 0x100>;
250 } ;
251
Soren Brinkmannfa94bd52013-09-18 11:48:38 -0700252 global_timer: timer@f8f00200 {
253 compatible = "arm,cortex-a9-global-timer";
254 reg = <0xf8f00200 0x20>;
255 interrupts = <1 11 0x301>;
256 interrupt-parent = <&intc>;
257 clocks = <&clkc 4>;
258 };
259
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700260 ttc0: timer@f8001000 {
Michal Simeke9329002013-03-20 10:15:28 +0100261 interrupt-parent = <&intc>;
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700262 interrupts = <0 10 4>, <0 11 4>, <0 12 4>;
Michal Simeke9329002013-03-20 10:15:28 +0100263 compatible = "cdns,ttc";
Soren Brinkmann30e1e282013-05-13 10:46:38 -0700264 clocks = <&clkc 6>;
Josh Cartwright91dc9852012-10-31 13:56:14 -0600265 reg = <0xF8001000 0x1000>;
Josh Cartwright91dc9852012-10-31 13:56:14 -0600266 };
267
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700268 ttc1: timer@f8002000 {
Michal Simeke9329002013-03-20 10:15:28 +0100269 interrupt-parent = <&intc>;
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700270 interrupts = <0 37 4>, <0 38 4>, <0 39 4>;
Michal Simeke9329002013-03-20 10:15:28 +0100271 compatible = "cdns,ttc";
Soren Brinkmann30e1e282013-05-13 10:46:38 -0700272 clocks = <&clkc 6>;
Josh Cartwright91dc9852012-10-31 13:56:14 -0600273 reg = <0xF8002000 0x1000>;
Josh Cartwright91dc9852012-10-31 13:56:14 -0600274 };
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700275
276 scutimer: timer@f8f00600 {
Michal Simek2f34e0a2013-03-27 13:36:39 +0100277 interrupt-parent = <&intc>;
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700278 interrupts = <1 13 0x301>;
Michal Simek2f34e0a2013-03-27 13:36:39 +0100279 compatible = "arm,cortex-a9-twd-timer";
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700280 reg = <0xf8f00600 0x20>;
Soren Brinkmann30e1e282013-05-13 10:46:38 -0700281 clocks = <&clkc 4>;
Michal Simek2f34e0a2013-03-27 13:36:39 +0100282 } ;
John Linnb85a3ef2011-06-20 11:47:27 -0600283 };
284};