diff options
author | Olof Johansson <olof@lixom.net> | 2014-03-11 16:30:39 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2014-03-11 16:30:49 -0400 |
commit | fdc52533f52f38a118ab131180df52c8b5db7ff7 (patch) | |
tree | 424a0e99627ba0f5d40fa911db109fbfd8688ad2 | |
parent | 59bb376f0e0a2bf7103aa57b45faab9963b16c4f (diff) | |
parent | b7c6c1760685f7d3a3eecc19f4b792881bf1d907 (diff) |
Merge tag 'bcm2835-for-3.15-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi into next/dt
Merge "ARM: bcm2835: DT changes for 3.15" from Stephen Warren:
A variety of features are added to the bcm2835 device trees:
- ARM PMU, for perf_event
- DMA controller
- I2S controller
A few cleanups are applied to the DTs too.
* tag 'bcm2835-for-3.15-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi:
ARM: bcm2835: fix clock DT node names
ARM: bcm2835: node name unit address cleanup
ARM: bcm2835: fix DT node sort order
ARM: bcm2835: add I2S driver to device tree
ARM: bcm2835: add dmaengine driver to device tree
ARM: bcm2835: perf_event support for Raspberry-Pi
Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r-- | arch/arm/boot/dts/bcm2835.dtsi | 92 |
1 files changed, 65 insertions, 27 deletions
diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi index b021c96d3ba1..b8473c43e888 100644 --- a/arch/arm/boot/dts/bcm2835.dtsi +++ b/arch/arm/boot/dts/bcm2835.dtsi | |||
@@ -15,39 +15,52 @@ | |||
15 | #size-cells = <1>; | 15 | #size-cells = <1>; |
16 | ranges = <0x7e000000 0x20000000 0x02000000>; | 16 | ranges = <0x7e000000 0x20000000 0x02000000>; |
17 | 17 | ||
18 | timer { | 18 | timer@7e003000 { |
19 | compatible = "brcm,bcm2835-system-timer"; | 19 | compatible = "brcm,bcm2835-system-timer"; |
20 | reg = <0x7e003000 0x1000>; | 20 | reg = <0x7e003000 0x1000>; |
21 | interrupts = <1 0>, <1 1>, <1 2>, <1 3>; | 21 | interrupts = <1 0>, <1 1>, <1 2>, <1 3>; |
22 | clock-frequency = <1000000>; | 22 | clock-frequency = <1000000>; |
23 | }; | 23 | }; |
24 | 24 | ||
25 | intc: interrupt-controller { | 25 | dma: dma@7e007000 { |
26 | compatible = "brcm,bcm2835-dma"; | ||
27 | reg = <0x7e007000 0xf00>; | ||
28 | interrupts = <1 16>, | ||
29 | <1 17>, | ||
30 | <1 18>, | ||
31 | <1 19>, | ||
32 | <1 20>, | ||
33 | <1 21>, | ||
34 | <1 22>, | ||
35 | <1 23>, | ||
36 | <1 24>, | ||
37 | <1 25>, | ||
38 | <1 26>, | ||
39 | <1 27>, | ||
40 | <1 28>; | ||
41 | |||
42 | #dma-cells = <1>; | ||
43 | brcm,dma-channel-mask = <0x7f35>; | ||
44 | }; | ||
45 | |||
46 | intc: interrupt-controller@7e00b200 { | ||
26 | compatible = "brcm,bcm2835-armctrl-ic"; | 47 | compatible = "brcm,bcm2835-armctrl-ic"; |
27 | reg = <0x7e00b200 0x200>; | 48 | reg = <0x7e00b200 0x200>; |
28 | interrupt-controller; | 49 | interrupt-controller; |
29 | #interrupt-cells = <2>; | 50 | #interrupt-cells = <2>; |
30 | }; | 51 | }; |
31 | 52 | ||
32 | watchdog { | 53 | watchdog@7e100000 { |
33 | compatible = "brcm,bcm2835-pm-wdt"; | 54 | compatible = "brcm,bcm2835-pm-wdt"; |
34 | reg = <0x7e100000 0x28>; | 55 | reg = <0x7e100000 0x28>; |
35 | }; | 56 | }; |
36 | 57 | ||
37 | rng { | 58 | rng@7e104000 { |
38 | compatible = "brcm,bcm2835-rng"; | 59 | compatible = "brcm,bcm2835-rng"; |
39 | reg = <0x7e104000 0x10>; | 60 | reg = <0x7e104000 0x10>; |
40 | }; | 61 | }; |
41 | 62 | ||
42 | uart@20201000 { | 63 | gpio: gpio@7e200000 { |
43 | compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; | ||
44 | reg = <0x7e201000 0x1000>; | ||
45 | interrupts = <2 25>; | ||
46 | clock-frequency = <3000000>; | ||
47 | arm,primecell-periphid = <0x00241011>; | ||
48 | }; | ||
49 | |||
50 | gpio: gpio { | ||
51 | compatible = "brcm,bcm2835-gpio"; | 64 | compatible = "brcm,bcm2835-gpio"; |
52 | reg = <0x7e200000 0xb4>; | 65 | reg = <0x7e200000 0xb4>; |
53 | /* | 66 | /* |
@@ -70,7 +83,25 @@ | |||
70 | #interrupt-cells = <2>; | 83 | #interrupt-cells = <2>; |
71 | }; | 84 | }; |
72 | 85 | ||
73 | spi: spi@20204000 { | 86 | uart@7e201000 { |
87 | compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; | ||
88 | reg = <0x7e201000 0x1000>; | ||
89 | interrupts = <2 25>; | ||
90 | clock-frequency = <3000000>; | ||
91 | arm,primecell-periphid = <0x00241011>; | ||
92 | }; | ||
93 | |||
94 | i2s: i2s@7e203000 { | ||
95 | compatible = "brcm,bcm2835-i2s"; | ||
96 | reg = <0x7e203000 0x20>, | ||
97 | <0x7e101098 0x02>; | ||
98 | |||
99 | dmas = <&dma 2>, | ||
100 | <&dma 3>; | ||
101 | dma-names = "tx", "rx"; | ||
102 | }; | ||
103 | |||
104 | spi: spi@7e204000 { | ||
74 | compatible = "brcm,bcm2835-spi"; | 105 | compatible = "brcm,bcm2835-spi"; |
75 | reg = <0x7e204000 0x1000>; | 106 | reg = <0x7e204000 0x1000>; |
76 | interrupts = <2 22>; | 107 | interrupts = <2 22>; |
@@ -90,7 +121,15 @@ | |||
90 | status = "disabled"; | 121 | status = "disabled"; |
91 | }; | 122 | }; |
92 | 123 | ||
93 | i2c1: i2c@20804000 { | 124 | sdhci: sdhci@7e300000 { |
125 | compatible = "brcm,bcm2835-sdhci"; | ||
126 | reg = <0x7e300000 0x100>; | ||
127 | interrupts = <2 30>; | ||
128 | clocks = <&clk_mmc>; | ||
129 | status = "disabled"; | ||
130 | }; | ||
131 | |||
132 | i2c1: i2c@7e804000 { | ||
94 | compatible = "brcm,bcm2835-i2c"; | 133 | compatible = "brcm,bcm2835-i2c"; |
95 | reg = <0x7e804000 0x1000>; | 134 | reg = <0x7e804000 0x1000>; |
96 | interrupts = <2 21>; | 135 | interrupts = <2 21>; |
@@ -100,19 +139,15 @@ | |||
100 | status = "disabled"; | 139 | status = "disabled"; |
101 | }; | 140 | }; |
102 | 141 | ||
103 | sdhci: sdhci { | 142 | usb@7e980000 { |
104 | compatible = "brcm,bcm2835-sdhci"; | ||
105 | reg = <0x7e300000 0x100>; | ||
106 | interrupts = <2 30>; | ||
107 | clocks = <&clk_mmc>; | ||
108 | status = "disabled"; | ||
109 | }; | ||
110 | |||
111 | usb { | ||
112 | compatible = "brcm,bcm2835-usb"; | 143 | compatible = "brcm,bcm2835-usb"; |
113 | reg = <0x7e980000 0x10000>; | 144 | reg = <0x7e980000 0x10000>; |
114 | interrupts = <1 9>; | 145 | interrupts = <1 9>; |
115 | }; | 146 | }; |
147 | |||
148 | arm-pmu { | ||
149 | compatible = "arm,arm1176-pmu"; | ||
150 | }; | ||
116 | }; | 151 | }; |
117 | 152 | ||
118 | clocks { | 153 | clocks { |
@@ -120,24 +155,27 @@ | |||
120 | #address-cells = <1>; | 155 | #address-cells = <1>; |
121 | #size-cells = <0>; | 156 | #size-cells = <0>; |
122 | 157 | ||
123 | clk_mmc: mmc { | 158 | clk_mmc: clock@0 { |
124 | compatible = "fixed-clock"; | 159 | compatible = "fixed-clock"; |
125 | reg = <0>; | 160 | reg = <0>; |
126 | #clock-cells = <0>; | 161 | #clock-cells = <0>; |
162 | clock-output-names = "mmc"; | ||
127 | clock-frequency = <100000000>; | 163 | clock-frequency = <100000000>; |
128 | }; | 164 | }; |
129 | 165 | ||
130 | clk_i2c: i2c { | 166 | clk_i2c: clock@1 { |
131 | compatible = "fixed-clock"; | 167 | compatible = "fixed-clock"; |
132 | reg = <1>; | 168 | reg = <1>; |
133 | #clock-cells = <0>; | 169 | #clock-cells = <0>; |
170 | clock-output-names = "i2c"; | ||
134 | clock-frequency = <250000000>; | 171 | clock-frequency = <250000000>; |
135 | }; | 172 | }; |
136 | 173 | ||
137 | clk_spi: spi { | 174 | clk_spi: clock@2 { |
138 | compatible = "fixed-clock"; | 175 | compatible = "fixed-clock"; |
139 | reg = <2>; | 176 | reg = <2>; |
140 | #clock-cells = <0>; | 177 | #clock-cells = <0>; |
178 | clock-output-names = "spi"; | ||
141 | clock-frequency = <250000000>; | 179 | clock-frequency = <250000000>; |
142 | }; | 180 | }; |
143 | }; | 181 | }; |