blob: c494f96514993add56433eb9eec21342c0549b6d [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 Brinkmanncd325292014-02-19 15:14:44 -080028 operating-points = <
29 /* kHz uV */
30 666667 1000000
31 333334 1000000
32 222223 1000000
33 >;
Soren Brinkmann41e4cdb2013-11-26 17:04:49 -080034 };
35
36 cpu@1 {
37 compatible = "arm,cortex-a9";
38 device_type = "cpu";
39 reg = <1>;
40 clocks = <&clkc 3>;
41 };
42 };
43
Michal Simek268a8202013-03-20 13:37:01 +010044 pmu {
45 compatible = "arm,cortex-a9-pmu";
46 interrupts = <0 5 4>, <0 6 4>;
47 interrupt-parent = <&intc>;
48 reg = < 0xf8891000 0x1000 0xf8893000 0x1000 >;
49 };
50
John Linnb85a3ef2011-06-20 11:47:27 -060051 amba {
52 compatible = "simple-bus";
53 #address-cells = <1>;
54 #size-cells = <1>;
Josh Cartwrighte06f1a92012-10-31 12:24:48 -060055 interrupt-parent = <&intc>;
John Linnb85a3ef2011-06-20 11:47:27 -060056 ranges;
57
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -070058 i2c0: i2c@e0004000 {
Soren Brinkmann0f6faa32014-04-04 14:27:56 -070059 compatible = "cdns,i2c-r1p10";
60 status = "disabled";
61 clocks = <&clkc 38>;
62 interrupt-parent = <&intc>;
63 interrupts = <0 25 4>;
64 reg = <0xe0004000 0x1000>;
65 #address-cells = <1>;
66 #size-cells = <0>;
67 };
68
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -070069 i2c1: i2c@e0005000 {
Soren Brinkmann0f6faa32014-04-04 14:27:56 -070070 compatible = "cdns,i2c-r1p10";
71 status = "disabled";
72 clocks = <&clkc 39>;
73 interrupt-parent = <&intc>;
74 interrupts = <0 48 4>;
75 reg = <0xe0005000 0x1000>;
76 #address-cells = <1>;
77 #size-cells = <0>;
78 };
79
John Linnb85a3ef2011-06-20 11:47:27 -060080 intc: interrupt-controller@f8f01000 {
Josh Cartwrightf447ed22012-10-17 19:46:49 -050081 compatible = "arm,cortex-a9-gic";
82 #interrupt-cells = <3>;
John Linnb85a3ef2011-06-20 11:47:27 -060083 interrupt-controller;
Josh Cartwrightf447ed22012-10-17 19:46:49 -050084 reg = <0xF8F01000 0x1000>,
85 <0xF8F00100 0x100>;
John Linnb85a3ef2011-06-20 11:47:27 -060086 };
87
Josh Cartwright0fcfdbc2012-10-23 17:34:22 -050088 L2: cache-controller {
89 compatible = "arm,pl310-cache";
90 reg = <0xF8F02000 0x1000>;
Soren Brinkmann39c41df92013-07-31 16:24:59 -070091 arm,data-latency = <3 2 2>;
92 arm,tag-latency = <2 2 2>;
Josh Cartwright0fcfdbc2012-10-23 17:34:22 -050093 cache-unified;
94 cache-level = <2>;
95 };
96
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -070097 uart0: serial@e0000000 {
John Linnb85a3ef2011-06-20 11:47:27 -060098 compatible = "xlnx,xuartps";
Soren Brinkmannec11ebc2013-06-13 09:37:16 -070099 status = "disabled";
Soren Brinkmann30e1e282013-05-13 10:46:38 -0700100 clocks = <&clkc 23>, <&clkc 40>;
101 clock-names = "ref_clk", "aper_clk";
John Linnb85a3ef2011-06-20 11:47:27 -0600102 reg = <0xE0000000 0x1000>;
Josh Cartwrightf447ed22012-10-17 19:46:49 -0500103 interrupts = <0 27 4>;
John Linnb85a3ef2011-06-20 11:47:27 -0600104 };
Josh Cartwright78d67852012-10-31 13:45:17 -0600105
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700106 uart1: serial@e0001000 {
Josh Cartwright78d67852012-10-31 13:45:17 -0600107 compatible = "xlnx,xuartps";
Soren Brinkmannec11ebc2013-06-13 09:37:16 -0700108 status = "disabled";
Soren Brinkmann30e1e282013-05-13 10:46:38 -0700109 clocks = <&clkc 24>, <&clkc 41>;
110 clock-names = "ref_clk", "aper_clk";
Josh Cartwright78d67852012-10-31 13:45:17 -0600111 reg = <0xE0001000 0x1000>;
112 interrupts = <0 50 4>;
Josh Cartwright78d67852012-10-31 13:45:17 -0600113 };
Josh Cartwright0f586fb2012-11-08 12:04:26 -0600114
Steffen Trumtrar982264c2013-12-11 09:29:49 -0800115 gem0: ethernet@e000b000 {
116 compatible = "cdns,gem";
117 reg = <0xe000b000 0x4000>;
118 status = "disabled";
119 interrupts = <0 22 4>;
120 clocks = <&clkc 30>, <&clkc 30>, <&clkc 13>;
121 clock-names = "pclk", "hclk", "tx_clk";
122 };
123
124 gem1: ethernet@e000c000 {
125 compatible = "cdns,gem";
126 reg = <0xe000c000 0x4000>;
127 status = "disabled";
128 interrupts = <0 45 4>;
129 clocks = <&clkc 31>, <&clkc 31>, <&clkc 14>;
130 clock-names = "pclk", "hclk", "tx_clk";
131 };
132
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700133 sdhci0: sdhci@e0100000 {
Soren Brinkmann3f7c7302013-12-02 10:02:37 -0800134 compatible = "arasan,sdhci-8.9a";
135 status = "disabled";
136 clock-names = "clk_xin", "clk_ahb";
137 clocks = <&clkc 21>, <&clkc 32>;
138 interrupt-parent = <&intc>;
139 interrupts = <0 24 4>;
140 reg = <0xe0100000 0x1000>;
141 } ;
142
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700143 sdhci1: sdhci@e0101000 {
Soren Brinkmann3f7c7302013-12-02 10:02:37 -0800144 compatible = "arasan,sdhci-8.9a";
145 status = "disabled";
146 clock-names = "clk_xin", "clk_ahb";
147 clocks = <&clkc 22>, <&clkc 33>;
148 interrupt-parent = <&intc>;
149 interrupts = <0 47 4>;
150 reg = <0xe0101000 0x1000>;
151 } ;
152
Josh Cartwright0f586fb2012-11-08 12:04:26 -0600153 slcr: slcr@f8000000 {
Michal Simekb0504e32013-11-18 16:48:19 +0100154 #address-cells = <1>;
155 #size-cells = <1>;
Michal Simek016f4dc2013-11-26 15:41:31 +0100156 compatible = "xlnx,zynq-slcr", "syscon";
Josh Cartwright0f586fb2012-11-08 12:04:26 -0600157 reg = <0xF8000000 0x1000>;
Michal Simekb0504e32013-11-18 16:48:19 +0100158 ranges;
159 clkc: clkc@100 {
160 #clock-cells = <1>;
161 compatible = "xlnx,ps7-clkc";
162 ps-clk-frequency = <33333333>;
163 fclk-enable = <0>;
164 clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x",
165 "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x",
166 "dci", "lqspi", "smc", "pcap", "gem0", "gem1",
167 "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1",
168 "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1",
169 "dma", "usb0_aper", "usb1_aper", "gem0_aper",
170 "gem1_aper", "sdio0_aper", "sdio1_aper",
171 "spi0_aper", "spi1_aper", "can0_aper", "can1_aper",
172 "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper",
173 "gpio_aper", "lqspi_aper", "smc_aper", "swdt",
174 "dbg_trc", "dbg_apb";
175 reg = <0x100 0x100>;
Josh Cartwright0f586fb2012-11-08 12:04:26 -0600176 };
177 };
Josh Cartwright91dc9852012-10-31 13:56:14 -0600178
Soren Brinkmannfa94bd52013-09-18 11:48:38 -0700179 global_timer: timer@f8f00200 {
180 compatible = "arm,cortex-a9-global-timer";
181 reg = <0xf8f00200 0x20>;
182 interrupts = <1 11 0x301>;
183 interrupt-parent = <&intc>;
184 clocks = <&clkc 4>;
185 };
186
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700187 ttc0: timer@f8001000 {
Michal Simeke9329002013-03-20 10:15:28 +0100188 interrupt-parent = <&intc>;
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700189 interrupts = <0 10 4>, <0 11 4>, <0 12 4>;
Michal Simeke9329002013-03-20 10:15:28 +0100190 compatible = "cdns,ttc";
Soren Brinkmann30e1e282013-05-13 10:46:38 -0700191 clocks = <&clkc 6>;
Josh Cartwright91dc9852012-10-31 13:56:14 -0600192 reg = <0xF8001000 0x1000>;
Josh Cartwright91dc9852012-10-31 13:56:14 -0600193 };
194
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700195 ttc1: timer@f8002000 {
Michal Simeke9329002013-03-20 10:15:28 +0100196 interrupt-parent = <&intc>;
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700197 interrupts = <0 37 4>, <0 38 4>, <0 39 4>;
Michal Simeke9329002013-03-20 10:15:28 +0100198 compatible = "cdns,ttc";
Soren Brinkmann30e1e282013-05-13 10:46:38 -0700199 clocks = <&clkc 6>;
Josh Cartwright91dc9852012-10-31 13:56:14 -0600200 reg = <0xF8002000 0x1000>;
Josh Cartwright91dc9852012-10-31 13:56:14 -0600201 };
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700202
203 scutimer: timer@f8f00600 {
Michal Simek2f34e0a2013-03-27 13:36:39 +0100204 interrupt-parent = <&intc>;
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700205 interrupts = <1 13 0x301>;
Michal Simek2f34e0a2013-03-27 13:36:39 +0100206 compatible = "arm,cortex-a9-twd-timer";
Soren Brinkmannf7b1e9b2014-05-05 10:16:08 -0700207 reg = <0xf8f00600 0x20>;
Soren Brinkmann30e1e282013-05-13 10:46:38 -0700208 clocks = <&clkc 4>;
Michal Simek2f34e0a2013-03-27 13:36:39 +0100209 } ;
John Linnb85a3ef2011-06-20 11:47:27 -0600210 };
211};