1 #include <dt-bindings/pinctrl/bcm2835.h>
2 #include <dt-bindings/clock/bcm2835.h>
3 #include <dt-bindings/clock/bcm2835-aux.h>
4 #include "skeleton.dtsi"
6 /* This include file covers the common peripherals and configuration between
7 * bcm2835 and bcm2836 implementations, leaving the CPU configuration to
8 * bcm2835.dtsi and bcm2836.dtsi.
12 compatible = "brcm,bcm2835";
14 interrupt-parent = <&intc>;
17 bootargs = "earlyprintk console=ttyAMA0";
21 compatible = "simple-bus";
26 compatible = "brcm,bcm2835-system-timer";
27 reg = <0x7e003000 0x1000>;
28 interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
29 /* This could be a reference to BCM2835_CLOCK_TIMER,
30 * but we don't have the driver using the common clock
33 clock-frequency = <1000000>;
37 compatible = "brcm,bcm2835-dma";
38 reg = <0x7e007000 0xf00>;
50 /* dma channel 11-14 share one irq */
55 /* unused shared irq for all channels */
57 interrupt-names = "dma0",
74 brcm,dma-channel-mask = <0x7f35>;
77 intc: interrupt-controller@7e00b200 {
78 compatible = "brcm,bcm2835-armctrl-ic";
79 reg = <0x7e00b200 0x200>;
81 #interrupt-cells = <2>;
85 compatible = "brcm,bcm2835-pm-wdt";
86 reg = <0x7e100000 0x28>;
89 clocks: cprman@7e101000 {
90 compatible = "brcm,bcm2835-cprman";
92 reg = <0x7e101000 0x2000>;
94 /* CPRMAN derives everything from the platform's
101 compatible = "brcm,bcm2835-rng";
102 reg = <0x7e104000 0x10>;
105 mailbox: mailbox@7e00b800 {
106 compatible = "brcm,bcm2835-mbox";
107 reg = <0x7e00b880 0x40>;
112 gpio: gpio@7e200000 {
113 compatible = "brcm,bcm2835-gpio";
114 reg = <0x7e200000 0xb4>;
116 * The GPIO IP block is designed for 3 banks of GPIOs.
117 * Each bank has a GPIO interrupt for itself.
118 * There is an overall "any bank" interrupt.
119 * In order, these are GIC interrupts 17, 18, 19, 20.
120 * Since the BCM2835 only has 2 banks, the 2nd bank
121 * interrupt output appears to be mirrored onto the
122 * 3rd bank's interrupt signal.
123 * So, a bank0 interrupt shows up on 17, 20, and
124 * a bank1 interrupt shows up on 18, 19, 20!
126 interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
131 interrupt-controller;
132 #interrupt-cells = <2>;
135 uart0: serial@7e201000 {
136 compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
137 reg = <0x7e201000 0x1000>;
139 clocks = <&clocks BCM2835_CLOCK_UART>,
140 <&clocks BCM2835_CLOCK_VPU>;
141 clock-names = "uartclk", "apb_pclk";
142 arm,primecell-periphid = <0x00241011>;
146 compatible = "brcm,bcm2835-i2s";
147 reg = <0x7e203000 0x20>,
152 dma-names = "tx", "rx";
157 compatible = "brcm,bcm2835-spi";
158 reg = <0x7e204000 0x1000>;
160 clocks = <&clocks BCM2835_CLOCK_VPU>;
161 #address-cells = <1>;
167 compatible = "brcm,bcm2835-i2c";
168 reg = <0x7e205000 0x1000>;
170 clocks = <&clocks BCM2835_CLOCK_VPU>;
171 #address-cells = <1>;
176 aux: aux@0x7e215000 {
177 compatible = "brcm,bcm2835-aux";
179 reg = <0x7e215000 0x8>;
180 clocks = <&clocks BCM2835_CLOCK_VPU>;
183 uart1: serial@7e215040 {
184 compatible = "brcm,bcm2835-aux-uart";
185 reg = <0x7e215040 0x40>;
187 clocks = <&aux BCM2835_AUX_CLOCK_UART>;
192 compatible = "brcm,bcm2835-aux-spi";
193 reg = <0x7e215080 0x40>;
195 clocks = <&aux BCM2835_AUX_CLOCK_SPI1>;
196 #address-cells = <1>;
202 compatible = "brcm,bcm2835-aux-spi";
203 reg = <0x7e2150c0 0x40>;
205 clocks = <&aux BCM2835_AUX_CLOCK_SPI2>;
206 #address-cells = <1>;
212 compatible = "brcm,bcm2835-pwm";
213 reg = <0x7e20c000 0x28>;
214 clocks = <&clocks BCM2835_CLOCK_PWM>;
215 assigned-clocks = <&clocks BCM2835_CLOCK_PWM>;
216 assigned-clock-rates = <10000000>;
221 sdhci: sdhci@7e300000 {
222 compatible = "brcm,bcm2835-sdhci";
223 reg = <0x7e300000 0x100>;
225 clocks = <&clocks BCM2835_CLOCK_EMMC>;
230 compatible = "brcm,bcm2835-i2c";
231 reg = <0x7e804000 0x1000>;
233 clocks = <&clocks BCM2835_CLOCK_VPU>;
234 #address-cells = <1>;
240 compatible = "brcm,bcm2835-i2c";
241 reg = <0x7e805000 0x1000>;
243 clocks = <&clocks BCM2835_CLOCK_VPU>;
244 #address-cells = <1>;
250 compatible = "brcm,bcm2835-usb";
251 reg = <0x7e980000 0x10000>;
257 compatible = "simple-bus";
258 #address-cells = <1>;
261 /* The oscillator is the root of the clock tree. */
263 compatible = "fixed-clock";
266 clock-output-names = "osc";
267 clock-frequency = <19200000>;