blob: be9c91439bcf230027e4ea1d281e6892c04299c7 [file] [log] [blame]
Stefan Wahren12091112015-01-29 18:10:50 +00001#include <dt-bindings/pinctrl/bcm2835.h>
2#include "skeleton.dtsi"
Simon Arlottec9653b2012-05-26 01:04:43 -06003
4/ {
5 compatible = "brcm,bcm2835";
6 model = "BCM2835";
Simon Arlott89214f02012-09-12 19:57:26 -06007 interrupt-parent = <&intc>;
Simon Arlottec9653b2012-05-26 01:04:43 -06008
9 chosen {
Simon Arlott407f9be2012-09-10 23:29:17 -060010 bootargs = "earlyprintk console=ttyAMA0";
Simon Arlottec9653b2012-05-26 01:04:43 -060011 };
12
13 soc {
14 compatible = "simple-bus";
15 #address-cells = <1>;
16 #size-cells = <1>;
17 ranges = <0x7e000000 0x20000000 0x02000000>;
Simon Arlott89214f02012-09-12 19:57:26 -060018
Stephen Warren25b2f1b2014-02-11 21:48:47 -070019 timer@7e003000 {
Simon Arlottee4af562012-09-10 22:38:35 -060020 compatible = "brcm,bcm2835-system-timer";
21 reg = <0x7e003000 0x1000>;
22 interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
23 clock-frequency = <1000000>;
24 };
25
Florian Meier89072332014-01-13 12:11:43 +010026 dma: dma@7e007000 {
27 compatible = "brcm,bcm2835-dma";
28 reg = <0x7e007000 0xf00>;
29 interrupts = <1 16>,
30 <1 17>,
31 <1 18>,
32 <1 19>,
33 <1 20>,
34 <1 21>,
35 <1 22>,
36 <1 23>,
37 <1 24>,
38 <1 25>,
39 <1 26>,
40 <1 27>,
41 <1 28>;
42
43 #dma-cells = <1>;
44 brcm,dma-channel-mask = <0x7f35>;
45 };
46
Stephen Warren25b2f1b2014-02-11 21:48:47 -070047 intc: interrupt-controller@7e00b200 {
Simon Arlott89214f02012-09-12 19:57:26 -060048 compatible = "brcm,bcm2835-armctrl-ic";
49 reg = <0x7e00b200 0x200>;
50 interrupt-controller;
51 #interrupt-cells = <2>;
52 };
Simon Arlott407f9be2012-09-10 23:29:17 -060053
Stephen Warren25b2f1b2014-02-11 21:48:47 -070054 watchdog@7e100000 {
Stephen Warrend0f1c7f2012-09-15 22:18:10 -060055 compatible = "brcm,bcm2835-pm-wdt";
56 reg = <0x7e100000 0x28>;
57 };
58
Stephen Warren25b2f1b2014-02-11 21:48:47 -070059 rng@7e104000 {
Lubomir Rintela1bf7082013-03-28 07:12:04 +010060 compatible = "brcm,bcm2835-rng";
61 reg = <0x7e104000 0x10>;
62 };
63
Stephen Warren25b2f1b2014-02-11 21:48:47 -070064 gpio: gpio@7e200000 {
Stephen Warren805504a2012-09-27 21:54:21 -060065 compatible = "brcm,bcm2835-gpio";
66 reg = <0x7e200000 0xb4>;
67 /*
68 * The GPIO IP block is designed for 3 banks of GPIOs.
69 * Each bank has a GPIO interrupt for itself.
70 * There is an overall "any bank" interrupt.
71 * In order, these are GIC interrupts 17, 18, 19, 20.
72 * Since the BCM2835 only has 2 banks, the 2nd bank
73 * interrupt output appears to be mirrored onto the
74 * 3rd bank's interrupt signal.
75 * So, a bank0 interrupt shows up on 17, 20, and
76 * a bank1 interrupt shows up on 18, 19, 20!
77 */
78 interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
79
80 gpio-controller;
81 #gpio-cells = <2>;
82
83 interrupt-controller;
84 #interrupt-cells = <2>;
85 };
Stephen Warren5186bf22012-12-24 21:58:56 -070086
Stephen Warren25b2f1b2014-02-11 21:48:47 -070087 uart@7e201000 {
Stephen Warrenef3c6902014-02-11 21:44:35 -070088 compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
89 reg = <0x7e201000 0x1000>;
90 interrupts = <2 25>;
91 clock-frequency = <3000000>;
92 arm,primecell-periphid = <0x00241011>;
93 };
94
Florian Meier9511cc4d2014-01-13 12:16:40 +010095 i2s: i2s@7e203000 {
96 compatible = "brcm,bcm2835-i2s";
97 reg = <0x7e203000 0x20>,
98 <0x7e101098 0x02>;
99
100 dmas = <&dma 2>,
101 <&dma 3>;
102 dma-names = "tx", "rx";
Mark Brown667bbd52014-09-16 19:51:36 -0600103 status = "disabled";
Florian Meier9511cc4d2014-01-13 12:16:40 +0100104 };
105
Stephen Warren25b2f1b2014-02-11 21:48:47 -0700106 spi: spi@7e204000 {
Stephen Warren6ce5f022013-02-19 21:39:58 -0700107 compatible = "brcm,bcm2835-spi";
108 reg = <0x7e204000 0x1000>;
109 interrupts = <2 22>;
110 clocks = <&clk_spi>;
111 #address-cells = <1>;
112 #size-cells = <0>;
113 status = "disabled";
114 };
115
Stephen Warren232fed42012-12-31 23:26:45 -0700116 i2c0: i2c@20205000 {
117 compatible = "brcm,bcm2835-i2c";
118 reg = <0x7e205000 0x1000>;
119 interrupts = <2 21>;
120 clocks = <&clk_i2c>;
Stephen Warrena31ab442013-11-25 20:35:42 -0700121 #address-cells = <1>;
122 #size-cells = <0>;
Stephen Warren232fed42012-12-31 23:26:45 -0700123 status = "disabled";
124 };
125
Stephen Warren25b2f1b2014-02-11 21:48:47 -0700126 sdhci: sdhci@7e300000 {
Stephen Warrenef3c6902014-02-11 21:44:35 -0700127 compatible = "brcm,bcm2835-sdhci";
128 reg = <0x7e300000 0x100>;
129 interrupts = <2 30>;
130 clocks = <&clk_mmc>;
131 status = "disabled";
132 };
133
Stephen Warren25b2f1b2014-02-11 21:48:47 -0700134 i2c1: i2c@7e804000 {
Stephen Warren232fed42012-12-31 23:26:45 -0700135 compatible = "brcm,bcm2835-i2c";
136 reg = <0x7e804000 0x1000>;
137 interrupts = <2 21>;
138 clocks = <&clk_i2c>;
Stephen Warrena31ab442013-11-25 20:35:42 -0700139 #address-cells = <1>;
140 #size-cells = <0>;
Stephen Warren232fed42012-12-31 23:26:45 -0700141 status = "disabled";
142 };
143
Stephen Warren25b2f1b2014-02-11 21:48:47 -0700144 usb@7e980000 {
Stephen Warren5631e7f2013-12-26 19:43:10 -0700145 compatible = "brcm,bcm2835-usb";
146 reg = <0x7e980000 0x10000>;
147 interrupts = <1 9>;
148 };
Vince Weaver14ac6522013-12-31 16:54:16 -0500149
150 arm-pmu {
151 compatible = "arm,arm1176-pmu";
152 };
Stephen Warren5186bf22012-12-24 21:58:56 -0700153 };
154
Stephen Warren9692c192013-01-14 21:07:20 -0700155 clocks {
156 compatible = "simple-bus";
157 #address-cells = <1>;
158 #size-cells = <0>;
Stephen Warren232fed42012-12-31 23:26:45 -0700159
Stephen Warrenb7c6c172014-02-13 23:12:39 -0700160 clk_mmc: clock@0 {
Stephen Warren9692c192013-01-14 21:07:20 -0700161 compatible = "fixed-clock";
162 reg = <0>;
163 #clock-cells = <0>;
Stephen Warrenb7c6c172014-02-13 23:12:39 -0700164 clock-output-names = "mmc";
Stephen Warren9692c192013-01-14 21:07:20 -0700165 clock-frequency = <100000000>;
166 };
167
Stephen Warrenb7c6c172014-02-13 23:12:39 -0700168 clk_i2c: clock@1 {
Stephen Warren9692c192013-01-14 21:07:20 -0700169 compatible = "fixed-clock";
170 reg = <1>;
171 #clock-cells = <0>;
Stephen Warrenb7c6c172014-02-13 23:12:39 -0700172 clock-output-names = "i2c";
Stephen Warren2837a1d2013-02-21 22:42:38 -0700173 clock-frequency = <250000000>;
Stephen Warren9692c192013-01-14 21:07:20 -0700174 };
Stephen Warren6ce5f022013-02-19 21:39:58 -0700175
Stephen Warrenb7c6c172014-02-13 23:12:39 -0700176 clk_spi: clock@2 {
Stephen Warren6ce5f022013-02-19 21:39:58 -0700177 compatible = "fixed-clock";
178 reg = <2>;
179 #clock-cells = <0>;
Stephen Warrenb7c6c172014-02-13 23:12:39 -0700180 clock-output-names = "spi";
Stephen Warren6ce5f022013-02-19 21:39:58 -0700181 clock-frequency = <250000000>;
182 };
Simon Arlottec9653b2012-05-26 01:04:43 -0600183 };
184};