imx6sl.dtsi 26.9 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 18
	/*
	 * 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.
	 * Also for U-Boot there must be a pre-existing /memory node.
	 */
	chosen {};
19
	memory { device_type = "memory"; };
20

21
	aliases {
22
		ethernet0 = &fec;
23 24 25 26 27
		gpio0 = &gpio1;
		gpio1 = &gpio2;
		gpio2 = &gpio3;
		gpio3 = &gpio4;
		gpio4 = &gpio5;
28 29 30 31 32 33 34 35 36
		serial0 = &uart1;
		serial1 = &uart2;
		serial2 = &uart3;
		serial3 = &uart4;
		serial4 = &uart5;
		spi0 = &ecspi1;
		spi1 = &ecspi2;
		spi2 = &ecspi3;
		spi3 = &ecspi4;
37 38
		usbphy0 = &usbphy1;
		usbphy1 = &usbphy2;
39 40 41 42 43 44 45 46 47 48 49
	};

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

		cpu@0 {
			compatible = "arm,cortex-a9";
			device_type = "cpu";
			reg = <0x0>;
			next-level-cache = <&L2>;
50 51 52 53 54 55 56 57 58 59 60 61 62
			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 */
63
			#cooling-cells = <2>;
64 65 66 67 68 69 70 71
			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>;
72 73 74
		};
	};

75
	intc: interrupt-controller@a01000 {
76 77 78 79 80
		compatible = "arm,cortex-a9-gic";
		#interrupt-cells = <3>;
		interrupt-controller;
		reg = <0x00a01000 0x1000>,
		      <0x00a00100 0x100>;
81
		interrupt-parent = <&intc>;
82 83 84 85 86
	};

	clocks {
		ckil {
			compatible = "fixed-clock";
87
			#clock-cells = <0>;
88 89 90 91 92
			clock-frequency = <32768>;
		};

		osc {
			compatible = "fixed-clock";
93
			#clock-cells = <0>;
94 95 96 97
			clock-frequency = <24000000>;
		};
	};

98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
	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>;
	};

113 114 115 116
	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
117
		interrupt-parent = <&gpc>;
118 119
		ranges;

120
		ocram: sram@900000 {
121 122 123 124 125
			compatible = "mmio-sram";
			reg = <0x00900000 0x20000>;
			clocks = <&clks IMX6SL_CLK_OCRAM>;
		};

126
		L2: l2-cache@a02000 {
127 128
			compatible = "arm,pl310-cache";
			reg = <0x00a02000 0x1000>;
129
			interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
130 131 132 133 134 135
			cache-unified;
			cache-level = <2>;
			arm,tag-latency = <4 2 3>;
			arm,data-latency = <4 2 3>;
		};

