vf610.dtsi 12.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
/*
 * Copyright 2013 Freescale Semiconductor, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 */

#include "skeleton.dtsi"
#include "vf610-pinfunc.h"
#include <dt-bindings/clock/vf610-clock.h>
13
#include <dt-bindings/interrupt-controller/irq.h>
14
#include <dt-bindings/interrupt-controller/arm-gic.h>
15 16 17

/ {
	aliases {
S
Stefan Agner 已提交
18 19
		can0 = &can0;
		can1 = &can1;
20 21 22 23 24 25 26 27 28 29 30
		serial0 = &uart0;
		serial1 = &uart1;
		serial2 = &uart2;
		serial3 = &uart3;
		serial4 = &uart4;
		serial5 = &uart5;
		gpio0 = &gpio1;
		gpio1 = &gpio2;
		gpio2 = &gpio3;
		gpio3 = &gpio4;
		gpio4 = &gpio5;
31 32
		usbphy0 = &usbphy0;
		usbphy1 = &usbphy1;
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "arm,cortex-a5";
			device_type = "cpu";
			reg = <0x0>;
			next-level-cache = <&L2>;
		};
	};

	clocks {
		#address-cells = <1>;
		#size-cells = <0>;

		sxosc {
			compatible = "fixed-clock";
53
			#clock-cells = <0>;
54 55 56 57 58
			clock-frequency = <32768>;
		};

		fxosc {
			compatible = "fixed-clock";
59
			#clock-cells = <0>;
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
			clock-frequency = <24000000>;
		};
	};

	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
		interrupt-parent = <&intc>;
		ranges;

		aips0: aips-bus@40000000 {
			compatible = "fsl,aips-bus", "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			interrupt-parent = <&intc>;
			reg = <0x40000000 0x70000>;
			ranges;

			intc: interrupt-controller@40002000 {
				compatible = "arm,cortex-a9-gic";
				#interrupt-cells = <3>;
				interrupt-controller;
				reg = <0x40003000 0x1000>,
				      <0x40002100 0x100>;
			};

87 88 89 90 91 92 93
			global_timer: timer@40002200 {
				compatible = "arm,cortex-a9-global-timer";
				reg = <0x40002200 0x20>;
				interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clks VF610_CLK_PLATFORM_BUS>;
			};

94 95 96 97 98 99 100 101 102
			L2: l2-cache@40006000 {
				compatible = "arm,pl310-cache";
				reg = <0x40006000 0x1000>;
				cache-unified;
				cache-level = <2>;
				arm,data-latency = <1 1 1>;
				arm,tag-latency = <2 2 2>;
			};

J
Jingchang Lu 已提交
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
			edma0: dma-controller@40018000 {
				#dma-cells = <2>;
				compatible = "fsl,vf610-edma";
				reg = <0x40018000 0x2000>,
					<0x40024000 0x1000>,
					<0x40025000 0x1000>;
				interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>,
						<0 9 IRQ_TYPE_LEVEL_HIGH>;
				interrupt-names = "edma-tx", "edma-err";
				dma-channels = <32>;
				clock-names = "dmamux0", "dmamux1";
				clocks = <&clks VF610_CLK_DMAMUX0>,
					<&clks VF610_CLK_DMAMUX1>;
			};

S
Stefan Agner 已提交
118 119 120 121 122 123 124 125 126 127
			can0: flexcan@40020000 {
				compatible = "fsl,vf610-flexcan";
				reg = <0x40020000 0x4000>;
				interrupts = <0 58 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clks VF610_CLK_FLEXCAN0>,
					 <&clks VF610_CLK_FLEXCAN0>;
				clock-names = "ipg", "per";
				status = "disabled";
			};

128 129 130
			uart0: serial@40027000 {
				compatible = "fsl,vf610-lpuart";
				reg = <0x40027000 0x1000>;
131
				interrupts = <0 61 IRQ_TYPE_LEVEL_HIGH>;
132 133
				clocks = <&clks VF610_CLK_UART0>;
				clock-names = "ipg";
134 135 136
				dmas = <&edma0 0 2>,
					<&edma0 0 3>;
				dma-names = "rx","tx";
137 138 139 140 141 142
				status = "disabled";
			};

			uart1: serial@40028000 {
				compatible = "fsl,vf610-lpuart";
				reg = <0x40028000 0x1000>;
143
				interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
144 145
				clocks = <&clks VF610_CLK_UART1>;
				clock-names = "ipg";
146 147 148
				dmas = <&edma0 0 4>,
					<&edma0 0 5>;
				dma-names = "rx","tx";
149 150 151 152 153 154
				status = "disabled";
			};

			uart2: serial@40029000 {
				compatible = "fsl,vf610-lpuart";
				reg = <0x40029000 0x1000>;
155
				interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>;
156 157
				clocks = <&clks VF610_CLK_UART2>;
				clock-names = "ipg";
158 159 160
				dmas = <&edma0 0 6>,
					<&edma0 0 7>;
				dma-names = "rx","tx";
161 162 163 164 165 166
				status = "disabled";
			};

			uart3: serial@4002a000 {
				compatible = "fsl,vf610-lpuart";
				reg = <0x4002a000 0x1000>;
167
				interrupts = <0 64 IRQ_TYPE_LEVEL_HIGH>;
168 169
				clocks = <&clks VF610_CLK_UART3>;
				clock-names = "ipg";
170 171 172
				dmas = <&edma0 0 8>,
					<&edma0 0 9>;
				dma-names = "rx","tx";
173 174 175
				status = "disabled";
			};

C
Chao Fu 已提交
176 177 178 179 180
			dspi0: dspi0@4002c000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,vf610-dspi";
				reg = <0x4002c000 0x1000>;
181
				interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>;
C
Chao Fu 已提交
182 183 184 185 186 187
				clocks = <&clks VF610_CLK_DSPI0>;
				clock-names = "dspi";
				spi-num-chipselects = <5>;
				status = "disabled";
			};

