imx6sl.dtsi 27.1 KB
Newer Older
1 2 3
// SPDX-License-Identifier: GPL-2.0
//
// Copyright 2013 Freescale Semiconductor, Inc.
4

5
#include <dt-bindings/interrupt-controller/irq.h>
6 7 8 9
#include "imx6sl-pinfunc.h"
#include <dt-bindings/clock/imx6sl-clock.h>

/ {
10 11
	#address-cells = <1>;
	#size-cells = <1>;
12 13 14 15 16 17
	/*
	 * The decompressor and also some bootloaders rely on a
	 * pre-existing /chosen node to be available to insert the
	 * command line and merge other ATAGS info.
	 */
	chosen {};
18

19
	aliases {
20
		ethernet0 = &fec;
21 22 23 24 25
		gpio0 = &gpio1;
		gpio1 = &gpio2;
		gpio2 = &gpio3;
		gpio3 = &gpio4;
		gpio4 = &gpio5;
26 27 28 29 30 31 32
		i2c0 = &i2c1;
		i2c1 = &i2c2;
		i2c2 = &i2c3;
		mmc0 = &usdhc1;
		mmc1 = &usdhc2;
		mmc2 = &usdhc3;
		mmc3 = &usdhc4;
33 34 35 36 37 38 39 40 41
		serial0 = &uart1;
		serial1 = &uart2;
		serial2 = &uart3;
		serial3 = &uart4;
		serial4 = &uart5;
		spi0 = &ecspi1;
		spi1 = &ecspi2;
		spi2 = &ecspi3;
		spi3 = &ecspi4;
42 43
		usbphy0 = &usbphy1;
		usbphy1 = &usbphy2;
44 45 46 47 48 49 50 51 52 53 54
	};

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

		cpu@0 {
			compatible = "arm,cortex-a9";
			device_type = "cpu";
			reg = <0x0>;
			next-level-cache = <&L2>;
55 56 57 58 59 60 61 62 63 64 65 66 67
			operating-points = <
				/* kHz    uV */
				996000  1275000
				792000  1175000
				396000  975000
			>;
			fsl,soc-operating-points = <
				/* ARM kHz      SOC-PU uV */
				996000          1225000
				792000          1175000
				396000          1175000
			>;
			clock-latency = <61036>; /* two CLK32 periods */
68
			#cooling-cells = <2>;
69 70 71 72 73 74 75 76
			clocks = <&clks IMX6SL_CLK_ARM>, <&clks IMX6SL_CLK_PLL2_PFD2>,
					<&clks IMX6SL_CLK_STEP>, <&clks IMX6SL_CLK_PLL1_SW>,
					<&clks IMX6SL_CLK_PLL1_SYS>;
			clock-names = "arm", "pll2_pfd2_396m", "step",
				      "pll1_sw", "pll1_sys";
			arm-supply = <&reg_arm>;
			pu-supply = <&reg_pu>;
			soc-supply = <&reg_soc>;
77 78 79
		};
	};

80
	intc: interrupt-controller@a01000 {
81 82 83 84 85
		compatible = "arm,cortex-a9-gic";
		#interrupt-cells = <3>;
		interrupt-controller;
		reg = <0x00a01000 0x1000>,
		      <0x00a00100 0x100>;
86
		interrupt-parent = <&intc>;
87 88 89 90 91
	};

	clocks {
		ckil {
			compatible = "fixed-clock";
92
			#clock-cells = <0>;
93 94 95 96 97
			clock-frequency = <32768>;
		};

		osc {
			compatible = "fixed-clock";
98
			#clock-cells = <0>;
99 100 101 102
			clock-frequency = <24000000>;
		};
	};

103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
	tempmon: tempmon {
		compatible = "fsl,imx6q-tempmon";
		interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-parent = <&gpc>;
		fsl,tempmon = <&anatop>;
		fsl,tempmon-data = <&ocotp>;
		clocks = <&clks IMX6SL_CLK_PLL3_USB_OTG>;
	};

	pmu {
		compatible = "arm,cortex-a9-pmu";
		interrupt-parent = <&gpc>;
		interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
	};

118 119 120 121 122
	usbphynop1: usbphynop1 {
		compatible = "usb-nop-xceiv";
		#phy-cells = <0>;
	};

123 124 125 126
	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
127
		interrupt-parent = <&gpc>;
128 129
		ranges;

130
		ocram: sram@900000 {
131 132 133 134 135
			compatible = "mmio-sram";
			reg = <0x00900000 0x20000>;
			clocks = <&clks IMX6SL_CLK_OCRAM>;
		};

136
		L2: l2-cache@a02000 {
137 138
			compatible = "arm,pl310-cache";
			reg = <0x00a02000 0x1000>;
139
			interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
140 141 142 143 144 145
			cache-unified;
			cache-level = <2>;
			arm,tag-latency = <4 2 3>;
			arm,data-latency = <4 2 3>;
		};