136
		aips1: aips-bus@2000000 {
137 138 139 140 141 142
			compatible = "fsl,aips-bus", "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x02000000 0x100000>;
			ranges;

143
			spba: spba-bus@2000000 {
144 145 146 147 148 149
				compatible = "fsl,spba-bus", "simple-bus";
				#address-cells = <1>;
				#size-cells = <1>;
				reg = <0x02000000 0x40000>;
				ranges;

150
				spdif: spdif@2004000 {
151 152
					compatible = "fsl,imx6sl-spdif",
						"fsl,imx35-spdif";
153
					reg = <0x02004000 0x4000>;
154
					interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
155 156 157 158 159 160 161 162 163 164 165 166
					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",
167
						"rxtx7", "spba";
168
					status = "disabled";
169 170
				};

171
				ecspi1: ecspi@2008000 {
172 173 174 175
					#address-cells = <1>;
					#size-cells = <0>;
					compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
					reg = <0x02008000 0x4000>;
176
					interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
177 178 179 180 181 182
					clocks = <&clks IMX6SL_CLK_ECSPI1>,
						 <&clks IMX6SL_CLK_ECSPI1>;
					clock-names = "ipg", "per";
					status = "disabled";
				};

183
				ecspi2: ecspi@200c000 {
184 185 186 187
					#address-cells = <1>;
					#size-cells = <0>;
					compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
					reg = <0x0200c000 0x4000>;
188
					interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
189 190 191 192 193 194
					clocks = <&clks IMX6SL_CLK_ECSPI2>,
						 <&clks IMX6SL_CLK_ECSPI2>;
					clock-names = "ipg", "per";
					status = "disabled";
				};

195
				ecspi3: ecspi@2010000 {
196 197 198 199
					#address-cells = <1>;
					#size-cells = <0>;
					compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
					reg = <0x02010000 0x4000>;
200
					interrupts = <0 33 IRQ_TYPE_LEVEL_HIGH>;
201 202 203 204 205 206
					clocks = <&clks IMX6SL_CLK_ECSPI3>,
						 <&clks IMX6SL_CLK_ECSPI3>;
					clock-names = "ipg", "per";
					status = "disabled";
				};

207
				ecspi4: ecspi@2014000 {
208 209 210 211
					#address-cells = <1>;
					#size-cells = <0>;
					compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
					reg = <0x02014000 0x4000>;
212
					interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
213 214 215 216 217 218
					clocks = <&clks IMX6SL_CLK_ECSPI4>,
						 <&clks IMX6SL_CLK_ECSPI4>;
					clock-names = "ipg", "per";
					status = "disabled";
				};

219
				uart5: serial@2018000 {
220 221
					compatible = "fsl,imx6sl-uart",
						   "fsl,imx6q-uart", "fsl,imx21-uart";
222
					reg = <0x02018000 0x4000>;
223
					interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
224 225 226
					clocks = <&clks IMX6SL_CLK_UART>,
						 <&clks IMX6SL_CLK_UART_SERIAL>;
					clock-names = "ipg", "per";
227 228
					dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
					dma-names = "rx", "tx";
229 230 231
					status = "disabled";
				};

232
				uart1: serial@2020000 {
233 234
					compatible = "fsl,imx6sl-uart",
						   "fsl,imx6q-uart", "fsl,imx21-uart";
235
					reg = <0x02020000 0x4000>;
236
					interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
237 238 239
					clocks = <&clks IMX6SL_CLK_UART>,
						 <&clks IMX6SL_CLK_UART_SERIAL>;
					clock-names = "ipg", "per";
240 241
					dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
					dma-names = "rx", "tx";
242 243 244
					status = "disabled";
				};

245
				uart2: serial@2024000 {
246 247
					compatible = "fsl,imx6sl-uart",
						   "fsl,imx6q-uart", "fsl,imx21-uart";
248
					reg = <0x02024000 0x4000>;
249
					interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
250 251 252
					clocks = <&clks IMX6SL_CLK_UART>,
						 <&clks IMX6SL_CLK_UART_SERIAL>;
					clock-names = "ipg", "per";
253 254
					dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
					dma-names = "rx", "tx";
255 256 257
					status = "disabled";
				};

258
				ssi1: ssi@2028000 {
259
					#sound-dai-cells = <0>;
M
Markus Pargmann 已提交
260
					compatible = "fsl,imx6sl-ssi",
261
							"fsl,imx51-ssi";
262
					reg = <0x02028000 0x4000>;
263
					interrupts = <0 46 IRQ_TYPE_LEVEL_HIGH>;
264 265 266
					clocks = <&clks IMX6SL_CLK_SSI1_IPG>,
						 <&clks IMX6SL_CLK_SSI1>;
					clock-names = "ipg", "baud";
267 268 269
					dmas = <&sdma 37 1 0>,
					       <&sdma 38 1 0>;
					dma-names = "rx", "tx";
270 271 272 273
					fsl,fifo-depth = <15>;
					status = "disabled";
				};

274
				ssi2: ssi@202c000 {
275
					#sound-dai-cells = <0>;
M
Markus Pargmann 已提交
276
					compatible = "fsl,imx6sl-ssi",
277
							"fsl,imx51-ssi";
278
					reg = <0x0202c000 0x4000>;
279
					interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
280 281 282
					clocks = <&clks IMX6SL_CLK_SSI2_IPG>,
						 <&clks IMX6SL_CLK_SSI2>;
					clock-names = "ipg", "baud";
283 284 285
					dmas = <&sdma 41 1 0>,
					       <&sdma 42 1 0>;
					dma-names = "rx", "tx";
286 287 288 289
					fsl,fifo-depth = <15>;
					status = "disabled";
				};

290
				ssi3: ssi@2030000 {
291
					#sound-dai-cells = <0>;
M
Markus Pargmann 已提交
292
					compatible = "fsl,imx6sl-ssi",
293
							"fsl,imx51-ssi";
294
					reg = <0x02030000 0x4000>;
295
					interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
296 297 298
					clocks = <&clks IMX6SL_CLK_SSI3_IPG>,
						 <&clks IMX6SL_CLK_SSI3>;
					clock-names = "ipg", "baud";
299 300 301
					dmas = <&sdma 45 1 0>,
					       <&sdma 46 1 0>;
					dma-names = "rx", "tx";
302 303 304 305
					fsl,fifo-depth = <15>;
					status = "disabled";
				};

306
				uart3: serial@2034000 {
307 308
					compatible = "fsl,imx6sl-uart",
						   "fsl,imx6q-uart", "fsl,imx21-uart";
309
					reg = <0x02034000 0x4000>;
310
					interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
311 312 313
					clocks = <&clks IMX6SL_CLK_UART>,
						 <&clks IMX6SL_CLK_UART_SERIAL>;
					clock-names = "ipg", "per";
314 315
					dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
					dma-names = "rx", "tx";
316 317 318
					status = "disabled";
				};

319
				uart4: serial@2038000 {
320 321
					compatible = "fsl,imx6sl-uart",
						   "fsl,imx6q-uart", "fsl,imx21-uart";
322
					reg = <0x02038000 0x4000>;
323
					interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
324 325 326
					clocks = <&clks IMX6SL_CLK_UART>,
						 <&clks IMX6SL_CLK_UART_SERIAL>;
					clock-names = "ipg", "per";
327 328
					dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
					dma-names = "rx", "tx";
329 330 331 332
					status = "disabled";
				};
			};

333
			pwm1: pwm@2080000 {
334 335 336
				#pwm-cells = <2>;
				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
				reg = <0x02080000 0x4000>;
337
				interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
338 339 340 341 342
				clocks = <&clks IMX6SL_CLK_PWM1>,
					 <&clks IMX6SL_CLK_PWM1>;
				clock-names = "ipg", "per";
			};

343
			pwm2: pwm@2084000 {
344 345 346
				#pwm-cells = <2>;
				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
				reg = <0x02084000 0x4000>;
347
				interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
348 349 350 351 352
				clocks = <&clks IMX6SL_CLK_PWM2>,
					 <&clks IMX6SL_CLK_PWM2>;
				clock-names = "ipg", "per";
			};

353
			pwm3: pwm@2088000 {
354 355 356
				#pwm-cells = <2>;
				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
				reg = <0x02088000 0x4000>;
357
				interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
358 359 360 361 362
				clocks = <&clks IMX6SL_CLK_PWM3>,
					 <&clks IMX6SL_CLK_PWM3>;
				clock-names = "ipg", "per";
			};

363
			pwm4: pwm@208c000 {
364 365 366
				#pwm-cells = <2>;
				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
				reg = <0x0208c000 0x4000>;
367
				interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
368 369 370 371 372
				clocks = <&clks IMX6SL_CLK_PWM4>,
					 <&clks IMX6SL_CLK_PWM4>;
				clock-names = "ipg", "per";
			};

373
			gpt: gpt@2098000 {
374 375
				compatible = "fsl,imx6sl-gpt";
				reg = <0x02098000 0x4000>;
376
				interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
377 378 379 380 381
				clocks = <&clks IMX6SL_CLK_GPT>,
					 <&clks IMX6SL_CLK_GPT_SERIAL>;
				clock-names = "ipg", "per";
			};

382
			gpio1: gpio@209c000 {
383 384
				compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
				reg = <0x0209c000 0x4000>;
385 386
				interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
					     <0 67 IRQ_TYPE_LEVEL_HIGH>;
387 388 389 390
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
391 392 393 394 395 396
				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>;
397 398
			};

399
			gpio2: gpio@20a0000 {
400 401
				compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
				reg = <0x020a0000 0x4000>;
402 403
				interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
					     <0 69 IRQ_TYPE_LEVEL_HIGH>;
404 405 406 407
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
408 409 410 411 412 413 414
				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>;
415 416
			};

417
			gpio3: gpio@20a4000 {
418 419
				compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
				reg = <0x020a4000 0x4000>;
420 421
				interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
					     <0 71 IRQ_TYPE_LEVEL_HIGH>;
422 423 424 425
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
426 427 428 429 430 431 432 433
				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>;
434 435
			};

436
			gpio4: gpio@20a8000 {
437 438
				compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
				reg = <0x020a8000 0x4000>;
439 440
				interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
					     <0 73 IRQ_TYPE_LEVEL_HIGH>;
441 442 443 444
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
445 446 447 448 449 450 451 452 453 454 455 456 457 458 459
				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>;
460 461
			};

462
			gpio5: gpio@20ac000 {
463 464
				compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
				reg = <0x020ac000 0x4000>;
465 466
				interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
					     <0 75 IRQ_TYPE_LEVEL_HIGH>;
467 468 469 470
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
471 472 473 474 475 476 477 478 479 480 481
				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>;
482 483
			};

484
			kpp: kpp@20b8000 {
485
				compatible = "fsl,imx6sl-kpp", "fsl,imx21-kpp";
486
				reg = <0x020b8000 0x4000>;
487
				interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
488
				clocks = <&clks IMX6SL_CLK_DUMMY>;
489
				status = "disabled";
490 491
			};

492
			wdog1: wdog@20bc000 {
493 494
				compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
				reg = <0x020bc000 0x4000>;
495
				interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
496 497 498
				clocks = <&clks IMX6SL_CLK_DUMMY>;
			};

499
			wdog2: wdog@20c0000 {
500 501
				compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
				reg = <0x020c0000 0x4000>;
502
				interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
503 504 505 506
				clocks = <&clks IMX6SL_CLK_DUMMY>;
				status = "disabled";
			};

507
			clks: ccm@20c4000 {
508 509
				compatible = "fsl,imx6sl-ccm";
				reg = <0x020c4000 0x4000>;
510 511
				interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
					     <0 88 IRQ_TYPE_LEVEL_HIGH>;
512 513 514
				#clock-cells = <1>;
			};

515
			anatop: anatop@20c8000 {
516 517 518
				compatible = "fsl,imx6sl-anatop",
					     "fsl,imx6q-anatop",
					     "syscon", "simple-bus";
519
				reg = <0x020c8000 0x1000>;
520 521 522
				interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
					     <0 54 IRQ_TYPE_LEVEL_HIGH>,
					     <0 127 IRQ_TYPE_LEVEL_HIGH>;
523

524
				regulator-1p1 {
525 526
					compatible = "fsl,anatop-regulator";
					regulator-name = "vdd1p1";
527 528
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1200000>;
529 530 531 532 533 534 535
					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>;
536
					anatop-enable-bit = <0>;
537 538
				};

539
				regulator-3p0 {
540 541 542 543 544 545 546 547 548 549 550
					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>;
551
					anatop-enable-bit = <0>;
552 553
				};

554
				regulator-2p5 {
555 556
					compatible = "fsl,anatop-regulator";
					regulator-name = "vdd2p5";
557 558
					regulator-min-microvolt = <2250000>;
					regulator-max-microvolt = <2750000>;
559 560 561 562 563 564 565
					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>;
566
					anatop-enable-bit = <0>;
567 568
				};

569
				reg_arm: regulator-vddcore {
570
					compatible = "fsl,anatop-regulator";
571
					regulator-name = "vddarm";
572 573 574 575 576 577 578 579 580 581 582 583 584 585
					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>;
				};

586
				reg_pu: regulator-vddpu {
587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602
					compatible = "fsl,anatop-regulator";
					regulator-name = "vddpu";
					regulator-min-microvolt = <725000>;
					regulator-max-microvolt = <1450000>;
					regulator-always-on;
					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>;
				};

603
				reg_soc: regulator-vddsoc {
604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620
					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>;
				};
			};

621
			usbphy1: usbphy@20c9000 {
622 623
				compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
				reg = <0x020c9000 0x1000>;
624
				interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
625
				clocks = <&clks IMX6SL_CLK_USBPHY1>;
626
				fsl,anatop = <&anatop>;
627 628
			};

629
			usbphy2: usbphy@20ca000 {
630 631
				compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
				reg = <0x020ca000 0x1000>;
632
				interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
633
				clocks = <&clks IMX6SL_CLK_USBPHY2>;
634
				fsl,anatop = <&anatop>;
635 636
			};

637
			snvs: snvs@20cc000 {
638 639
				compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
				reg = <0x020cc000 0x4000>;
640

641
				snvs_rtc: snvs-rtc-lp {
642
					compatible = "fsl,sec-v4.0-mon-rtc-lp";
643 644
					regmap = <&snvs>;
					offset = <0x34>;
645 646
					interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
						     <0 20 IRQ_TYPE_LEVEL_HIGH>;
647
				};
648

649 650 651 652
				snvs_poweroff: snvs-poweroff {
					compatible = "syscon-poweroff";
					regmap = <&snvs>;
					offset = <0x38>;
653
					value = <0x60>;
654
					mask = <0x60>;
655 656
					status = "disabled";
				};
657 658
			};

659
			epit1: epit@20d0000 {
660
				reg = <0x020d0000 0x4000>;
661
				interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
662 663
			};

664
			epit2: epit@20d4000 {
665
				reg = <0x020d4000 0x4000>;
666
				interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
667 668
			};

669
			src: src@20d8000 {
670 671
				compatible = "fsl,imx6sl-src", "fsl,imx51-src";
				reg = <0x020d8000 0x4000>;
672 673
				interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
					     <0 96 IRQ_TYPE_LEVEL_HIGH>;
674 675 676
				#reset-cells = <1>;
			};

677
			gpc: gpc@20dc000 {
678 679
				compatible = "fsl,imx6sl-gpc", "fsl,imx6q-gpc";
				reg = <0x020dc000 0x4000>;
680 681
				interrupt-controller;
				#interrupt-cells = <3>;
682
				interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
683
				interrupt-parent = <&intc>;
684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713
				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>;
					};
				};