188 189 190
			sai2: sai@40031000 {
				compatible = "fsl,vf610-sai";
				reg = <0x40031000 0x1000>;
191
				interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
192 193
				clocks = <&clks VF610_CLK_SAI2>;
				clock-names = "sai";
194 195 196
				dma-names = "tx", "rx";
				dmas = <&edma0 0 21>,
					<&edma0 0 20>;
197 198 199 200 201 202
				status = "disabled";
			};

			pit: pit@40037000 {
				compatible = "fsl,vf610-pit";
				reg = <0x40037000 0x1000>;
203
				interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
204 205 206 207
				clocks = <&clks VF610_CLK_PIT>;
				clock-names = "pit";
			};

208 209 210 211 212 213 214 215 216 217 218 219 220
			pwm0: pwm@40038000 {
				compatible = "fsl,vf610-ftm-pwm";
				#pwm-cells = <3>;
				reg = <0x40038000 0x1000>;
				clock-names = "ftm_sys", "ftm_ext",
					      "ftm_fix", "ftm_cnt_clk_en";
				clocks = <&clks VF610_CLK_FTM0>,
					<&clks VF610_CLK_FTM0_EXT_SEL>,
					<&clks VF610_CLK_FTM0_FIX_SEL>,
					<&clks VF610_CLK_FTM0_EXT_FIX_EN>;
				status = "disabled";
			};

221 222 223 224 225 226 227 228 229 230 231 232 233
			pwm1: pwm@40039000 {
				compatible = "fsl,vf610-ftm-pwm";
				#pwm-cells = <3>;
				reg = <0x40039000 0x1000>;
				clock-names = "ftm_sys", "ftm_ext",
					      "ftm_fix", "ftm_cnt_clk_en";
				clocks = <&clks VF610_CLK_FTM1>,
					<&clks VF610_CLK_FTM1_EXT_SEL>,
					<&clks VF610_CLK_FTM1_FIX_SEL>,
					<&clks VF610_CLK_FTM1_EXT_FIX_EN>;
				status = "disabled";
			};

234 235 236 237 238 239 240 241 242
			adc0: adc@4003b000 {
				compatible = "fsl,vf610-adc";
				reg = <0x4003b000 0x1000>;
				interrupts = <0 53 0x04>;
				clocks = <&clks VF610_CLK_ADC0>;
				clock-names = "adc";
				status = "disabled";
			};

243 244 245 246 247 248 249 250 251 252 253 254
			wdog@4003e000 {
				compatible = "fsl,vf610-wdt", "fsl,imx21-wdt";
				reg = <0x4003e000 0x1000>;
				clocks = <&clks VF610_CLK_WDT>;
				clock-names = "wdog";
			};

			qspi0: quadspi@40044000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,vf610-qspi";
				reg = <0x40044000 0x1000>;
255
				interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