146
		aips1: aips-bus@2000000 {
147 148 149 150 151 152
			compatible = "fsl,aips-bus", "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x02000000 0x100000>;
			ranges;

153
			spba: spba-bus@2000000 {
154 155 156 157 158 159
				compatible = "fsl,spba-bus", "simple-bus";
				#address-cells = <1>;
				#size-cells = <1>;
				reg = <0x02000000 0x40000>;
				ranges;

160
				spdif: spdif@2004000 {
161 162
					compatible = "fsl,imx6sl-spdif",
						"fsl,imx35-spdif";
163
					reg = <0x02004000 0x4000>;
164
					interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
165 166 167 168 169 170 171 172 173 174 175 176
					dmas = <&sdma 14 18 0>,
						<&sdma 15 18 0>;
					dma-names = "rx", "tx";
					clocks = <&clks IMX6SL_CLK_SPDIF_GCLK>, <&clks IMX6SL_CLK_OSC>,
						 <&clks IMX6SL_CLK_SPDIF>, <&clks IMX6SL_CLK_DUMMY>,
						 <&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_DUMMY>,
						 <&clks IMX6SL_CLK_IPG>, <&clks IMX6SL_CLK_DUMMY>,
						 <&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_SPBA>;
					clock-names = "core", "rxtx0",
						"rxtx1", "rxtx2",
						"rxtx3", "rxtx4",
						"rxtx5", "rxtx6",
177
						"rxtx7", "spba";
178
					status = "disabled";
179 180
				};

181
				ecspi1: spi@2008000 {
182 183 184 185
					#address-cells = <1>;
					#size-cells = <0>;
					compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
					reg = <0x02008000 0x4000>;
186
					interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
187 188 189 190 191 192
					clocks = <&clks IMX6SL_CLK_ECSPI1>,
						 <&clks IMX6SL_CLK_ECSPI1>;
					clock-names = "ipg", "per";
					status = "disabled";
				};

193
				ecspi2: spi@200c000 {
194 195 196 197
					#address-cells = <1>;
					#size-cells = <0>;
					compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
					reg = <0x0200c000 0x4000>;
198
					interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
199 200 201 202 203 204
					clocks = <&clks IMX6SL_CLK_ECSPI2>,
						 <&clks IMX6SL_CLK_ECSPI2>;
					clock-names = "ipg", "per";
					status = "disabled";
				};

205
				ecspi3: spi@2010000 {
206 207 208 209
					#address-cells = <1>;
					#size-cells = <0>;
					compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
					reg = <0x02010000 0x4000>;
210
					interrupts = <0 33 IRQ_TYPE_LEVEL_HIGH>;
211 212 213 214 215 216
					clocks = <&clks IMX6SL_CLK_ECSPI3>,
						 <&clks IMX6SL_CLK_ECSPI3>;
					clock-names = "ipg", "per";
					status = "disabled";
				};

217
				ecspi4: spi@2014000 {
218 219 220 221
					#address-cells = <1>;
					#size-cells = <0>;
					compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
					reg = <0x02014000 0x4000>;
222
					interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
223 224 225 226 227 228
					clocks = <&clks IMX6SL_CLK_ECSPI4>,
						 <&clks IMX6SL_CLK_ECSPI4>;
					clock-names = "ipg", "per";
					status = "disabled";
				};

229
				uart5: serial@2018000 {
230 231
					compatible = "fsl,imx6sl-uart",
						   "fsl,imx6q-uart", "fsl,imx21-uart";
232
					reg = <0x02018000 0x4000>;
233
					interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
234 235 236
					clocks = <&clks IMX6SL_CLK_UART>,
						 <&clks IMX6SL_CLK_UART_SERIAL>;
					clock-names = "ipg", "per";
237 238
					dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
					dma-names = "rx", "tx";
239 240 241
					status = "disabled";
				};

242
				uart1: serial@2020000 {
243 244
					compatible = "fsl,imx6sl-uart",
						   "fsl,imx6q-uart", "fsl,imx21-uart";
245
					reg = <0x02020000 0x4000>;
246
					interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
247 248 249
					clocks = <&clks IMX6SL_CLK_UART>,
						 <&clks IMX6SL_CLK_UART_SERIAL>;
					clock-names = "ipg", "per";
250 251
					dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
					dma-names = "rx", "tx";
252 253 254
					status = "disabled";
				};

255
				uart2: serial@2024000 {
256 257
					compatible = "fsl,imx6sl-uart",
						   "fsl,imx6q-uart", "fsl,imx21-uart";
258
					reg = <0x02024000 0x4000>;
259
					interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
260 261 262
					clocks = <&clks IMX6SL_CLK_UART>,
						 <&clks IMX6SL_CLK_UART_SERIAL>;
					clock-names = "ipg", "per";
263 264
					dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
					dma-names = "rx", "tx";
265 266 267
					status = "disabled";
				};

268
				ssi1: ssi@2028000 {
269
					#sound-dai-cells = <0>;
M
Markus Pargmann 已提交
270
					compatible = "fsl,imx6sl-ssi",
271
							"fsl,imx51-ssi";
272
					reg = <0x02028000 0x4000>;
273
					interrupts = <0 46 IRQ_TYPE_LEVEL_HIGH>;
274 275 276
					clocks = <&clks IMX6SL_CLK_SSI1_IPG>,
						 <&clks IMX6SL_CLK_SSI1>;
					clock-names = "ipg", "baud";
277 278 279
					dmas = <&sdma 37 1 0>,
					       <&sdma 38 1 0>;
					dma-names = "rx", "tx";
280 281 282 283
					fsl,fifo-depth = <15>;
					status = "disabled";
				};

284
				ssi2: ssi@202c000 {
285
					#sound-dai-cells = <0>;
M
Markus Pargmann 已提交
286
					compatible = "fsl,imx6sl-ssi",
287
							"fsl,imx51-ssi";
288
					reg = <0x0202c000 0x4000>;
289
					interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
290 291 292
					clocks = <&clks IMX6SL_CLK_SSI2_IPG>,
						 <&clks IMX6SL_CLK_SSI2>;
					clock-names = "ipg", "baud";
293 294 295
					dmas = <&sdma 41 1 0>,
					       <&sdma 42 1 0>;
					dma-names = "rx", "tx";
296 297 298 299
					fsl,fifo-depth = <15>;
					status = "disabled";
				};

300
				ssi3: ssi@2030000 {
301
					#sound-dai-cells = <0>;
M
Markus Pargmann 已提交
302
					compatible = "fsl,imx6sl-ssi",
303
							"fsl,imx51-ssi";
304
					reg = <0x02030000 0x4000>;
305
					interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
306 307 308
					clocks = <&clks IMX6SL_CLK_SSI3_IPG>,
						 <&clks IMX6SL_CLK_SSI3>;
					clock-names = "ipg", "baud";
309 310 311
					dmas = <&sdma 45 1 0>,
					       <&sdma 46 1 0>;
					dma-names = "rx", "tx";
312 313 314 315
					fsl,fifo-depth = <15>;
					status = "disabled";
				};

316
				uart3: serial@2034000 {
317 318
					compatible = "fsl,imx6sl-uart",
						   "fsl,imx6q-uart", "fsl,imx21-uart";
319
					reg = <0x02034000 0x4000>;
320
					interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
321 322 323
					clocks = <&clks IMX6SL_CLK_UART>,
						 <&clks IMX6SL_CLK_UART_SERIAL>;
					clock-names = "ipg", "per";
324 325
					dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
					dma-names = "rx", "tx";
326 327 328
					status = "disabled";
				};

329
				uart4: serial@2038000 {
330 331
					compatible = "fsl,imx6sl-uart",
						   "fsl,imx6q-uart", "fsl,imx21-uart";
332
					reg = <0x02038000 0x4000>;
333
					interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
334 335 336
					clocks = <&clks IMX6SL_CLK_UART>,
						 <&clks IMX6SL_CLK_UART_SERIAL>;
					clock-names = "ipg", "per";
337 338
					dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
					dma-names = "rx", "tx";
339 340 341 342
					status = "disabled";
				};
			};

343
			pwm1: pwm@2080000 {
344 345 346
				#pwm-cells = <2>;
				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
				reg = <0x02080000 0x4000>;
347
				interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
348
				clocks = <&clks IMX6SL_CLK_PERCLK>,
349 350 351 352
					 <&clks IMX6SL_CLK_PWM1>;
				clock-names = "ipg", "per";
			};

353
			pwm2: pwm@2084000 {
354 355 356
				#pwm-cells = <2>;
				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
				reg = <0x02084000 0x4000>;
357
				interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
358
				clocks = <&clks IMX6SL_CLK_PERCLK>,
359 360 361 362
					 <&clks IMX6SL_CLK_PWM2>;
				clock-names = "ipg", "per";
			};

363
			pwm3: pwm@2088000 {
364 365 366
				#pwm-cells = <2>;
				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
				reg = <0x02088000 0x4000>;
367
				interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
368
				clocks = <&clks IMX6SL_CLK_PERCLK>,
369 370 371 372
					 <&clks IMX6SL_CLK_PWM3>;
				clock-names = "ipg", "per";
			};

373
			pwm4: pwm@208c000 {
374 375 376
				#pwm-cells = <2>;
				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
				reg = <0x0208c000 0x4000>;
377
				interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
378
				clocks = <&clks IMX6SL_CLK_PERCLK>,
379 380 381 382
					 <&clks IMX6SL_CLK_PWM4>;
				clock-names = "ipg", "per";
			};

383
			gpt: gpt@2098000 {
384 385
				compatible = "fsl,imx6sl-gpt";
				reg = <0x02098000 0x4000>;
386
				interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
387 388 389 390 391
				clocks = <&clks IMX6SL_CLK_GPT>,
					 <&clks IMX6SL_CLK_GPT_SERIAL>;
				clock-names = "ipg", "per";
			};

392
			gpio1: gpio@209c000 {
393 394
				compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
				reg = <0x0209c000 0x4000>;
395 396
				interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
					     <0 67 IRQ_TYPE_LEVEL_HIGH>;
397 398 399 400
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
401 402 403 404 405 406
				gpio-ranges = <&iomuxc  0 22 1>, <&iomuxc  1 20 2>,
					      <&iomuxc  3 23 1>, <&iomuxc  4 25 1>,
					      <&iomuxc  5 24 1>, <&iomuxc  6 19 1>,
					      <&iomuxc  7 36 2>, <&iomuxc  9 44 8>,
					      <&iomuxc 17 38 6>, <&iomuxc 23 68 4>,
					      <&iomuxc 27 64 4>, <&iomuxc 31 52 1>;
407 408
			};

409
			gpio2: gpio@20a0000 {
410 411
				compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
				reg = <0x020a0000 0x4000>;
412 413
				interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
					     <0 69 IRQ_TYPE_LEVEL_HIGH>;
414 415 416 417
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
418 419 420 421 422 423 424
				gpio-ranges = <&iomuxc  0  53 3>, <&iomuxc  3  72 2>,
					      <&iomuxc  5  34 2>, <&iomuxc  7  57 4>,
					      <&iomuxc 11  56 1>, <&iomuxc 12  61 3>,
					      <&iomuxc 15 107 1>, <&iomuxc 16 132 2>,
					      <&iomuxc 18 135 1>, <&iomuxc 19 134 1>,
					      <&iomuxc 20 108 2>, <&iomuxc 22 120 1>,
					      <&iomuxc 23 125 7>, <&iomuxc 30 110 2>;
425 426
			};

427
			gpio3: gpio@20a4000 {
428 429
				compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
				reg = <0x020a4000 0x4000>;
430 431
				interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
					     <0 71 IRQ_TYPE_LEVEL_HIGH>;
432 433 434 435
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
436 437 438 439 440 441 442 443
				gpio-ranges = <&iomuxc  0 112 8>, <&iomuxc  8 121 4>,
					      <&iomuxc 12  97 4>, <&iomuxc 16 166 3>,
					      <&iomuxc 19  85 2>, <&iomuxc 21 137 2>,
					      <&iomuxc 23 136 1>, <&iomuxc 24  91 1>,
					      <&iomuxc 25  99 1>, <&iomuxc 26  92 1>,
					      <&iomuxc 27 100 1>, <&iomuxc 28  93 1>,
					      <&iomuxc 29 101 1>, <&iomuxc 30  94 1>,
					      <&iomuxc 31 102 1>;
444 445
			};

446
			gpio4: gpio@20a8000 {
447 448
				compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
				reg = <0x020a8000 0x4000>;
449 450
				interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
					     <0 73 IRQ_TYPE_LEVEL_HIGH>;
451 452 453 454
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
455 456 457 458 459 460 461 462 463 464 465 466 467 468 469
				gpio-ranges = <&iomuxc  0  95 1>, <&iomuxc  1 103 1>,
					      <&iomuxc  2  96 1>, <&iomuxc  3 104 1>,
					      <&iomuxc  4  97 1>, <&iomuxc  5 105 1>,
					      <&iomuxc  6  98 1>, <&iomuxc  7 106 1>,
					      <&iomuxc  8  28 1>, <&iomuxc  9  27 1>,
					      <&iomuxc 10  26 1>, <&iomuxc 11  29 1>,
					      <&iomuxc 12  32 1>, <&iomuxc 13  31 1>,
					      <&iomuxc 14  30 1>, <&iomuxc 15  33 1>,
					      <&iomuxc 16  84 1>, <&iomuxc 17  79 2>,
					      <&iomuxc 19  78 1>, <&iomuxc 20  76 1>,
					      <&iomuxc 21  81 2>, <&iomuxc 23  75 1>,
					      <&iomuxc 24  83 1>, <&iomuxc 25  74 1>,
					      <&iomuxc 26  77 1>, <&iomuxc 27 159 1>,
					      <&iomuxc 28 154 1>, <&iomuxc 29 157 1>,
					      <&iomuxc 30 152 1>, <&iomuxc 31 156 1>;
470 471
			};

472
			gpio5: gpio@20ac000 {
473 474
				compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
				reg = <0x020ac000 0x4000>;
475 476
				interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
					     <0 75 IRQ_TYPE_LEVEL_HIGH>;
477 478 479 480
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
481 482 483 484 485 486 487 488 489 490 491
				gpio-ranges = <&iomuxc  0 158 1>, <&iomuxc  1 151 1>,
					      <&iomuxc  2 155 1>, <&iomuxc  3 153 1>,
					      <&iomuxc  4 150 1>, <&iomuxc  5 149 1>,
					      <&iomuxc  6 144 1>, <&iomuxc  7 147 1>,
					      <&iomuxc  8 142 1>, <&iomuxc  9 146 1>,
					      <&iomuxc 10 148 1>, <&iomuxc 11 141 1>,
					      <&iomuxc 12 145 1>, <&iomuxc 13 143 1>,
					      <&iomuxc 14 140 1>, <&iomuxc 15 139 1>,
					      <&iomuxc 16 164 2>, <&iomuxc 18 160 1>,
					      <&iomuxc 19 162 1>, <&iomuxc 20 163 1>,
					      <&iomuxc 21 161 1>;
492 493
			};

494
			kpp: kpp@20b8000 {
495
				compatible = "fsl,imx6sl-kpp", "fsl,imx21-kpp";
496
				reg = <0x020b8000 0x4000>;
497
				interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
498
				clocks = <&clks IMX6SL_CLK_IPG>;
499
				status = "disabled";
500 501
			};

502
			wdog1: wdog@20bc000 {
503 504
				compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
				reg = <0x020bc000 0x4000>;
505
				interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
506
				clocks = <&clks IMX6SL_CLK_IPG>;
507 508
			};

509
			wdog2: wdog@20c0000 {
510 511
				compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
				reg = <0x020c0000 0x4000>;
512
				interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
513
				clocks = <&clks IMX6SL_CLK_IPG>;
514 515 516
				status = "disabled";
			};

517
			clks: ccm@20c4000 {
518 519
				compatible = "fsl,imx6sl-ccm";
				reg = <0x020c4000 0x4000>;
520 521
				interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
					     <0 88 IRQ_TYPE_LEVEL_HIGH>;
522 523 524
				#clock-cells = <1>;
			};

525
			anatop: anatop@20c8000 {
526 527 528
				compatible = "fsl,imx6sl-anatop",
					     "fsl,imx6q-anatop",
					     "syscon", "simple-bus";
529
				reg = <0x020c8000 0x1000>;
530 531 532
				interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
					     <0 54 IRQ_TYPE_LEVEL_HIGH>,
					     <0 127 IRQ_TYPE_LEVEL_HIGH>;
533

534
				reg_vdd1p1: regulator-1p1 {
535 536
					compatible = "fsl,anatop-regulator";
					regulator-name = "vdd1p1";
537 538
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1200000>;
539 540 541 542 543 544 545
					regulator-always-on;
					anatop-reg-offset = <0x110>;
					anatop-vol-bit-shift = <8>;
					anatop-vol-bit-width = <5>;
					anatop-min-bit-val = <4>;
					anatop-min-voltage = <800000>;
					anatop-max-voltage = <1375000>;
546
					anatop-enable-bit = <0>;
547 548
				};

549
				reg_vdd3p0: regulator-3p0 {
550 551 552 553 554 555 556 557 558 559 560
					compatible = "fsl,anatop-regulator";
					regulator-name = "vdd3p0";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <3150000>;
					regulator-always-on;
					anatop-reg-offset = <0x120>;
					anatop-vol-bit-shift = <8>;
					anatop-vol-bit-width = <5>;
					anatop-min-bit-val = <0>;
					anatop-min-voltage = <2625000>;
					anatop-max-voltage = <3400000>;
561
					anatop-enable-bit = <0>;
562 563
				};

564
				reg_vdd2p5: regulator-2p5 {
565 566
					compatible = "fsl,anatop-regulator";
					regulator-name = "vdd2p5";
567 568
					regulator-min-microvolt = <2250000>;
					regulator-max-microvolt = <2750000>;
569 570 571 572 573 574 575
					regulator-always-on;
					anatop-reg-offset = <0x130>;
					anatop-vol-bit-shift = <8>;
					anatop-vol-bit-width = <5>;
					anatop-min-bit-val = <0>;
					anatop-min-voltage = <2100000>;
					anatop-max-voltage = <2850000>;
576
					anatop-enable-bit = <0>;
577 578
				};

579
				reg_arm: regulator-vddcore {
580
					compatible = "fsl,anatop-regulator";
581
					regulator-name = "vddarm";
582 583 584 585 586 587 588 589 590 591 592 593 594 595
					regulator-min-microvolt = <725000>;
					regulator-max-microvolt = <1450000>;
					regulator-always-on;
					anatop-reg-offset = <0x140>;
					anatop-vol-bit-shift = <0>;
					anatop-vol-bit-width = <5>;
					anatop-delay-reg-offset = <0x170>;
					anatop-delay-bit-shift = <24>;
					anatop-delay-bit-width = <2>;
					anatop-min-bit-val = <1>;
					anatop-min-voltage = <725000>;
					anatop-max-voltage = <1450000>;
				};

596
				reg_pu: regulator-vddpu {
597 598 599 600 601 602 603 604 605 606 607 608 609 610 611
					compatible = "fsl,anatop-regulator";
					regulator-name = "vddpu";
					regulator-min-microvolt = <725000>;
					regulator-max-microvolt = <1450000>;
					anatop-reg-offset = <0x140>;
					anatop-vol-bit-shift = <9>;
					anatop-vol-bit-width = <5>;
					anatop-delay-reg-offset = <0x170>;
					anatop-delay-bit-shift = <26>;
					anatop-delay-bit-width = <2>;
					anatop-min-bit-val = <1>;
					anatop-min-voltage = <725000>;
					anatop-max-voltage = <1450000>;
				};

612
				reg_soc: regulator-vddsoc {
613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629
					compatible = "fsl,anatop-regulator";
					regulator-name = "vddsoc";
					regulator-min-microvolt = <725000>;
					regulator-max-microvolt = <1450000>;
					regulator-always-on;
					anatop-reg-offset = <0x140>;
					anatop-vol-bit-shift = <18>;
					anatop-vol-bit-width = <5>;
					anatop-delay-reg-offset = <0x170>;
					anatop-delay-bit-shift = <28>;
					anatop-delay-bit-width = <2>;
					anatop-min-bit-val = <1>;
					anatop-min-voltage = <725000>;
					anatop-max-voltage = <1450000>;
				};
			};

630
			usbphy1: usbphy@20c9000 {
631 632
				compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
				reg = <0x020c9000 0x1000>;
633
				interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
634
				clocks = <&clks IMX6SL_CLK_USBPHY1>;
635
				fsl,anatop = <&anatop>;
636 637
			};

638
			usbphy2: usbphy@20ca000 {
639 640
				compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
				reg = <0x020ca000 0x1000>;
641
				interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
642
				clocks = <&clks IMX6SL_CLK_USBPHY2>;
643
				fsl,anatop = <&anatop>;
644 645
			};

646
			snvs: snvs@20cc000 {
647 648
				compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
				reg = <0x020cc000 0x4000>;
649

650
				snvs_rtc: snvs-rtc-lp {
651
					compatible = "fsl,sec-v4.0-mon-rtc-lp";
652 653
					regmap = <&snvs>;
					offset = <0x34>;
654 655
					interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
						     <0 20 IRQ_TYPE_LEVEL_HIGH>;
656
				};
657

658 659 660 661
				snvs_poweroff: snvs-poweroff {
					compatible = "syscon-poweroff";
					regmap = <&snvs>;
					offset = <0x38>;
662
					value = <0x60>;
663
					mask = <0x60>;
664 665
					status = "disabled";
				};
666 667
			};

668
			epit1: epit@20d0000 {
669
				reg = <0x020d0000 0x4000>;
670
				interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
671 672
			};

673
			epit2: epit@20d4000 {
674
				reg = <0x020d4000 0x4000>;
675
				interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
676 677
			};

678
			src: src@20d8000 {
679 680
				compatible = "fsl,imx6sl-src", "fsl,imx51-src";
				reg = <0x020d8000 0x4000>;
681 682
				interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
					     <0 96 IRQ_TYPE_LEVEL_HIGH>;
683 684 685
				#reset-cells = <1>;
			};

686
			gpc: gpc@20dc000 {
687 688
				compatible = "fsl,imx6sl-gpc", "fsl,imx6q-gpc";
				reg = <0x020dc000 0x4000>;
689 690
				interrupt-controller;
				#interrupt-cells = <3>;
691
				interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
692
				interrupt-parent = <&intc>;
693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722
				clocks = <&clks IMX6SL_CLK_IPG>;
				clock-names = "ipg";

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

					power-domain@0 {
						reg = <0>;
						#power-domain-cells = <0>;
					};

					pd_pu: power-domain@1 {
						reg = <1>;
						#power-domain-cells = <0>;
						power-supply = <&reg_pu>;
						clocks = <&clks IMX6SL_CLK_GPU2D_OVG>,
						         <&clks IMX6SL_CLK_GPU2D_PODF>;
					};

					pd_disp: power-domain@2 {
						reg = <2>;
						#power-domain-cells = <0>;
						clocks = <&clks IMX6SL_CLK_LCDIF_AXI>,
							 <&clks IMX6SL_CLK_LCDIF_PIX>,
							 <&clks IMX6SL_CLK_EPDC_AXI>,
							 <&clks IMX6SL_CLK_EPDC_PIX>,
							 <&clks IMX6SL_CLK_PXP_AXI>;
					};
				};
723 724
			};

