aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/bcm21664.txt15
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/kona-resetmgr.txt14
-rw-r--r--arch/arm/boot/dts/Makefile3
-rw-r--r--arch/arm/boot/dts/bcm21664-garnet.dts56
-rw-r--r--arch/arm/boot/dts/bcm21664.dtsi292
-rw-r--r--arch/arm/boot/dts/bcm28155-ap.dts48
-rw-r--r--arch/arm/boot/dts/bcm59056.dtsi74
7 files changed, 500 insertions, 2 deletions
diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm21664.txt b/Documentation/devicetree/bindings/arm/bcm/bcm21664.txt
new file mode 100644
index 000000000000..e0774255e1a6
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/bcm/bcm21664.txt
@@ -0,0 +1,15 @@
1Broadcom BCM21664 device tree bindings
2--------------------------------------
3
4This document describes the device tree bindings for boards with the BCM21664
5SoC.
6
7Required root node property:
8 - compatible: brcm,bcm21664
9
10Example:
11 / {
12 model = "BCM21664 SoC";
13 compatible = "brcm,bcm21664";
14 [...]
15 }
diff --git a/Documentation/devicetree/bindings/arm/bcm/kona-resetmgr.txt b/Documentation/devicetree/bindings/arm/bcm/kona-resetmgr.txt
new file mode 100644
index 000000000000..93f31ca1ef4b
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/bcm/kona-resetmgr.txt
@@ -0,0 +1,14 @@
1Broadcom Kona Family Reset Manager
2----------------------------------
3
4The reset manager is used on the Broadcom BCM21664 SoC.
5
6Required properties:
7 - compatible: brcm,bcm21664-resetmgr
8 - reg: memory address & range
9
10Example:
11 brcm,resetmgr@35001f00 {
12 compatible = "brcm,bcm21664-resetmgr";
13 reg = <0x35001f00 0x24>;
14 };
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index abd9100482d3..4780ca1c8885 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -47,7 +47,8 @@ dtb-$(CONFIG_ARCH_AT91) += sama5d36ek.dtb
47 47
48dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb 48dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb
49dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb 49dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
50dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm28155-ap.dtb 50dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm28155-ap.dtb \
51 bcm21664-garnet.dtb
51dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb 52dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
52dtb-$(CONFIG_ARCH_BCM_5301X) += bcm4708-netgear-r6250.dtb 53dtb-$(CONFIG_ARCH_BCM_5301X) += bcm4708-netgear-r6250.dtb
53dtb-$(CONFIG_ARCH_BERLIN) += \ 54dtb-$(CONFIG_ARCH_BERLIN) += \
diff --git a/arch/arm/boot/dts/bcm21664-garnet.dts b/arch/arm/boot/dts/bcm21664-garnet.dts
new file mode 100644
index 000000000000..e87cb26ddf84
--- /dev/null
+++ b/arch/arm/boot/dts/bcm21664-garnet.dts
@@ -0,0 +1,56 @@
1/*
2 * Copyright (C) 2014 Broadcom Corporation
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation version 2.
7 *
8 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
9 * kind, whether express or implied; without even the implied warranty
10 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14/dts-v1/;
15
16#include <dt-bindings/gpio/gpio.h>
17
18#include "bcm21664.dtsi"
19
20/ {
21 model = "BCM21664 Garnet board";
22 compatible = "brcm,bcm21664-garnet", "brcm,bcm21664";
23
24 memory {
25 reg = <0x80000000 0x40000000>; /* 1 GB */
26 };
27
28 uart@3e000000 {
29 status = "okay";
30 };
31
32 sdio1: sdio@3f180000 {
33 max-frequency = <48000000>;
34 status = "okay";
35 };
36
37 sdio2: sdio@3f190000 {
38 non-removable;
39 max-frequency = <48000000>;
40 status = "okay";
41 };
42
43 sdio4: sdio@3f1b0000 {
44 max-frequency = <48000000>;
45 cd-gpios = <&gpio 91 GPIO_ACTIVE_LOW>;
46 status = "okay";
47 };
48
49 usbotg: usb@3f120000 {
50 status = "okay";
51 };
52
53 usbphy: usb-phy@3f130000 {
54 status = "okay";
55 };
56};
diff --git a/arch/arm/boot/dts/bcm21664.dtsi b/arch/arm/boot/dts/bcm21664.dtsi
new file mode 100644
index 000000000000..08a44d41b672
--- /dev/null
+++ b/arch/arm/boot/dts/bcm21664.dtsi
@@ -0,0 +1,292 @@
1/*
2 * Copyright (C) 2014 Broadcom Corporation
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation version 2.
7 *
8 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
9 * kind, whether express or implied; without even the implied warranty
10 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14#include <dt-bindings/interrupt-controller/arm-gic.h>
15#include <dt-bindings/interrupt-controller/irq.h>
16
17#include "skeleton.dtsi"
18
19/ {
20 model = "BCM21664 SoC";
21 compatible = "brcm,bcm21664";
22 interrupt-parent = <&gic>;
23
24 chosen {
25 bootargs = "console=ttyS0,115200n8";
26 };
27
28 gic: interrupt-controller@3ff00100 {
29 compatible = "arm,cortex-a9-gic";
30 #interrupt-cells = <3>;
31 #address-cells = <0>;
32 interrupt-controller;
33 reg = <0x3ff01000 0x1000>,
34 <0x3ff00100 0x100>;
35 };
36
37 smc@0x3404e000 {
38 compatible = "brcm,bcm21664-smc", "brcm,kona-smc";
39 reg = <0x3404e000 0x400>; /* 1 KiB in SRAM */
40 };
41
42 uart@3e000000 {
43 compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart";
44 status = "disabled";
45 reg = <0x3e000000 0x118>;
46 clocks = <&uartb_clk>;
47 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
48 reg-shift = <2>;
49 reg-io-width = <4>;
50 };
51
52 uart@3e001000 {
53 compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart";
54 status = "disabled";
55 reg = <0x3e001000 0x118>;
56 clocks = <&uartb2_clk>;
57 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
58 reg-shift = <2>;
59 reg-io-width = <4>;
60 };
61
62 uart@3e002000 {
63 compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart";
64 status = "disabled";
65 reg = <0x3e002000 0x118>;
66 clocks = <&uartb3_clk>;
67 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
68 reg-shift = <2>;
69 reg-io-width = <4>;
70 };
71
72 L2: l2-cache {
73 compatible = "arm,pl310-cache";
74 reg = <0x3ff20000 0x1000>;
75 cache-unified;
76 cache-level = <2>;
77 };
78
79 brcm,resetmgr@35001f00 {
80 compatible = "brcm,bcm21664-resetmgr";
81 reg = <0x35001f00 0x24>;
82 };
83
84 timer@35006000 {
85 compatible = "brcm,kona-timer";
86 reg = <0x35006000 0x1c>;
87 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
88 clocks = <&hub_timer_clk>;
89 };
90
91 gpio: gpio@35003000 {
92 compatible = "brcm,bcm21664-gpio", "brcm,kona-gpio";
93 reg = <0x35003000 0x524>;
94 interrupts =
95 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH
96 GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH
97 GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH
98 GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
99 #gpio-cells = <2>;
100 #interrupt-cells = <2>;
101 gpio-controller;
102 interrupt-controller;
103 };
104
105 sdio1: sdio@3f180000 {
106 compatible = "brcm,kona-sdhci";
107 reg = <0x3f180000 0x801c>;
108 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
109 clocks = <&sdio1_clk>;
110 status = "disabled";
111 };
112
113 sdio2: sdio@3f190000 {
114 compatible = "brcm,kona-sdhci";
115 reg = <0x3f190000 0x801c>;
116 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
117 clocks = <&sdio2_clk>;
118 status = "disabled";
119 };
120
121 sdio3: sdio@3f1a0000 {
122 compatible = "brcm,kona-sdhci";
123 reg = <0x3f1a0000 0x801c>;
124 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
125 clocks = <&sdio3_clk>;
126 status = "disabled";
127 };
128
129 sdio4: sdio@3f1b0000 {
130 compatible = "brcm,kona-sdhci";
131 reg = <0x3f1b0000 0x801c>;
132 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
133 clocks = <&sdio4_clk>;
134 status = "disabled";
135 };
136
137 i2c@3e016000 {
138 compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
139 reg = <0x3e016000 0x70>;
140 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
141 #address-cells = <1>;
142 #size-cells = <0>;
143 clocks = <&bsc1_clk>;
144 status = "disabled";
145 };
146
147 i2c@3e017000 {
148 compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
149 reg = <0x3e017000 0x70>;
150 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
151 #address-cells = <1>;
152 #size-cells = <0>;
153 clocks = <&bsc2_clk>;
154 status = "disabled";
155 };
156
157 i2c@3e018000 {
158 compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
159 reg = <0x3e018000 0x70>;
160 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
161 #address-cells = <1>;
162 #size-cells = <0>;
163 clocks = <&bsc3_clk>;
164 status = "disabled";
165 };
166
167 i2c@3e01c000 {
168 compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
169 reg = <0x3e01c000 0x70>;
170 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
171 #address-cells = <1>;
172 #size-cells = <0>;
173 clocks = <&bsc4_clk>;
174 status = "disabled";
175 };
176
177 clocks {
178 bsc1_clk: bsc1 {
179 compatible = "fixed-clock";
180 clock-frequency = <13000000>;
181 #clock-cells = <0>;
182 };
183
184 bsc2_clk: bsc2 {
185 compatible = "fixed-clock";
186 clock-frequency = <13000000>;
187 #clock-cells = <0>;
188 };
189
190 bsc3_clk: bsc3 {
191 compatible = "fixed-clock";
192 clock-frequency = <13000000>;
193 #clock-cells = <0>;
194 };
195
196 bsc4_clk: bsc4 {
197 compatible = "fixed-clock";
198 clock-frequency = <13000000>;
199 #clock-cells = <0>;
200 };
201
202 pmu_bsc_clk: pmu_bsc {
203 compatible = "fixed-clock";
204 clock-frequency = <13000000>;
205 #clock-cells = <0>;
206 };
207
208 hub_timer_clk: hub_timer {
209 compatible = "fixed-clock";
210 clock-frequency = <32768>;
211 #clock-cells = <0>;
212 };
213
214 pwm_clk: pwm {
215 compatible = "fixed-clock";
216 clock-frequency = <26000000>;
217 #clock-cells = <0>;
218 };
219
220 sdio1_clk: sdio1 {
221 compatible = "fixed-clock";
222 clock-frequency = <48000000>;
223 #clock-cells = <0>;
224 };
225
226 sdio2_clk: sdio2 {
227 compatible = "fixed-clock";
228 clock-frequency = <48000000>;
229 #clock-cells = <0>;
230 };
231
232 sdio3_clk: sdio3 {
233 compatible = "fixed-clock";
234 clock-frequency = <48000000>;
235 #clock-cells = <0>;
236 };
237
238 sdio4_clk: sdio4 {
239 compatible = "fixed-clock";
240 clock-frequency = <48000000>;
241 #clock-cells = <0>;
242 };
243
244 tmon_1m_clk: tmon_1m {
245 compatible = "fixed-clock";
246 clock-frequency = <1000000>;
247 #clock-cells = <0>;
248 };
249
250 uartb_clk: uartb {
251 compatible = "fixed-clock";
252 clock-frequency = <13000000>;
253 #clock-cells = <0>;
254 };
255
256 uartb2_clk: uartb2 {
257 compatible = "fixed-clock";
258 clock-frequency = <13000000>;
259 #clock-cells = <0>;
260 };
261
262 uartb3_clk: uartb3 {
263 compatible = "fixed-clock";
264 clock-frequency = <13000000>;
265 #clock-cells = <0>;
266 };
267
268 usb_otg_ahb_clk: usb_otg_ahb {
269 compatible = "fixed-clock";
270 clock-frequency = <52000000>;
271 #clock-cells = <0>;
272 };
273 };
274
275 usbotg: usb@3f120000 {
276 compatible = "snps,dwc2";
277 reg = <0x3f120000 0x10000>;
278 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
279 clocks = <&usb_otg_ahb_clk>;
280 clock-names = "otg";
281 phys = <&usbphy>;
282 phy-names = "usb2-phy";
283 status = "disabled";
284 };
285
286 usbphy: usb-phy@3f130000 {
287 compatible = "brcm,kona-usb2-phy";
288 reg = <0x3f130000 0x28>;
289 #phy-cells = <0>;
290 status = "disabled";
291 };
292};
diff --git a/arch/arm/boot/dts/bcm28155-ap.dts b/arch/arm/boot/dts/bcm28155-ap.dts
index 3604554e752c..af3da55eef49 100644
--- a/arch/arm/boot/dts/bcm28155-ap.dts
+++ b/arch/arm/boot/dts/bcm28155-ap.dts
@@ -46,22 +46,32 @@
46 46
47 i2c@3500d000 { 47 i2c@3500d000 {
48 status="okay"; 48 status="okay";
49 clock-frequency = <400000>; 49 clock-frequency = <100000>;
50
51 pmu: pmu@8 {
52 reg = <0x08>;
53 };
50 }; 54 };
51 55
52 sdio2: sdio@3f190000 { 56 sdio2: sdio@3f190000 {
53 non-removable; 57 non-removable;
54 max-frequency = <48000000>; 58 max-frequency = <48000000>;
59 vmmc-supply = <&camldo1_reg>;
60 vqmmc-supply = <&iosr1_reg>;
55 status = "okay"; 61 status = "okay";
56 }; 62 };
57 63
58 sdio4: sdio@3f1b0000 { 64 sdio4: sdio@3f1b0000 {
59 max-frequency = <48000000>; 65 max-frequency = <48000000>;
60 cd-gpios = <&gpio 14 GPIO_ACTIVE_LOW>; 66 cd-gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
67 vmmc-supply = <&sdldo_reg>;
68 vqmmc-supply = <&sdxldo_reg>;
61 status = "okay"; 69 status = "okay";
62 }; 70 };
63 71
64 usbotg: usb@3f120000 { 72 usbotg: usb@3f120000 {
73 vusb_d-supply = <&usbldo_reg>;
74 vusb_a-supply = <&iosr1_reg>;
65 status = "okay"; 75 status = "okay";
66 }; 76 };
67 77
@@ -69,3 +79,39 @@
69 status = "okay"; 79 status = "okay";
70 }; 80 };
71}; 81};
82
83#include "bcm59056.dtsi"
84
85&pmu {
86 compatible = "brcm,bcm59056";
87 interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
88 regulators {
89 camldo1_reg: camldo1 {
90 regulator-min-microvolt = <3300000>;
91 regulator-max-microvolt = <3300000>;
92 regulator-always-on;
93 };
94
95 sdldo_reg: sdldo {
96 regulator-min-microvolt = <3000000>;
97 regulator-max-microvolt = <3000000>;
98 };
99
100 sdxldo_reg: sdxldo {
101 regulator-min-microvolt = <2700000>;
102 regulator-max-microvolt = <3300000>;
103 };
104
105 usbldo_reg: usbldo {
106 regulator-min-microvolt = <3300000>;
107 regulator-max-microvolt = <3300000>;
108 regulator-always-on;
109 };
110
111 iosr1_reg: iosr1 {
112 regulator-min-microvolt = <1800000>;
113 regulator-max-microvolt = <1800000>;
114 regulator-always-on;
115 };
116 };
117};
diff --git a/arch/arm/boot/dts/bcm59056.dtsi b/arch/arm/boot/dts/bcm59056.dtsi
new file mode 100644
index 000000000000..dfadaaa89b05
--- /dev/null
+++ b/arch/arm/boot/dts/bcm59056.dtsi
@@ -0,0 +1,74 @@
1/*
2* Copyright 2014 Linaro Limited
3* Author: Matt Porter <mporter@linaro.org>
4*
5* This program is free software; you can redistribute it and/or modify it
6* under the terms of the GNU General Public License as published by the
7* Free Software Foundation; either version 2 of the License, or (at your
8* option) any later version.
9*/
10
11&pmu {
12 compatible = "brcm,bcm59056";
13 regulators {
14 rfldo_reg: rfldo {
15 };
16
17 camldo1_reg: camldo1 {
18 };
19
20 camldo2_reg: camldo2 {
21 };
22
23 simldo1_reg: simldo1 {
24 };
25
26 simldo2_reg: simldo2 {
27 };
28
29 sdldo_reg: sdldo {
30 };
31
32 sdxldo_reg: sdxldo {
33 };
34
35 mmcldo1_reg: mmcldo1 {
36 };
37
38 mmcldo2_reg: mmcldo2 {
39 };
40
41 audldo_reg: audldo {
42 };
43
44 micldo_reg: micldo {
45 };
46
47 usbldo_reg: usbldo {
48 };
49
50 vibldo_reg: vibldo {
51 };
52
53 csr_reg: csr {
54 };
55
56 iosr1_reg: iosr1 {
57 };
58
59 iosr2_reg: iosr2 {
60 };
61
62 msr_reg: msr {
63 };
64
65 sdsr1_reg: sdsr1 {
66 };
67
68 sdsr2_reg: sdsr2 {
69 };
70
71 vsr_reg: vsr {
72 };
73 };
74};