256 257 258 259 260 261 262 263 264
				clocks = <&clks VF610_CLK_QSPI0_EN>,
					<&clks VF610_CLK_QSPI0>;
				clock-names = "qspi_en", "qspi";
				status = "disabled";
			};

			iomuxc: iomuxc@40048000 {
				compatible = "fsl,vf610-iomuxc";
				reg = <0x40048000 0x1000>;
265
				#gpio-range-cells = <3>;
266 267 268 269 270
			};

			gpio1: gpio@40049000 {
				compatible = "fsl,vf610-gpio";
				reg = <0x40049000 0x1000 0x400ff000 0x40>;
271
				interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
272 273 274 275
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
276
				gpio-ranges = <&iomuxc 0 0 32>;
277 278 279 280 281
			};

			gpio2: gpio@4004a000 {
				compatible = "fsl,vf610-gpio";
				reg = <0x4004a000 0x1000 0x400ff040 0x40>;
282
				interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
283 284 285 286
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
287
				gpio-ranges = <&iomuxc 0 32 32>;
288 289 290 291 292
			};

			gpio3: gpio@4004b000 {
				compatible = "fsl,vf610-gpio";
				reg = <0x4004b000 0x1000 0x400ff080 0x40>;
293
				interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
294 295 296 297
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
298
				gpio-ranges = <&iomuxc 0 64 32>;
299 300 301 302 303
			};

			gpio4: gpio@4004c000 {
				compatible = "fsl,vf610-gpio";
				reg = <0x4004c000 0x1000 0x400ff0c0 0x40>;
304
				interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
305 306 307 308
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
309
				gpio-ranges = <&iomuxc 0 96 32>;
310 311 312 313 314
			};

			gpio5: gpio@4004d000 {
				compatible = "fsl,vf610-gpio";
				reg = <0x4004d000 0x1000 0x400ff100 0x40>;
315
				interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
316 317 318 319
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
320
				gpio-ranges = <&iomuxc 0 128 7>;
321 322
			};

323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
			anatop: anatop@40050000 {
				compatible = "fsl,vf610-anatop", "syscon";
				reg = <0x40050000 0x400>;
			};

			usbphy0: usbphy@40050800 {
				compatible = "fsl,vf610-usbphy";
				reg = <0x40050800 0x400>;
				interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clks VF610_CLK_USBPHY0>;
				fsl,anatop = <&anatop>;
			};

			usbphy1: usbphy@40050c00 {
				compatible = "fsl,vf610-usbphy";
				reg = <0x40050c00 0x400>;
				interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clks VF610_CLK_USBPHY1>;
				fsl,anatop = <&anatop>;
342 343 344 345 346 347 348
			};

			i2c0: i2c@40066000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,vf610-i2c";
				reg = <0x40066000 0x1000>;
349
				interrupts =<0 71 IRQ_TYPE_LEVEL_HIGH>;
350 351
				clocks = <&clks VF610_CLK_I2C0>;
				clock-names = "ipg";
352 353 354
				dmas = <&edma0 0 50>,
					<&edma0 0 51>;
				dma-names = "rx","tx";
355 356 357 358 359 360 361 362
				status = "disabled";
			};

			clks: ccm@4006b000 {
				compatible = "fsl,vf610-ccm";
				reg = <0x4006b000 0x1000>;
				#clock-cells = <1>;
			};
363 364 365 366 367 368 369

			usbdev0: usb@40034000 {
				compatible = "fsl,vf610-usb", "fsl,imx27-usb";
				reg = <0x40034000 0x800>;
				interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clks VF610_CLK_USBC0>;
				fsl,usbphy = <&usbphy0>;
370
				fsl,usbmisc = <&usbmisc0 0>;
371 372 373 374
				dr_mode = "peripheral";
				status = "disabled";
			};

375 376 377 378 379 380
			usbmisc0: usb@40034800 {
				#index-cells = <1>;
				compatible = "fsl,vf610-usbmisc";
				reg = <0x40034800 0x200>;
				clocks = <&clks VF610_CLK_USBC0>;
			};