714 715
			};

716
			gpr: iomuxc-gpr@20e0000 {
717 718
				compatible = "fsl,imx6sl-iomuxc-gpr",
					     "fsl,imx6q-iomuxc-gpr", "syscon";
719 720
				reg = <0x020e0000 0x38>;
			};
721

722
			iomuxc: iomuxc@20e0000 {
723 724 725 726
				compatible = "fsl,imx6sl-iomuxc";
				reg = <0x020e0000 0x4000>;
			};

727
			csi: csi@20e4000 {
728
				reg = <0x020e4000 0x4000>;
729
				interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
730 731
			};

732
			spdc: spdc@20e8000 {
733
				reg = <0x020e8000 0x4000>;
734
				interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
735 736
			};

737
			sdma: sdma@20ec000 {
738
				compatible = "fsl,imx6sl-sdma", "fsl,imx6q-sdma";
739
				reg = <0x020ec000 0x4000>;
740
				interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
741 742 743
				clocks = <&clks IMX6SL_CLK_SDMA>,
					 <&clks IMX6SL_CLK_SDMA>;
				clock-names = "ipg", "ahb";
744
				#dma-cells = <3>;
745 746
				/* imx6sl reuses imx6q sdma firmware */
				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
747 748
			};

749
			pxp: pxp@20f0000 {
750
				reg = <0x020f0000 0x4000>;
751
				interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
752 753
			};

