Wed Aug 22 13:16:41 2018 UTC ()
Explicitly disable v3d, pixelvalve, and hvs for bcm283x at the moment.

When these devices or hdmi are enabled, firmware turns off GPU functionality of
VideoCore, expecting OS drivers handle it appropriately:

https://github.com/raspberrypi/firmware/issues/763

This breaks userland applications using /dev/vchiq, such as omxplayer.

XXX We need enable them back when we import vc4 drm driver.

Fix PR port-evbarm/52984 and
PR port-arm/53042.

OK jmcneill, skrll


(rin)
diff -r1.4 -r1.5 src/sys/external/gpl2/dts/dist/arch/arm/boot/dts/bcm283x.dtsi

cvs diff -r1.4 -r1.5 src/sys/external/gpl2/dts/dist/arch/arm/boot/dts/bcm283x.dtsi (switch to unified diff)

--- src/sys/external/gpl2/dts/dist/arch/arm/boot/dts/bcm283x.dtsi 2018/06/27 16:32:14 1.4
+++ src/sys/external/gpl2/dts/dist/arch/arm/boot/dts/bcm283x.dtsi 2018/08/22 13:16:41 1.5
@@ -1,675 +1,680 @@ @@ -1,675 +1,680 @@
1#include <dt-bindings/pinctrl/bcm2835.h> 1#include <dt-bindings/pinctrl/bcm2835.h>
2#include <dt-bindings/clock/bcm2835.h> 2#include <dt-bindings/clock/bcm2835.h>
3#include <dt-bindings/clock/bcm2835-aux.h> 3#include <dt-bindings/clock/bcm2835-aux.h>
4#include <dt-bindings/gpio/gpio.h> 4#include <dt-bindings/gpio/gpio.h>
5#include <dt-bindings/interrupt-controller/irq.h> 5#include <dt-bindings/interrupt-controller/irq.h>
6 6
7/* firmware-provided startup stubs live here, where the secondary CPUs are 7/* firmware-provided startup stubs live here, where the secondary CPUs are
8 * spinning. 8 * spinning.
9 */ 9 */
10/memreserve/ 0x00000000 0x00001000; 10/memreserve/ 0x00000000 0x00001000;
11 11
12/* This include file covers the common peripherals and configuration between 12/* This include file covers the common peripherals and configuration between
13 * bcm2835 and bcm2836 implementations, leaving the CPU configuration to 13 * bcm2835 and bcm2836 implementations, leaving the CPU configuration to
14 * bcm2835.dtsi and bcm2836.dtsi. 14 * bcm2835.dtsi and bcm2836.dtsi.
15 */ 15 */
16 16
17/ { 17/ {
18 compatible = "brcm,bcm2835"; 18 compatible = "brcm,bcm2835";
19 model = "BCM2835"; 19 model = "BCM2835";
20 interrupt-parent = <&intc>; 20 interrupt-parent = <&intc>;
21 #address-cells = <1>; 21 #address-cells = <1>;
22 #size-cells = <1>; 22 #size-cells = <1>;
23 23
24 aliases { 24 aliases {
25 serial0 = &uart0; 25 serial0 = &uart0;
26 serial1 = &uart1; 26 serial1 = &uart1;
27 }; 27 };
28 28
29 chosen { 29 chosen {
30 stdout-path = "serial0:115200n8"; 30 stdout-path = "serial0:115200n8";
31 }; 31 };
32 32
33 thermal-zones { 33 thermal-zones {
34 cpu_thermal: cpu-thermal { 34 cpu_thermal: cpu-thermal {
35 polling-delay-passive = <0>; 35 polling-delay-passive = <0>;
36 polling-delay = <1000>; 36 polling-delay = <1000>;
37 37
38 thermal-sensors = <&thermal>; 38 thermal-sensors = <&thermal>;
39 39
40 trips { 40 trips {
41 cpu-crit { 41 cpu-crit {
42 temperature = <80000>; 42 temperature = <80000>;
43 hysteresis = <0>; 43 hysteresis = <0>;
44 type = "critical"; 44 type = "critical";
45 }; 45 };
46 }; 46 };
47 47
48 cooling-maps { 48 cooling-maps {
49 }; 49 };
50 }; 50 };
51 }; 51 };
52 52
53 soc { 53 soc {
54 compatible = "simple-bus"; 54 compatible = "simple-bus";
55 #address-cells = <1>; 55 #address-cells = <1>;
56 #size-cells = <1>; 56 #size-cells = <1>;
57 57
58 timer@7e003000 { 58 timer@7e003000 {
59 compatible = "brcm,bcm2835-system-timer"; 59 compatible = "brcm,bcm2835-system-timer";
60 reg = <0x7e003000 0x1000>; 60 reg = <0x7e003000 0x1000>;
61 interrupts = <1 0>, <1 1>, <1 2>, <1 3>; 61 interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
62 /* This could be a reference to BCM2835_CLOCK_TIMER, 62 /* This could be a reference to BCM2835_CLOCK_TIMER,
63 * but we don't have the driver using the common clock 63 * but we don't have the driver using the common clock
64 * support yet. 64 * support yet.
65 */ 65 */
66 clock-frequency = <1000000>; 66 clock-frequency = <1000000>;
67 }; 67 };
68 68
69 dma: dma@7e007000 { 69 dma: dma@7e007000 {
70 compatible = "brcm,bcm2835-dma"; 70 compatible = "brcm,bcm2835-dma";
71 reg = <0x7e007000 0xf00>; 71 reg = <0x7e007000 0xf00>;
72 interrupts = <1 16>, 72 interrupts = <1 16>,
73 <1 17>, 73 <1 17>,
74 <1 18>, 74 <1 18>,
75 <1 19>, 75 <1 19>,
76 <1 20>, 76 <1 20>,
77 <1 21>, 77 <1 21>,
78 <1 22>, 78 <1 22>,
79 <1 23>, 79 <1 23>,
80 <1 24>, 80 <1 24>,
81 <1 25>, 81 <1 25>,
82 <1 26>, 82 <1 26>,
83 /* dma channel 11-14 share one irq */ 83 /* dma channel 11-14 share one irq */
84 <1 27>, 84 <1 27>,
85 <1 27>, 85 <1 27>,
86 <1 27>, 86 <1 27>,
87 <1 27>, 87 <1 27>,
88 /* unused shared irq for all channels */ 88 /* unused shared irq for all channels */
89 <1 28>; 89 <1 28>;
90 interrupt-names = "dma0", 90 interrupt-names = "dma0",
91 "dma1", 91 "dma1",
92 "dma2", 92 "dma2",
93 "dma3", 93 "dma3",
94 "dma4", 94 "dma4",
95 "dma5", 95 "dma5",
96 "dma6", 96 "dma6",
97 "dma7", 97 "dma7",
98 "dma8", 98 "dma8",
99 "dma9", 99 "dma9",
100 "dma10", 100 "dma10",
101 "dma11", 101 "dma11",
102 "dma12", 102 "dma12",
103 "dma13", 103 "dma13",
104 "dma14", 104 "dma14",
105 "dma-shared-all"; 105 "dma-shared-all";
106 #dma-cells = <1>; 106 #dma-cells = <1>;
107 brcm,dma-channel-mask = <0x7f35>; 107 brcm,dma-channel-mask = <0x7f35>;
108 }; 108 };
109 109
110 intc: interrupt-controller@7e00b200 { 110 intc: interrupt-controller@7e00b200 {
111 compatible = "brcm,bcm2835-armctrl-ic"; 111 compatible = "brcm,bcm2835-armctrl-ic";
112 reg = <0x7e00b200 0x200>; 112 reg = <0x7e00b200 0x200>;
113 interrupt-controller; 113 interrupt-controller;
114 #interrupt-cells = <2>; 114 #interrupt-cells = <2>;
115 }; 115 };
116 116
117 watchdog@7e100000 { 117 watchdog@7e100000 {
118 compatible = "brcm,bcm2835-pm-wdt"; 118 compatible = "brcm,bcm2835-pm-wdt";
119 reg = <0x7e100000 0x28>; 119 reg = <0x7e100000 0x28>;
120 }; 120 };
121 121
122 clocks: cprman@7e101000 { 122 clocks: cprman@7e101000 {
123 compatible = "brcm,bcm2835-cprman"; 123 compatible = "brcm,bcm2835-cprman";
124 #clock-cells = <1>; 124 #clock-cells = <1>;
125 reg = <0x7e101000 0x2000>; 125 reg = <0x7e101000 0x2000>;
126 126
127 /* CPRMAN derives almost everything from the 127 /* CPRMAN derives almost everything from the
128 * platform's oscillator. However, the DSI 128 * platform's oscillator. However, the DSI
129 * pixel clocks come from the DSI analog PHY. 129 * pixel clocks come from the DSI analog PHY.
130 */ 130 */
131 clocks = <&clk_osc>, 131 clocks = <&clk_osc>,
132 <&dsi0 0>, <&dsi0 1>, <&dsi0 2>, 132 <&dsi0 0>, <&dsi0 1>, <&dsi0 2>,
133 <&dsi1 0>, <&dsi1 1>, <&dsi1 2>; 133 <&dsi1 0>, <&dsi1 1>, <&dsi1 2>;
134 }; 134 };
135 135
136 rng@7e104000 { 136 rng@7e104000 {
137 compatible = "brcm,bcm2835-rng"; 137 compatible = "brcm,bcm2835-rng";
138 reg = <0x7e104000 0x10>; 138 reg = <0x7e104000 0x10>;
139 interrupts = <2 29>; 139 interrupts = <2 29>;
140 }; 140 };
141 141
142 mailbox: mailbox@7e00b880 { 142 mailbox: mailbox@7e00b880 {
143 compatible = "brcm,bcm2835-mbox"; 143 compatible = "brcm,bcm2835-mbox";
144 reg = <0x7e00b880 0x40>; 144 reg = <0x7e00b880 0x40>;
145 interrupts = <0 1>; 145 interrupts = <0 1>;
146 #mbox-cells = <0>; 146 #mbox-cells = <0>;
147 }; 147 };
148 148
149 gpio: gpio@7e200000 { 149 gpio: gpio@7e200000 {
150 compatible = "brcm,bcm2835-gpio"; 150 compatible = "brcm,bcm2835-gpio";
151 reg = <0x7e200000 0xb4>; 151 reg = <0x7e200000 0xb4>;
152 /* 152 /*
153 * The GPIO IP block is designed for 3 banks of GPIOs. 153 * The GPIO IP block is designed for 3 banks of GPIOs.
154 * Each bank has a GPIO interrupt for itself. 154 * Each bank has a GPIO interrupt for itself.
155 * There is an overall "any bank" interrupt. 155 * There is an overall "any bank" interrupt.
156 * In order, these are GIC interrupts 17, 18, 19, 20. 156 * In order, these are GIC interrupts 17, 18, 19, 20.
157 * Since the BCM2835 only has 2 banks, the 2nd bank 157 * Since the BCM2835 only has 2 banks, the 2nd bank
158 * interrupt output appears to be mirrored onto the 158 * interrupt output appears to be mirrored onto the
159 * 3rd bank's interrupt signal. 159 * 3rd bank's interrupt signal.
160 * So, a bank0 interrupt shows up on 17, 20, and 160 * So, a bank0 interrupt shows up on 17, 20, and
161 * a bank1 interrupt shows up on 18, 19, 20! 161 * a bank1 interrupt shows up on 18, 19, 20!
162 */ 162 */
163 interrupts = <2 17>, <2 18>, <2 19>, <2 20>; 163 interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
164 164
165 gpio-controller; 165 gpio-controller;
166 #gpio-cells = <2>; 166 #gpio-cells = <2>;
167 167
168 interrupt-controller; 168 interrupt-controller;
169 #interrupt-cells = <2>; 169 #interrupt-cells = <2>;
170 170
171 /* Defines pin muxing groups according to 171 /* Defines pin muxing groups according to
172 * BCM2835-ARM-Peripherals.pdf page 102. 172 * BCM2835-ARM-Peripherals.pdf page 102.
173 * 173 *
174 * While each pin can have its mux selected 174 * While each pin can have its mux selected
175 * for various functions individually, some 175 * for various functions individually, some
176 * groups only make sense to switch to a 176 * groups only make sense to switch to a
177 * particular function together. 177 * particular function together.
178 */ 178 */
179 dpi_gpio0: dpi_gpio0 { 179 dpi_gpio0: dpi_gpio0 {
180 brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 180 brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
181 12 13 14 15 16 17 18 19 181 12 13 14 15 16 17 18 19
182 20 21 22 23 24 25 26 27>; 182 20 21 22 23 24 25 26 27>;
183 brcm,function = <BCM2835_FSEL_ALT2>; 183 brcm,function = <BCM2835_FSEL_ALT2>;
184 }; 184 };
185 emmc_gpio22: emmc_gpio22 { 185 emmc_gpio22: emmc_gpio22 {
186 brcm,pins = <22 23 24 25 26 27>; 186 brcm,pins = <22 23 24 25 26 27>;
187 brcm,function = <BCM2835_FSEL_ALT3>; 187 brcm,function = <BCM2835_FSEL_ALT3>;
188 }; 188 };
189 emmc_gpio34: emmc_gpio34 { 189 emmc_gpio34: emmc_gpio34 {
190 brcm,pins = <34 35 36 37 38 39>; 190 brcm,pins = <34 35 36 37 38 39>;
191 brcm,function = <BCM2835_FSEL_ALT3>; 191 brcm,function = <BCM2835_FSEL_ALT3>;
192 brcm,pull = <BCM2835_PUD_OFF 192 brcm,pull = <BCM2835_PUD_OFF
193 BCM2835_PUD_UP 193 BCM2835_PUD_UP
194 BCM2835_PUD_UP 194 BCM2835_PUD_UP
195 BCM2835_PUD_UP 195 BCM2835_PUD_UP
196 BCM2835_PUD_UP 196 BCM2835_PUD_UP
197 BCM2835_PUD_UP>; 197 BCM2835_PUD_UP>;
198 }; 198 };
199 emmc_gpio48: emmc_gpio48 { 199 emmc_gpio48: emmc_gpio48 {
200 brcm,pins = <48 49 50 51 52 53>; 200 brcm,pins = <48 49 50 51 52 53>;
201 brcm,function = <BCM2835_FSEL_ALT3>; 201 brcm,function = <BCM2835_FSEL_ALT3>;
202 }; 202 };
203 203
204 gpclk0_gpio4: gpclk0_gpio4 { 204 gpclk0_gpio4: gpclk0_gpio4 {
205 brcm,pins = <4>; 205 brcm,pins = <4>;
206 brcm,function = <BCM2835_FSEL_ALT0>; 206 brcm,function = <BCM2835_FSEL_ALT0>;
207 }; 207 };
208 gpclk1_gpio5: gpclk1_gpio5 { 208 gpclk1_gpio5: gpclk1_gpio5 {
209 brcm,pins = <5>; 209 brcm,pins = <5>;
210 brcm,function = <BCM2835_FSEL_ALT0>; 210 brcm,function = <BCM2835_FSEL_ALT0>;
211 }; 211 };
212 gpclk1_gpio42: gpclk1_gpio42 { 212 gpclk1_gpio42: gpclk1_gpio42 {
213 brcm,pins = <42>; 213 brcm,pins = <42>;
214 brcm,function = <BCM2835_FSEL_ALT0>; 214 brcm,function = <BCM2835_FSEL_ALT0>;
215 }; 215 };
216 gpclk1_gpio44: gpclk1_gpio44 { 216 gpclk1_gpio44: gpclk1_gpio44 {
217 brcm,pins = <44>; 217 brcm,pins = <44>;
218 brcm,function = <BCM2835_FSEL_ALT0>; 218 brcm,function = <BCM2835_FSEL_ALT0>;
219 }; 219 };
220 gpclk2_gpio6: gpclk2_gpio6 { 220 gpclk2_gpio6: gpclk2_gpio6 {
221 brcm,pins = <6>; 221 brcm,pins = <6>;
222 brcm,function = <BCM2835_FSEL_ALT0>; 222 brcm,function = <BCM2835_FSEL_ALT0>;
223 }; 223 };
224 gpclk2_gpio43: gpclk2_gpio43 { 224 gpclk2_gpio43: gpclk2_gpio43 {
225 brcm,pins = <43>; 225 brcm,pins = <43>;
226 brcm,function = <BCM2835_FSEL_ALT0>; 226 brcm,function = <BCM2835_FSEL_ALT0>;
227 brcm,pull = <BCM2835_PUD_OFF>; 227 brcm,pull = <BCM2835_PUD_OFF>;
228 }; 228 };
229 229
230 i2c0_gpio0: i2c0_gpio0 { 230 i2c0_gpio0: i2c0_gpio0 {
231 brcm,pins = <0 1>; 231 brcm,pins = <0 1>;
232 brcm,function = <BCM2835_FSEL_ALT0>; 232 brcm,function = <BCM2835_FSEL_ALT0>;
233 }; 233 };
234 i2c0_gpio28: i2c0_gpio28 { 234 i2c0_gpio28: i2c0_gpio28 {
235 brcm,pins = <28 29>; 235 brcm,pins = <28 29>;
236 brcm,function = <BCM2835_FSEL_ALT0>; 236 brcm,function = <BCM2835_FSEL_ALT0>;
237 }; 237 };
238 i2c0_gpio44: i2c0_gpio44 { 238 i2c0_gpio44: i2c0_gpio44 {
239 brcm,pins = <44 45>; 239 brcm,pins = <44 45>;
240 brcm,function = <BCM2835_FSEL_ALT1>; 240 brcm,function = <BCM2835_FSEL_ALT1>;
241 }; 241 };
242 i2c1_gpio2: i2c1_gpio2 { 242 i2c1_gpio2: i2c1_gpio2 {
243 brcm,pins = <2 3>; 243 brcm,pins = <2 3>;
244 brcm,function = <BCM2835_FSEL_ALT0>; 244 brcm,function = <BCM2835_FSEL_ALT0>;
245 }; 245 };
246 i2c1_gpio44: i2c1_gpio44 { 246 i2c1_gpio44: i2c1_gpio44 {
247 brcm,pins = <44 45>; 247 brcm,pins = <44 45>;
248 brcm,function = <BCM2835_FSEL_ALT2>; 248 brcm,function = <BCM2835_FSEL_ALT2>;
249 }; 249 };
250 i2c_slave_gpio18: i2c_slave_gpio18 { 250 i2c_slave_gpio18: i2c_slave_gpio18 {
251 brcm,pins = <18 19 20 21>; 251 brcm,pins = <18 19 20 21>;
252 brcm,function = <BCM2835_FSEL_ALT3>; 252 brcm,function = <BCM2835_FSEL_ALT3>;
253 }; 253 };
254 254
255 jtag_gpio4: jtag_gpio4 { 255 jtag_gpio4: jtag_gpio4 {
256 brcm,pins = <4 5 6 12 13>; 256 brcm,pins = <4 5 6 12 13>;
257 brcm,function = <BCM2835_FSEL_ALT5>; 257 brcm,function = <BCM2835_FSEL_ALT5>;
258 }; 258 };
259 jtag_gpio22: jtag_gpio22 { 259 jtag_gpio22: jtag_gpio22 {
260 brcm,pins = <22 23 24 25 26 27>; 260 brcm,pins = <22 23 24 25 26 27>;
261 brcm,function = <BCM2835_FSEL_ALT4>; 261 brcm,function = <BCM2835_FSEL_ALT4>;
262 }; 262 };
263 263
264 pcm_gpio18: pcm_gpio18 { 264 pcm_gpio18: pcm_gpio18 {
265 brcm,pins = <18 19 20 21>; 265 brcm,pins = <18 19 20 21>;
266 brcm,function = <BCM2835_FSEL_ALT0>; 266 brcm,function = <BCM2835_FSEL_ALT0>;
267 }; 267 };
268 pcm_gpio28: pcm_gpio28 { 268 pcm_gpio28: pcm_gpio28 {
269 brcm,pins = <28 29 30 31>; 269 brcm,pins = <28 29 30 31>;
270 brcm,function = <BCM2835_FSEL_ALT2>; 270 brcm,function = <BCM2835_FSEL_ALT2>;
271 }; 271 };
272 272
273 pwm0_gpio12: pwm0_gpio12 { 273 pwm0_gpio12: pwm0_gpio12 {
274 brcm,pins = <12>; 274 brcm,pins = <12>;
275 brcm,function = <BCM2835_FSEL_ALT0>; 275 brcm,function = <BCM2835_FSEL_ALT0>;
276 }; 276 };
277 pwm0_gpio18: pwm0_gpio18 { 277 pwm0_gpio18: pwm0_gpio18 {
278 brcm,pins = <18>; 278 brcm,pins = <18>;
279 brcm,function = <BCM2835_FSEL_ALT5>; 279 brcm,function = <BCM2835_FSEL_ALT5>;
280 }; 280 };
281 pwm0_gpio40: pwm0_gpio40 { 281 pwm0_gpio40: pwm0_gpio40 {
282 brcm,pins = <40>; 282 brcm,pins = <40>;
283 brcm,function = <BCM2835_FSEL_ALT0>; 283 brcm,function = <BCM2835_FSEL_ALT0>;
284 }; 284 };
285 pwm1_gpio13: pwm1_gpio13 { 285 pwm1_gpio13: pwm1_gpio13 {
286 brcm,pins = <13>; 286 brcm,pins = <13>;
287 brcm,function = <BCM2835_FSEL_ALT0>; 287 brcm,function = <BCM2835_FSEL_ALT0>;
288 }; 288 };
289 pwm1_gpio19: pwm1_gpio19 { 289 pwm1_gpio19: pwm1_gpio19 {
290 brcm,pins = <19>; 290 brcm,pins = <19>;
291 brcm,function = <BCM2835_FSEL_ALT5>; 291 brcm,function = <BCM2835_FSEL_ALT5>;
292 }; 292 };
293 pwm1_gpio41: pwm1_gpio41 { 293 pwm1_gpio41: pwm1_gpio41 {
294 brcm,pins = <41>; 294 brcm,pins = <41>;
295 brcm,function = <BCM2835_FSEL_ALT0>; 295 brcm,function = <BCM2835_FSEL_ALT0>;
296 }; 296 };
297 pwm1_gpio45: pwm1_gpio45 { 297 pwm1_gpio45: pwm1_gpio45 {
298 brcm,pins = <45>; 298 brcm,pins = <45>;
299 brcm,function = <BCM2835_FSEL_ALT0>; 299 brcm,function = <BCM2835_FSEL_ALT0>;
300 }; 300 };
301 301
302 sdhost_gpio48: sdhost_gpio48 { 302 sdhost_gpio48: sdhost_gpio48 {
303 brcm,pins = <48 49 50 51 52 53>; 303 brcm,pins = <48 49 50 51 52 53>;
304 brcm,function = <BCM2835_FSEL_ALT0>; 304 brcm,function = <BCM2835_FSEL_ALT0>;
305 }; 305 };
306 306
307 spi0_gpio7: spi0_gpio7 { 307 spi0_gpio7: spi0_gpio7 {
308 brcm,pins = <7 8 9 10 11>; 308 brcm,pins = <7 8 9 10 11>;
309 brcm,function = <BCM2835_FSEL_ALT0>; 309 brcm,function = <BCM2835_FSEL_ALT0>;
310 }; 310 };
311 spi0_gpio35: spi0_gpio35 { 311 spi0_gpio35: spi0_gpio35 {
312 brcm,pins = <35 36 37 38 39>; 312 brcm,pins = <35 36 37 38 39>;
313 brcm,function = <BCM2835_FSEL_ALT0>; 313 brcm,function = <BCM2835_FSEL_ALT0>;
314 }; 314 };
315 spi1_gpio16: spi1_gpio16 { 315 spi1_gpio16: spi1_gpio16 {
316 brcm,pins = <16 17 18 19 20 21>; 316 brcm,pins = <16 17 18 19 20 21>;
317 brcm,function = <BCM2835_FSEL_ALT4>; 317 brcm,function = <BCM2835_FSEL_ALT4>;
318 }; 318 };
319 spi2_gpio40: spi2_gpio40 { 319 spi2_gpio40: spi2_gpio40 {
320 brcm,pins = <40 41 42 43 44 45>; 320 brcm,pins = <40 41 42 43 44 45>;
321 brcm,function = <BCM2835_FSEL_ALT4>; 321 brcm,function = <BCM2835_FSEL_ALT4>;
322 }; 322 };
323 323
324 uart0_gpio14: uart0_gpio14 { 324 uart0_gpio14: uart0_gpio14 {
325 brcm,pins = <14 15>; 325 brcm,pins = <14 15>;
326 brcm,function = <BCM2835_FSEL_ALT0>; 326 brcm,function = <BCM2835_FSEL_ALT0>;
327 }; 327 };
328 /* Separate from the uart0_gpio14 group 328 /* Separate from the uart0_gpio14 group
329 * because it conflicts with spi1_gpio16, and 329 * because it conflicts with spi1_gpio16, and
330 * people often run uart0 on the two pins 330 * people often run uart0 on the two pins
331 * without flow control. 331 * without flow control.
332 */ 332 */
333 uart0_ctsrts_gpio16: uart0_ctsrts_gpio16 { 333 uart0_ctsrts_gpio16: uart0_ctsrts_gpio16 {
334 brcm,pins = <16 17>; 334 brcm,pins = <16 17>;
335 brcm,function = <BCM2835_FSEL_ALT3>; 335 brcm,function = <BCM2835_FSEL_ALT3>;
336 }; 336 };
337 uart0_ctsrts_gpio30: uart0_ctsrts_gpio30 { 337 uart0_ctsrts_gpio30: uart0_ctsrts_gpio30 {
338 brcm,pins = <30 31>; 338 brcm,pins = <30 31>;
339 brcm,function = <BCM2835_FSEL_ALT3>; 339 brcm,function = <BCM2835_FSEL_ALT3>;
340 brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>; 340 brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>;
341 }; 341 };
342 uart0_gpio32: uart0_gpio32 { 342 uart0_gpio32: uart0_gpio32 {
343 brcm,pins = <32 33>; 343 brcm,pins = <32 33>;
344 brcm,function = <BCM2835_FSEL_ALT3>; 344 brcm,function = <BCM2835_FSEL_ALT3>;
345 brcm,pull = <BCM2835_PUD_OFF BCM2835_PUD_UP>; 345 brcm,pull = <BCM2835_PUD_OFF BCM2835_PUD_UP>;
346 }; 346 };
347 uart0_gpio36: uart0_gpio36 { 347 uart0_gpio36: uart0_gpio36 {
348 brcm,pins = <36 37>; 348 brcm,pins = <36 37>;
349 brcm,function = <BCM2835_FSEL_ALT2>; 349 brcm,function = <BCM2835_FSEL_ALT2>;
350 }; 350 };
351 uart0_ctsrts_gpio38: uart0_ctsrts_gpio38 { 351 uart0_ctsrts_gpio38: uart0_ctsrts_gpio38 {
352 brcm,pins = <38 39>; 352 brcm,pins = <38 39>;
353 brcm,function = <BCM2835_FSEL_ALT2>; 353 brcm,function = <BCM2835_FSEL_ALT2>;
354 }; 354 };
355 355
356 uart1_gpio14: uart1_gpio14 { 356 uart1_gpio14: uart1_gpio14 {
357 brcm,pins = <14 15>; 357 brcm,pins = <14 15>;
358 brcm,function = <BCM2835_FSEL_ALT5>; 358 brcm,function = <BCM2835_FSEL_ALT5>;
359 }; 359 };
360 uart1_ctsrts_gpio16: uart1_ctsrts_gpio16 { 360 uart1_ctsrts_gpio16: uart1_ctsrts_gpio16 {
361 brcm,pins = <16 17>; 361 brcm,pins = <16 17>;
362 brcm,function = <BCM2835_FSEL_ALT5>; 362 brcm,function = <BCM2835_FSEL_ALT5>;
363 }; 363 };
364 uart1_gpio32: uart1_gpio32 { 364 uart1_gpio32: uart1_gpio32 {
365 brcm,pins = <32 33>; 365 brcm,pins = <32 33>;
366 brcm,function = <BCM2835_FSEL_ALT5>; 366 brcm,function = <BCM2835_FSEL_ALT5>;
367 }; 367 };
368 uart1_ctsrts_gpio30: uart1_ctsrts_gpio30 { 368 uart1_ctsrts_gpio30: uart1_ctsrts_gpio30 {
369 brcm,pins = <30 31>; 369 brcm,pins = <30 31>;
370 brcm,function = <BCM2835_FSEL_ALT5>; 370 brcm,function = <BCM2835_FSEL_ALT5>;
371 }; 371 };
372 uart1_gpio40: uart1_gpio40 { 372 uart1_gpio40: uart1_gpio40 {
373 brcm,pins = <40 41>; 373 brcm,pins = <40 41>;
374 brcm,function = <BCM2835_FSEL_ALT5>; 374 brcm,function = <BCM2835_FSEL_ALT5>;
375 }; 375 };
376 uart1_ctsrts_gpio42: uart1_ctsrts_gpio42 { 376 uart1_ctsrts_gpio42: uart1_ctsrts_gpio42 {
377 brcm,pins = <42 43>; 377 brcm,pins = <42 43>;
378 brcm,function = <BCM2835_FSEL_ALT5>; 378 brcm,function = <BCM2835_FSEL_ALT5>;
379 }; 379 };
380 }; 380 };
381 381
382 uart0: serial@7e201000 { 382 uart0: serial@7e201000 {
383 compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; 383 compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
384 reg = <0x7e201000 0x1000>; 384 reg = <0x7e201000 0x1000>;
385 interrupts = <2 25>; 385 interrupts = <2 25>;
386 clocks = <&clocks BCM2835_CLOCK_UART>, 386 clocks = <&clocks BCM2835_CLOCK_UART>,
387 <&clocks BCM2835_CLOCK_VPU>; 387 <&clocks BCM2835_CLOCK_VPU>;
388 clock-names = "uartclk", "apb_pclk"; 388 clock-names = "uartclk", "apb_pclk";
389 arm,primecell-periphid = <0x00241011>; 389 arm,primecell-periphid = <0x00241011>;
390 }; 390 };
391 391
392 sdhost: mmc@7e202000 { 392 sdhost: mmc@7e202000 {
393 compatible = "brcm,bcm2835-sdhost"; 393 compatible = "brcm,bcm2835-sdhost";
394 reg = <0x7e202000 0x100>; 394 reg = <0x7e202000 0x100>;
395 interrupts = <2 24>; 395 interrupts = <2 24>;
396 clocks = <&clocks BCM2835_CLOCK_VPU>; 396 clocks = <&clocks BCM2835_CLOCK_VPU>;
397 dmas = <&dma 13>; 397 dmas = <&dma 13>;
398 dma-names = "rx-tx"; 398 dma-names = "rx-tx";
399 status = "disabled"; 399 status = "disabled";
400 }; 400 };
401 401
402 i2s: i2s@7e203000 { 402 i2s: i2s@7e203000 {
403 compatible = "brcm,bcm2835-i2s"; 403 compatible = "brcm,bcm2835-i2s";
404 reg = <0x7e203000 0x24>; 404 reg = <0x7e203000 0x24>;
405 clocks = <&clocks BCM2835_CLOCK_PCM>; 405 clocks = <&clocks BCM2835_CLOCK_PCM>;
406 406
407 dmas = <&dma 2>, 407 dmas = <&dma 2>,
408 <&dma 3>; 408 <&dma 3>;
409 dma-names = "tx", "rx"; 409 dma-names = "tx", "rx";
410 status = "disabled"; 410 status = "disabled";
411 }; 411 };
412 412
413 spi: spi@7e204000 { 413 spi: spi@7e204000 {
414 compatible = "brcm,bcm2835-spi"; 414 compatible = "brcm,bcm2835-spi";
415 reg = <0x7e204000 0x1000>; 415 reg = <0x7e204000 0x1000>;
416 interrupts = <2 22>; 416 interrupts = <2 22>;
417 clocks = <&clocks BCM2835_CLOCK_VPU>; 417 clocks = <&clocks BCM2835_CLOCK_VPU>;
418 #address-cells = <1>; 418 #address-cells = <1>;
419 #size-cells = <0>; 419 #size-cells = <0>;
420 status = "disabled"; 420 status = "disabled";
421 }; 421 };
422 422
423 i2c0: i2c@7e205000 { 423 i2c0: i2c@7e205000 {
424 compatible = "brcm,bcm2835-i2c"; 424 compatible = "brcm,bcm2835-i2c";
425 reg = <0x7e205000 0x1000>; 425 reg = <0x7e205000 0x1000>;
426 interrupts = <2 21>; 426 interrupts = <2 21>;
427 clocks = <&clocks BCM2835_CLOCK_VPU>; 427 clocks = <&clocks BCM2835_CLOCK_VPU>;
428 #address-cells = <1>; 428 #address-cells = <1>;
429 #size-cells = <0>; 429 #size-cells = <0>;
430 status = "disabled"; 430 status = "disabled";
431 }; 431 };
432 432
433 pixelvalve@7e206000 { 433 pixelvalve@7e206000 {
434 compatible = "brcm,bcm2835-pixelvalve0"; 434 compatible = "brcm,bcm2835-pixelvalve0";
435 reg = <0x7e206000 0x100>; 435 reg = <0x7e206000 0x100>;
436 interrupts = <2 13>; /* pwa0 */ 436 interrupts = <2 13>; /* pwa0 */
 437 status = "disabled";
437 }; 438 };
438 439
439 pixelvalve@7e207000 { 440 pixelvalve@7e207000 {
440 compatible = "brcm,bcm2835-pixelvalve1"; 441 compatible = "brcm,bcm2835-pixelvalve1";
441 reg = <0x7e207000 0x100>; 442 reg = <0x7e207000 0x100>;
442 interrupts = <2 14>; /* pwa1 */ 443 interrupts = <2 14>; /* pwa1 */
 444 status = "disabled";
443 }; 445 };
444 446
445 dpi: dpi@7e208000 { 447 dpi: dpi@7e208000 {
446 compatible = "brcm,bcm2835-dpi"; 448 compatible = "brcm,bcm2835-dpi";
447 reg = <0x7e208000 0x8c>; 449 reg = <0x7e208000 0x8c>;
448 clocks = <&clocks BCM2835_CLOCK_VPU>, 450 clocks = <&clocks BCM2835_CLOCK_VPU>,
449 <&clocks BCM2835_CLOCK_DPI>; 451 <&clocks BCM2835_CLOCK_DPI>;
450 clock-names = "core", "pixel"; 452 clock-names = "core", "pixel";
451 #address-cells = <1>; 453 #address-cells = <1>;
452 #size-cells = <0>; 454 #size-cells = <0>;
453 status = "disabled"; 455 status = "disabled";
454 }; 456 };
455 457
456 dsi0: dsi@7e209000 { 458 dsi0: dsi@7e209000 {
457 compatible = "brcm,bcm2835-dsi0"; 459 compatible = "brcm,bcm2835-dsi0";
458 reg = <0x7e209000 0x78>; 460 reg = <0x7e209000 0x78>;
459 interrupts = <2 4>; 461 interrupts = <2 4>;
460 #address-cells = <1>; 462 #address-cells = <1>;
461 #size-cells = <0>; 463 #size-cells = <0>;
462 #clock-cells = <1>; 464 #clock-cells = <1>;
463 465
464 clocks = <&clocks BCM2835_PLLA_DSI0>, 466 clocks = <&clocks BCM2835_PLLA_DSI0>,
465 <&clocks BCM2835_CLOCK_DSI0E>, 467 <&clocks BCM2835_CLOCK_DSI0E>,
466 <&clocks BCM2835_CLOCK_DSI0P>; 468 <&clocks BCM2835_CLOCK_DSI0P>;
467 clock-names = "phy", "escape", "pixel"; 469 clock-names = "phy", "escape", "pixel";
468 470
469 clock-output-names = "dsi0_byte", 471 clock-output-names = "dsi0_byte",
470 "dsi0_ddr2", 472 "dsi0_ddr2",
471 "dsi0_ddr"; 473 "dsi0_ddr";
472 474
473 }; 475 };
474 476
475 thermal: thermal@7e212000 { 477 thermal: thermal@7e212000 {
476 compatible = "brcm,bcm2835-thermal"; 478 compatible = "brcm,bcm2835-thermal";
477 reg = <0x7e212000 0x8>; 479 reg = <0x7e212000 0x8>;
478 clocks = <&clocks BCM2835_CLOCK_TSENS>; 480 clocks = <&clocks BCM2835_CLOCK_TSENS>;
479 #thermal-sensor-cells = <0>; 481 #thermal-sensor-cells = <0>;
480 status = "disabled"; 482 status = "disabled";
481 }; 483 };
482 484
483 aux: aux@7e215000 { 485 aux: aux@7e215000 {
484 compatible = "brcm,bcm2835-aux"; 486 compatible = "brcm,bcm2835-aux";
485 #clock-cells = <1>; 487 #clock-cells = <1>;
486 reg = <0x7e215000 0x8>; 488 reg = <0x7e215000 0x8>;
487 clocks = <&clocks BCM2835_CLOCK_VPU>; 489 clocks = <&clocks BCM2835_CLOCK_VPU>;
488 }; 490 };
489 491
490 uart1: serial@7e215040 { 492 uart1: serial@7e215040 {
491 compatible = "brcm,bcm2835-aux-uart"; 493 compatible = "brcm,bcm2835-aux-uart";
492 reg = <0x7e215040 0x40>; 494 reg = <0x7e215040 0x40>;
493 interrupts = <1 29>; 495 interrupts = <1 29>;
494 clocks = <&aux BCM2835_AUX_CLOCK_UART>; 496 clocks = <&aux BCM2835_AUX_CLOCK_UART>;
495 status = "disabled"; 497 status = "disabled";
496 }; 498 };
497 499
498 spi1: spi@7e215080 { 500 spi1: spi@7e215080 {
499 compatible = "brcm,bcm2835-aux-spi"; 501 compatible = "brcm,bcm2835-aux-spi";
500 reg = <0x7e215080 0x40>; 502 reg = <0x7e215080 0x40>;
501 interrupts = <1 29>; 503 interrupts = <1 29>;
502 clocks = <&aux BCM2835_AUX_CLOCK_SPI1>; 504 clocks = <&aux BCM2835_AUX_CLOCK_SPI1>;
503 #address-cells = <1>; 505 #address-cells = <1>;
504 #size-cells = <0>; 506 #size-cells = <0>;
505 status = "disabled"; 507 status = "disabled";
506 }; 508 };
507 509
508 spi2: spi@7e2150c0 { 510 spi2: spi@7e2150c0 {
509 compatible = "brcm,bcm2835-aux-spi"; 511 compatible = "brcm,bcm2835-aux-spi";
510 reg = <0x7e2150c0 0x40>; 512 reg = <0x7e2150c0 0x40>;
511 interrupts = <1 29>; 513 interrupts = <1 29>;
512 clocks = <&aux BCM2835_AUX_CLOCK_SPI2>; 514 clocks = <&aux BCM2835_AUX_CLOCK_SPI2>;
513 #address-cells = <1>; 515 #address-cells = <1>;
514 #size-cells = <0>; 516 #size-cells = <0>;
515 status = "disabled"; 517 status = "disabled";
516 }; 518 };
517 519
518 pwm: pwm@7e20c000 { 520 pwm: pwm@7e20c000 {
519 compatible = "brcm,bcm2835-pwm"; 521 compatible = "brcm,bcm2835-pwm";
520 reg = <0x7e20c000 0x28>; 522 reg = <0x7e20c000 0x28>;
521 clocks = <&clocks BCM2835_CLOCK_PWM>; 523 clocks = <&clocks BCM2835_CLOCK_PWM>;
522 assigned-clocks = <&clocks BCM2835_CLOCK_PWM>; 524 assigned-clocks = <&clocks BCM2835_CLOCK_PWM>;
523 assigned-clock-rates = <10000000>; 525 assigned-clock-rates = <10000000>;
524 #pwm-cells = <2>; 526 #pwm-cells = <2>;
525 status = "disabled"; 527 status = "disabled";
526 }; 528 };
527 529
528 sdhci: sdhci@7e300000 { 530 sdhci: sdhci@7e300000 {
529 compatible = "brcm,bcm2835-sdhci"; 531 compatible = "brcm,bcm2835-sdhci";
530 reg = <0x7e300000 0x100>; 532 reg = <0x7e300000 0x100>;
531 interrupts = <2 30>; 533 interrupts = <2 30>;
532 clocks = <&clocks BCM2835_CLOCK_EMMC>; 534 clocks = <&clocks BCM2835_CLOCK_EMMC>;
533 status = "disabled"; 535 status = "disabled";
534 }; 536 };
535 537
536 hvs@7e400000 { 538 hvs@7e400000 {
537 compatible = "brcm,bcm2835-hvs"; 539 compatible = "brcm,bcm2835-hvs";
538 reg = <0x7e400000 0x6000>; 540 reg = <0x7e400000 0x6000>;
539 interrupts = <2 1>; 541 interrupts = <2 1>;
 542 status = "disabled";
540 }; 543 };
541 544
542 dsi1: dsi@7e700000 { 545 dsi1: dsi@7e700000 {
543 compatible = "brcm,bcm2835-dsi1"; 546 compatible = "brcm,bcm2835-dsi1";
544 reg = <0x7e700000 0x8c>; 547 reg = <0x7e700000 0x8c>;
545 interrupts = <2 12>; 548 interrupts = <2 12>;
546 #address-cells = <1>; 549 #address-cells = <1>;
547 #size-cells = <0>; 550 #size-cells = <0>;
548 #clock-cells = <1>; 551 #clock-cells = <1>;
549 552
550 clocks = <&clocks BCM2835_PLLD_DSI1>, 553 clocks = <&clocks BCM2835_PLLD_DSI1>,
551 <&clocks BCM2835_CLOCK_DSI1E>, 554 <&clocks BCM2835_CLOCK_DSI1E>,
552 <&clocks BCM2835_CLOCK_DSI1P>; 555 <&clocks BCM2835_CLOCK_DSI1P>;
553 clock-names = "phy", "escape", "pixel"; 556 clock-names = "phy", "escape", "pixel";
554 557
555 clock-output-names = "dsi1_byte", 558 clock-output-names = "dsi1_byte",
556 "dsi1_ddr2", 559 "dsi1_ddr2",
557 "dsi1_ddr"; 560 "dsi1_ddr";
558 561
559 status = "disabled"; 562 status = "disabled";
560 }; 563 };
561 564
562 i2c1: i2c@7e804000 { 565 i2c1: i2c@7e804000 {
563 compatible = "brcm,bcm2835-i2c"; 566 compatible = "brcm,bcm2835-i2c";
564 reg = <0x7e804000 0x1000>; 567 reg = <0x7e804000 0x1000>;
565 interrupts = <2 21>; 568 interrupts = <2 21>;
566 clocks = <&clocks BCM2835_CLOCK_VPU>; 569 clocks = <&clocks BCM2835_CLOCK_VPU>;
567 #address-cells = <1>; 570 #address-cells = <1>;
568 #size-cells = <0>; 571 #size-cells = <0>;
569 status = "disabled"; 572 status = "disabled";
570 }; 573 };
571 574
572 i2c2: i2c@7e805000 { 575 i2c2: i2c@7e805000 {
573 compatible = "brcm,bcm2835-i2c"; 576 compatible = "brcm,bcm2835-i2c";
574 reg = <0x7e805000 0x1000>; 577 reg = <0x7e805000 0x1000>;
575 interrupts = <2 21>; 578 interrupts = <2 21>;
576 clocks = <&clocks BCM2835_CLOCK_VPU>; 579 clocks = <&clocks BCM2835_CLOCK_VPU>;
577 #address-cells = <1>; 580 #address-cells = <1>;
578 #size-cells = <0>; 581 #size-cells = <0>;
579 status = "disabled"; 582 status = "disabled";
580 }; 583 };
581 584
582 vec: vec@7e806000 { 585 vec: vec@7e806000 {
583 compatible = "brcm,bcm2835-vec"; 586 compatible = "brcm,bcm2835-vec";
584 reg = <0x7e806000 0x1000>; 587 reg = <0x7e806000 0x1000>;
585 clocks = <&clocks BCM2835_CLOCK_VEC>; 588 clocks = <&clocks BCM2835_CLOCK_VEC>;
586 interrupts = <2 27>; 589 interrupts = <2 27>;
587 status = "disabled"; 590 status = "disabled";
588 }; 591 };
589 592
590 pixelvalve@7e807000 { 593 pixelvalve@7e807000 {
591 compatible = "brcm,bcm2835-pixelvalve2"; 594 compatible = "brcm,bcm2835-pixelvalve2";
592 reg = <0x7e807000 0x100>; 595 reg = <0x7e807000 0x100>;
593 interrupts = <2 10>; /* pixelvalve */ 596 interrupts = <2 10>; /* pixelvalve */
 597 status = "disabled";
594 }; 598 };
595 599
596 hdmi: hdmi@7e902000 { 600 hdmi: hdmi@7e902000 {
597 compatible = "brcm,bcm2835-hdmi"; 601 compatible = "brcm,bcm2835-hdmi";
598 reg = <0x7e902000 0x600>, 602 reg = <0x7e902000 0x600>,
599 <0x7e808000 0x100>; 603 <0x7e808000 0x100>;
600 interrupts = <2 8>, <2 9>; 604 interrupts = <2 8>, <2 9>;
601 ddc = <&i2c2>; 605 ddc = <&i2c2>;
602 clocks = <&clocks BCM2835_PLLH_PIX>, 606 clocks = <&clocks BCM2835_PLLH_PIX>,
603 <&clocks BCM2835_CLOCK_HSM>; 607 <&clocks BCM2835_CLOCK_HSM>;
604 clock-names = "pixel", "hdmi"; 608 clock-names = "pixel", "hdmi";
605 dmas = <&dma 17>; 609 dmas = <&dma 17>;
606 dma-names = "audio-rx"; 610 dma-names = "audio-rx";
607 status = "disabled"; 611 status = "disabled";
608 }; 612 };
609 613
610 usb: usb@7e980000 { 614 usb: usb@7e980000 {
611 compatible = "brcm,bcm2835-usb"; 615 compatible = "brcm,bcm2835-usb";
612 reg = <0x7e980000 0x10000>; 616 reg = <0x7e980000 0x10000>;
613 interrupts = <1 9>; 617 interrupts = <1 9>;
614 #address-cells = <1>; 618 #address-cells = <1>;
615 #size-cells = <0>; 619 #size-cells = <0>;
616 clocks = <&clk_usb>; 620 clocks = <&clk_usb>;
617 clock-names = "otg"; 621 clock-names = "otg";
618 phys = <&usbphy>; 622 phys = <&usbphy>;
619 phy-names = "usb2-phy"; 623 phy-names = "usb2-phy";
620 }; 624 };
621 625
622 v3d: v3d@7ec00000 { 626 v3d: v3d@7ec00000 {
623 compatible = "brcm,bcm2835-v3d"; 627 compatible = "brcm,bcm2835-v3d";
624 reg = <0x7ec00000 0x1000>; 628 reg = <0x7ec00000 0x1000>;
625 interrupts = <1 10>; 629 interrupts = <1 10>;
 630 status = "disabled";
626 }; 631 };
627 632
628 vc4: gpu { 633 vc4: gpu {
629 compatible = "brcm,bcm2835-vc4"; 634 compatible = "brcm,bcm2835-vc4";
630 }; 635 };
631 636
632 637
633 fb: fb { 638 fb: fb {
634 compatible = "brcm,bcm2835-fb"; 639 compatible = "brcm,bcm2835-fb";
635 status = "ok"; 640 status = "ok";
636 }; 641 };
637 642
638 vchiq: vchiq { 643 vchiq: vchiq {
639 compatible = "brcm,bcm2835-vchiq"; 644 compatible = "brcm,bcm2835-vchiq";
640 reg = <0x7e00b840 0xf>; 645 reg = <0x7e00b840 0xf>;
641 interrupts = <0 2>; 646 interrupts = <0 2>;
642 cache-line-size = <32>; 647 cache-line-size = <32>;
643 }; 648 };
644 649
645 650
646 }; 651 };
647 652
648 clocks { 653 clocks {
649 compatible = "simple-bus"; 654 compatible = "simple-bus";
650 #address-cells = <1>; 655 #address-cells = <1>;
651 #size-cells = <0>; 656 #size-cells = <0>;
652 657
653 /* The oscillator is the root of the clock tree. */ 658 /* The oscillator is the root of the clock tree. */
654 clk_osc: clock@3 { 659 clk_osc: clock@3 {
655 compatible = "fixed-clock"; 660 compatible = "fixed-clock";
656 reg = <3>; 661 reg = <3>;
657 #clock-cells = <0>; 662 #clock-cells = <0>;
658 clock-output-names = "osc"; 663 clock-output-names = "osc";
659 clock-frequency = <19200000>; 664 clock-frequency = <19200000>;
660 }; 665 };
661 666
662 clk_usb: clock@4 { 667 clk_usb: clock@4 {
663 compatible = "fixed-clock"; 668 compatible = "fixed-clock";
664 reg = <4>; 669 reg = <4>;
665 #clock-cells = <0>; 670 #clock-cells = <0>;
666 clock-output-names = "otg"; 671 clock-output-names = "otg";
667 clock-frequency = <480000000>; 672 clock-frequency = <480000000>;
668 }; 673 };
669 }; 674 };
670 675
671 usbphy: phy { 676 usbphy: phy {
672 compatible = "usb-nop-xceiv"; 677 compatible = "usb-nop-xceiv";
673 #phy-cells = <0>; 678 #phy-cells = <0>;
674 }; 679 };
675}; 680};