381 382 383 384 385 386 387 388 389
		};

		aips1: aips-bus@40080000 {
			compatible = "fsl,aips-bus", "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x40080000 0x80000>;
			ranges;

J
Jingchang Lu 已提交
390 391 392 393 394 395 396 397 398 399 400 401 402 403 404
			edma1: dma-controller@40098000 {
				#dma-cells = <2>;
				compatible = "fsl,vf610-edma";
				reg = <0x40098000 0x2000>,
					<0x400a1000 0x1000>,
					<0x400a2000 0x1000>;
				interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>,
						<0 11 IRQ_TYPE_LEVEL_HIGH>;
				interrupt-names = "edma-tx", "edma-err";
				dma-channels = <32>;
				clock-names = "dmamux0", "dmamux1";
				clocks = <&clks VF610_CLK_DMAMUX2>,
					<&clks VF610_CLK_DMAMUX3>;
			};

405 406 407
			uart4: serial@400a9000 {
				compatible = "fsl,vf610-lpuart";
				reg = <0x400a9000 0x1000>;
408
				interrupts = <0 65 IRQ_TYPE_LEVEL_HIGH>;
409 410 411 412 413 414 415 416
				clocks = <&clks VF610_CLK_UART4>;
				clock-names = "ipg";
				status = "disabled";
			};

			uart5: serial@400aa000 {
				compatible = "fsl,vf610-lpuart";
				reg = <0x400aa000 0x1000>;
417
				interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>;
418 419 420 421 422
				clocks = <&clks VF610_CLK_UART5>;
				clock-names = "ipg";
				status = "disabled";
			};

423 424 425 426 427 428 429 430 431
			adc1: adc@400bb000 {
				compatible = "fsl,vf610-adc";
				reg = <0x400bb000 0x1000>;
				interrupts = <0 54 0x04>;
				clocks = <&clks VF610_CLK_ADC1>;
				clock-names = "adc";
				status = "disabled";
			};

432 433
			esdhc1: esdhc@400b2000 {
				compatible = "fsl,imx53-esdhc";
434
				reg = <0x400b2000 0x1000>;
435 436 437 438 439 440 441 442
				interrupts = <0 28 0x04>;
				clocks = <&clks VF610_CLK_IPG_BUS>,
					<&clks VF610_CLK_PLATFORM_BUS>,
					<&clks VF610_CLK_ESDHC1>;
				clock-names = "ipg", "ahb", "per";
				status = "disabled";
			};

443 444 445 446 447 448
			usbh1: usb@400b4000 {
				compatible = "fsl,vf610-usb", "fsl,imx27-usb";
				reg = <0x400b4000 0x800>;
				interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clks VF610_CLK_USBC1>;
				fsl,usbphy = <&usbphy1>;
449
				fsl,usbmisc = <&usbmisc1 0>;
450 451 452 453
				dr_mode = "host";
				status = "disabled";
			};

454 455 456 457 458 459 460
			usbmisc1: usb@400b4800 {
				#index-cells = <1>;
				compatible = "fsl,vf610-usbmisc";
				reg = <0x400b4800 0x200>;
				clocks = <&clks VF610_CLK_USBC1>;
			};

461 462 463 464 465 466 467 468 469 470 471 472 473
			ftm: ftm@400b8000 {
				compatible = "fsl,ftm-timer";
				reg = <0x400b8000 0x1000 0x400b9000 0x1000>;
				interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
				clock-names = "ftm-evt", "ftm-src",
					"ftm-evt-counter-en", "ftm-src-counter-en";
				clocks = <&clks VF610_CLK_FTM2>,
					<&clks VF610_CLK_FTM3>,
					<&clks VF610_CLK_FTM2_EXT_FIX_EN>,
					<&clks VF610_CLK_FTM3_EXT_FIX_EN>;
				status = "disabled";
			};

474 475 476
			fec0: ethernet@400d0000 {
				compatible = "fsl,mvf600-fec";
				reg = <0x400d0000 0x1000>;
477
				interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>;
478 479
				clocks = <&clks VF610_CLK_ENET0>,
					<&clks VF610_CLK_ENET0>,
480 481 482 483 484 485 486 487
					<&clks VF610_CLK_ENET>;
				clock-names = "ipg", "ahb", "ptp";
				status = "disabled";
			};

			fec1: ethernet@400d1000 {
				compatible = "fsl,mvf600-fec";
				reg = <0x400d1000 0x1000>;
488
				interrupts = <0 79 IRQ_TYPE_LEVEL_HIGH>;
489 490
				clocks = <&clks VF610_CLK_ENET1>,
					<&clks VF610_CLK_ENET1>,
491 492 493 494
					<&clks VF610_CLK_ENET>;
				clock-names = "ipg", "ahb", "ptp";
				status = "disabled";
			};
S
Stefan Agner 已提交
495 496 497 498 499 500 501 502 503 504 505

			can1: flexcan@400d4000 {
				compatible = "fsl,vf610-flexcan";
				reg = <0x400d4000 0x4000>;
				interrupts = <0 59 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clks VF610_CLK_FLEXCAN1>,
					 <&clks VF610_CLK_FLEXCAN1>;
				clock-names = "ipg", "per";
				status = "disabled";
			};

506 507 508
		};
	};
};