725
			gpr: iomuxc-gpr@20e0000 {
726 727
				compatible = "fsl,imx6sl-iomuxc-gpr",
					     "fsl,imx6q-iomuxc-gpr", "syscon";
728 729
				reg = <0x020e0000 0x38>;
			};
730

731
			iomuxc: iomuxc@20e0000 {
732 733 734 735
				compatible = "fsl,imx6sl-iomuxc";
				reg = <0x020e0000 0x4000>;
			};

736
			csi: csi@20e4000 {
737
				reg = <0x020e4000 0x4000>;
738
				interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
739 740
			};

741
			spdc: spdc@20e8000 {
742
				reg = <0x020e8000 0x4000>;
743
				interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
744 745
			};

746
			sdma: sdma@20ec000 {
747
				compatible = "fsl,imx6sl-sdma", "fsl,imx6q-sdma";
748
				reg = <0x020ec000 0x4000>;
749
				interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
750
				clocks = <&clks IMX6SL_CLK_SDMA>,
751
					 <&clks IMX6SL_CLK_AHB>;
752
				clock-names = "ipg", "ahb";
753
				#dma-cells = <3>;
754 755
				/* imx6sl reuses imx6q sdma firmware */
				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
756 757
			};

758
			pxp: pxp@20f0000 {
759
				reg = <0x020f0000 0x4000>;
760
				interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
761 762
			};

