imx6sl.dtsi 27.0 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 33 34
		serial0 = &uart1;
		serial1 = &uart2;
		serial2 = &uart3;
		serial3 = &uart4;
		serial4 = &uart5;
		spi0 = &ecspi1;
		spi1 = &ecspi2;
		spi2 = &ecspi3;
		spi3 = &ecspi4;
35 36
		usbphy0 = &usbphy1;
		usbphy1 = &usbphy2;
37 38 39 40 41 42 43 44 45 46 47
	};

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

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

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

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

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

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

111 112 113 114 115
	usbphynop1: usbphynop1 {
		compatible = "usb-nop-xceiv";
		#phy-cells = <0>;
	};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

589
				reg_pu: regulator-vddpu {
590 591 592 593 594 595 596 597 598 599 600 601 602 603 604
					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>;
				};

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

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

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

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

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

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

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

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

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

679
			gpc: gpc@20dc000 {
680 681
				compatible = "fsl,imx6sl-gpc", "fsl,imx6q-gpc";
				reg = <0x020dc000 0x4000>;
682 683
				interrupt-controller;
				#interrupt-cells = <3>;
684
				interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
685
				interrupt-parent = <&intc>;
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 714 715
				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>;
					};
				};
716 717
			};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

925
			memory-controller@21b0000 {
926 927
				compatible = "fsl,imx6sl-mmdc", "fsl,imx6q-mmdc";
				reg = <0x021b0000 0x4000>;
A
Anson Huang 已提交
928
				clocks = <&clks IMX6SL_CLK_MMDC_P0_IPG>;
929 930
			};

931
			rngb: rngb@21b4000 {
932
				reg = <0x021b4000 0x4000>;
933
				interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
934 935
			};

936
			weim: weim@21b8000 {
937 938
				#address-cells = <2>;
				#size-cells = <1>;
939
				reg = <0x021b8000 0x4000>;
940
				interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
941
				fsl,weim-cs-gpr = <&gpr>;
942
				status = "disabled";
943 944
			};

945
			ocotp: ocotp@21bc000 {
946
				compatible = "fsl,imx6sl-ocotp", "syscon";
947
				reg = <0x021bc000 0x4000>;
948
				clocks = <&clks IMX6SL_CLK_OCOTP>;
949 950
			};

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

		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>;
		};
977 978
	};
};