754
			epdc: epdc@20f4000 {
755
				reg = <0x020f4000 0x4000>;
756
				interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
757 758
			};

759
			lcdif: lcdif@20f8000 {
760
				compatible = "fsl,imx6sl-lcdif", "fsl,imx28-lcdif";
761
				reg = <0x020f8000 0x4000>;
762
				interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
763 764 765 766 767
				clocks = <&clks IMX6SL_CLK_LCDIF_PIX>,
					 <&clks IMX6SL_CLK_LCDIF_AXI>,
					 <&clks IMX6SL_CLK_DUMMY>;
				clock-names = "pix", "axi", "disp_axi";
				status = "disabled";
768
				power-domains = <&pd_disp>;
769 770
			};

771
			dcp: dcp@20fc000 {
772
				compatible = "fsl,imx6sl-dcp", "fsl,imx28-dcp";
773
				reg = <0x020fc000 0x4000>;
774 775 776
				interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>,
					     <0 100 IRQ_TYPE_LEVEL_HIGH>,
					     <0 101 IRQ_TYPE_LEVEL_HIGH>;
777 778 779
			};
		};

780
		aips2: aips-bus@2100000 {
781 782 783 784 785 786
			compatible = "fsl,aips-bus", "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x02100000 0x100000>;
			ranges;

787
			usbotg1: usb@2184000 {
788 789
				compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
				reg = <0x02184000 0x200>;
790
				interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
791 792 793
				clocks = <&clks IMX6SL_CLK_USBOH3>;
				fsl,usbphy = <&usbphy1>;
				fsl,usbmisc = <&usbmisc 0>;
794
				ahb-burst-config = <0x0>;
795 796
				tx-burst-size-dword = <0x10>;
				rx-burst-size-dword = <0x10>;
797 798 799
				status = "disabled";
			};

800
			usbotg2: usb@2184200 {
801 802
				compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
				reg = <0x02184200 0x200>;
803
				interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
804 805 806
				clocks = <&clks IMX6SL_CLK_USBOH3>;
				fsl,usbphy = <&usbphy2>;
				fsl,usbmisc = <&usbmisc 1>;
807
				ahb-burst-config = <0x0>;
808 809
				tx-burst-size-dword = <0x10>;
				rx-burst-size-dword = <0x10>;
810 811 812
				status = "disabled";
			};

813
			usbh: usb@2184400 {
814 815
				compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
				reg = <0x02184400 0x200>;
816
				interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
817 818
				clocks = <&clks IMX6SL_CLK_USBOH3>;
				fsl,usbmisc = <&usbmisc 2>;
819
				dr_mode = "host";
820
				ahb-burst-config = <0x0>;
821 822
				tx-burst-size-dword = <0x10>;
				rx-burst-size-dword = <0x10>;
823 824 825
				status = "disabled";
			};

826
			usbmisc: usbmisc@2184800 {
827 828 829 830 831 832
				#index-cells = <1>;
				compatible = "fsl,imx6sl-usbmisc", "fsl,imx6q-usbmisc";
				reg = <0x02184800 0x200>;
				clocks = <&clks IMX6SL_CLK_USBOH3>;
			};

833
			fec: ethernet@2188000 {
834 835
				compatible = "fsl,imx6sl-fec", "fsl,imx25-fec";
				reg = <0x02188000 0x4000>;
836
				interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
837
				clocks = <&clks IMX6SL_CLK_ENET>,
838 839 840 841 842
					 <&clks IMX6SL_CLK_ENET_REF>;
				clock-names = "ipg", "ahb";
				status = "disabled";
			};

843
			usdhc1: usdhc@2190000 {
844 845
				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
				reg = <0x02190000 0x4000>;
846
				interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
847 848 849 850 851 852 853 854
				clocks = <&clks IMX6SL_CLK_USDHC1>,
					 <&clks IMX6SL_CLK_USDHC1>,
					 <&clks IMX6SL_CLK_USDHC1>;
				clock-names = "ipg", "ahb", "per";
				bus-width = <4>;
				status = "disabled";
			};

855
			usdhc2: usdhc@2194000 {
856 857
				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
				reg = <0x02194000 0x4000>;
858
				interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
859 860 861 862 863 864 865 866
				clocks = <&clks IMX6SL_CLK_USDHC2>,
					 <&clks IMX6SL_CLK_USDHC2>,
					 <&clks IMX6SL_CLK_USDHC2>;
				clock-names = "ipg", "ahb", "per";
				bus-width = <4>;
				status = "disabled";
			};

867
			usdhc3: usdhc@2198000 {
868 869
				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
				reg = <0x02198000 0x4000>;
870
				interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
871 872 873 874 875 876 877 878
				clocks = <&clks IMX6SL_CLK_USDHC3>,
					 <&clks IMX6SL_CLK_USDHC3>,
					 <&clks IMX6SL_CLK_USDHC3>;
				clock-names = "ipg", "ahb", "per";
				bus-width = <4>;
				status = "disabled";
			};

879
			usdhc4: usdhc@219c000 {
880 881
				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
				reg = <0x0219c000 0x4000>;
882
				interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
883 884 885 886 887 888 889 890
				clocks = <&clks IMX6SL_CLK_USDHC4>,
					 <&clks IMX6SL_CLK_USDHC4>,
					 <&clks IMX6SL_CLK_USDHC4>;
				clock-names = "ipg", "ahb", "per";
				bus-width = <4>;
				status = "disabled";
			};

891
			i2c1: i2c@21a0000 {
892 893 894 895
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
				reg = <0x021a0000 0x4000>;
896
				interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
897 898 899 900
				clocks = <&clks IMX6SL_CLK_I2C1>;
				status = "disabled";
			};

901
			i2c2: i2c@21a4000 {
902 903 904 905
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
				reg = <0x021a4000 0x4000>;
906
				interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
907 908 909 910
				clocks = <&clks IMX6SL_CLK_I2C2>;
				status = "disabled";
			};

911
			i2c3: i2c@21a8000 {
912 913 914 915
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
				reg = <0x021a8000 0x4000>;
916
				interrupts = <0 38 IRQ_TYPE_LEVEL_HIGH>;
917 918 919 920
				clocks = <&clks IMX6SL_CLK_I2C3>;
				status = "disabled";
			};

921
			mmdc: mmdc@21b0000 {
922 923 924 925
				compatible = "fsl,imx6sl-mmdc", "fsl,imx6q-mmdc";
				reg = <0x021b0000 0x4000>;
			};

926
			rngb: rngb@21b4000 {
927
				reg = <0x021b4000 0x4000>;
928
				interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
929 930
			};

931
			weim: weim@21b8000 {
932 933
				#address-cells = <2>;
				#size-cells = <1>;
934
				reg = <0x021b8000 0x4000>;
935
				interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
936
				fsl,weim-cs-gpr = <&gpr>;
937
				status = "disabled";
938 939
			};

940
			ocotp: ocotp@21bc000 {
941
				compatible = "fsl,imx6sl-ocotp", "syscon";
942
				reg = <0x021bc000 0x4000>;
943
				clocks = <&clks IMX6SL_CLK_OCOTP>;
944 945
			};

946
			audmux: audmux@21d8000 {
947 948 949 950 951
				compatible = "fsl,imx6sl-audmux", "fsl,imx31-audmux";
				reg = <0x021d8000 0x4000>;
				status = "disabled";
			};
		};
952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971

		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>;
		};
972 973
	};
};