763
			epdc: epdc@20f4000 {
764
				reg = <0x020f4000 0x4000>;
765
				interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
766 767
			};

768
			lcdif: lcdif@20f8000 {
769
				compatible = "fsl,imx6sl-lcdif", "fsl,imx28-lcdif";
770
				reg = <0x020f8000 0x4000>;
771
				interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
772 773 774 775 776
				clocks = <&clks IMX6SL_CLK_LCDIF_PIX>,
					 <&clks IMX6SL_CLK_LCDIF_AXI>,
					 <&clks IMX6SL_CLK_DUMMY>;
				clock-names = "pix", "axi", "disp_axi";
				status = "disabled";
777
				power-domains = <&pd_disp>;
778 779
			};

780
			dcp: dcp@20fc000 {
781
				compatible = "fsl,imx6sl-dcp", "fsl,imx28-dcp";
782
				reg = <0x020fc000 0x4000>;
783 784 785
				interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>,
					     <0 100 IRQ_TYPE_LEVEL_HIGH>,
					     <0 101 IRQ_TYPE_LEVEL_HIGH>;
786 787 788
			};
		};

789
		aips2: aips-bus@2100000 {
790 791 792 793 794 795
			compatible = "fsl,aips-bus", "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x02100000 0x100000>;
			ranges;

796
			usbotg1: usb@2184000 {
797 798
				compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
				reg = <0x02184000 0x200>;
799
				interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
800 801 802
				clocks = <&clks IMX6SL_CLK_USBOH3>;
				fsl,usbphy = <&usbphy1>;
				fsl,usbmisc = <&usbmisc 0>;
803
				ahb-burst-config = <0x0>;
804 805
				tx-burst-size-dword = <0x10>;
				rx-burst-size-dword = <0x10>;
806 807 808
				status = "disabled";
			};

809
			usbotg2: usb@2184200 {
810 811
				compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
				reg = <0x02184200 0x200>;
812
				interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
813 814 815
				clocks = <&clks IMX6SL_CLK_USBOH3>;
				fsl,usbphy = <&usbphy2>;
				fsl,usbmisc = <&usbmisc 1>;
816
				ahb-burst-config = <0x0>;
817 818
				tx-burst-size-dword = <0x10>;
				rx-burst-size-dword = <0x10>;
819 820 821
				status = "disabled";
			};

822
			usbh: usb@2184400 {
823 824
				compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
				reg = <0x02184400 0x200>;
825
				interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
826
				clocks = <&clks IMX6SL_CLK_USBOH3>;
827 828
				fsl,usbphy = <&usbphynop1>;
				phy_type = "hsic";
829
				fsl,usbmisc = <&usbmisc 2>;
830
				dr_mode = "host";
831
				ahb-burst-config = <0x0>;
832 833
				tx-burst-size-dword = <0x10>;
				rx-burst-size-dword = <0x10>;
834 835 836
				status = "disabled";
			};

837
			usbmisc: usbmisc@2184800 {
838 839 840 841 842 843
				#index-cells = <1>;
				compatible = "fsl,imx6sl-usbmisc", "fsl,imx6q-usbmisc";
				reg = <0x02184800 0x200>;
				clocks = <&clks IMX6SL_CLK_USBOH3>;
			};

844
			fec: ethernet@2188000 {
845 846
				compatible = "fsl,imx6sl-fec", "fsl,imx25-fec";
				reg = <0x02188000 0x4000>;
847
				interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
848
				clocks = <&clks IMX6SL_CLK_ENET>,
849 850 851 852 853
					 <&clks IMX6SL_CLK_ENET_REF>;
				clock-names = "ipg", "ahb";
				status = "disabled";
			};

854
			usdhc1: usdhc@2190000 {
855 856
				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
				reg = <0x02190000 0x4000>;
857
				interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
858 859 860 861 862 863 864 865
				clocks = <&clks IMX6SL_CLK_USDHC1>,
					 <&clks IMX6SL_CLK_USDHC1>,
					 <&clks IMX6SL_CLK_USDHC1>;
				clock-names = "ipg", "ahb", "per";
				bus-width = <4>;
				status = "disabled";
			};

866
			usdhc2: usdhc@2194000 {
867 868
				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
				reg = <0x02194000 0x4000>;
869
				interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
870 871 872 873 874 875 876 877
				clocks = <&clks IMX6SL_CLK_USDHC2>,
					 <&clks IMX6SL_CLK_USDHC2>,
					 <&clks IMX6SL_CLK_USDHC2>;
				clock-names = "ipg", "ahb", "per";
				bus-width = <4>;
				status = "disabled";
			};

878
			usdhc3: usdhc@2198000 {
879 880
				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
				reg = <0x02198000 0x4000>;
881
				interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
882 883 884 885 886 887 888 889
				clocks = <&clks IMX6SL_CLK_USDHC3>,
					 <&clks IMX6SL_CLK_USDHC3>,
					 <&clks IMX6SL_CLK_USDHC3>;
				clock-names = "ipg", "ahb", "per";
				bus-width = <4>;
				status = "disabled";
			};

890
			usdhc4: usdhc@219c000 {
891 892
				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
				reg = <0x0219c000 0x4000>;
893
				interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
894 895 896 897 898 899 900 901
				clocks = <&clks IMX6SL_CLK_USDHC4>,
					 <&clks IMX6SL_CLK_USDHC4>,
					 <&clks IMX6SL_CLK_USDHC4>;
				clock-names = "ipg", "ahb", "per";
				bus-width = <4>;
				status = "disabled";
			};

902
			i2c1: i2c@21a0000 {
903 904 905 906
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
				reg = <0x021a0000 0x4000>;
907
				interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
908 909 910 911
				clocks = <&clks IMX6SL_CLK_I2C1>;
				status = "disabled";
			};

912
			i2c2: i2c@21a4000 {
913 914 915 916
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
				reg = <0x021a4000 0x4000>;
917
				interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
918 919 920 921
				clocks = <&clks IMX6SL_CLK_I2C2>;
				status = "disabled";
			};

922
			i2c3: i2c@21a8000 {
923 924 925 926
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
				reg = <0x021a8000 0x4000>;
927
				interrupts = <0 38 IRQ_TYPE_LEVEL_HIGH>;
928 929 930 931
				clocks = <&clks IMX6SL_CLK_I2C3>;
				status = "disabled";
			};

932
			memory-controller@21b0000 {
933 934
				compatible = "fsl,imx6sl-mmdc", "fsl,imx6q-mmdc";
				reg = <0x021b0000 0x4000>;
A
Anson Huang 已提交
935
				clocks = <&clks IMX6SL_CLK_MMDC_P0_IPG>;
936 937
			};

938
			rngb: rngb@21b4000 {
939
				reg = <0x021b4000 0x4000>;
940
				interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
941 942
			};

943
			weim: weim@21b8000 {
944 945
				#address-cells = <2>;
				#size-cells = <1>;
946
				reg = <0x021b8000 0x4000>;
947
				interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
948
				fsl,weim-cs-gpr = <&gpr>;
949
				status = "disabled";
950 951
			};

952
			ocotp: ocotp@21bc000 {
953
				compatible = "fsl,imx6sl-ocotp", "syscon";
954
				reg = <0x021bc000 0x4000>;
955
				clocks = <&clks IMX6SL_CLK_OCOTP>;
956 957
			};

958
			audmux: audmux@21d8000 {
959 960 961 962 963
				compatible = "fsl,imx6sl-audmux", "fsl,imx31-audmux";
				reg = <0x021d8000 0x4000>;
				status = "disabled";
			};
		};
964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983

		gpu_2d: gpu@2200000 {
			compatible = "vivante,gc";
			reg = <0x02200000 0x4000>;
			interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX6SL_CLK_MMDC_ROOT>,
				 <&clks IMX6SL_CLK_GPU2D_OVG>;
			clock-names = "bus", "core";
			power-domains = <&pd_pu>;
		};

		gpu_vg: gpu@2204000 {
			compatible = "vivante,gc";
			reg = <0x02204000 0x4000>;
			interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX6SL_CLK_MMDC_ROOT>,
				 <&clks IMX6SL_CLK_GPU2D_OVG>;
			clock-names = "bus", "core";
			power-domains = <&pd_pu>;
		};
984 985
	};
};