imx6sx-sabreauto.dts 13.1 KB
Newer Older
1 2 3
// SPDX-License-Identifier: GPL-2.0
//
// Copyright (C) 2014 Freescale Semiconductor, Inc.
4 5 6 7 8 9 10 11 12

/dts-v1/;

#include "imx6sx.dtsi"

/ {
	model = "Freescale i.MX6 SoloX Sabre Auto Board";
	compatible = "fsl,imx6sx-sabreauto", "fsl,imx6sx";

13
	memory@80000000 {
14
		device_type = "memory";
15 16 17
		reg = <0x80000000 0x80000000>;
	};

18 19 20 21 22 23 24 25 26 27 28 29
	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_led>;

		user {
			label = "debug";
			gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};

30 31 32 33 34 35 36 37 38
	vcc_sd3: regulator-vcc-sd3 {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_vcc_sd3>;
		regulator-name = "VCC_SD3";
		regulator-min-microvolt = <3000000>;
		regulator-max-microvolt = <3000000>;
		gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
		enable-active-high;
39
	};
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

	reg_can_wake: regulator-can-wake {
		compatible = "regulator-fixed";
		regulator-name = "can-wake";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&max7310_b 7 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_can_en: regulator-can-en {
		compatible = "regulator-fixed";
		regulator-name = "can-en";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&max7310_b 5 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		vin-supply = <&reg_can_wake>;
	};

	reg_can_stby: regulator-can-stby {
		compatible = "regulator-fixed";
		regulator-name = "can-stby";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&max7310_b 4 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		vin-supply = <&reg_can_en>;
	};
69

70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
	reg_cs42888: cs42888_supply {
		compatible = "regulator-fixed";
		regulator-name = "cs42888_supply";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	sound-cs42888 {
		compatible = "fsl,imx6-sabreauto-cs42888",
			     "fsl,imx-audio-cs42888";
		model = "imx-cs42888";
		audio-cpu = <&esai>;
		audio-asrc = <&asrc>;
		audio-codec = <&cs42888>;
		audio-routing =
			"Line Out Jack", "AOUT1L",
			"Line Out Jack", "AOUT1R",
			"Line Out Jack", "AOUT2L",
			"Line Out Jack", "AOUT2R",
			"Line Out Jack", "AOUT3L",
			"Line Out Jack", "AOUT3R",
			"Line Out Jack", "AOUT4L",
			"Line Out Jack", "AOUT4R",
			"AIN1L", "Line In Jack",
			"AIN1R", "Line In Jack",
			"AIN2L", "Line In Jack",
			"AIN2R", "Line In Jack";
	};

100 101 102 103 104 105
	sound-spdif {
		compatible = "fsl,imx-audio-spdif";
		model = "imx-spdif";
		spdif-controller = <&spdif>;
		spdif-in;
	};
106 107
};

108 109 110 111
&anaclk2 {
	clock-frequency = <24576000>;
};

112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
&clks {
	assigned-clocks = <&clks IMX6SX_PLL4_BYPASS_SRC>,
			  <&clks IMX6SX_PLL4_BYPASS>,
			  <&clks IMX6SX_CLK_PLL4_POST_DIV>;
	assigned-clock-parents = <&clks IMX6SX_CLK_LVDS2_IN>,
				 <&clks IMX6SX_PLL4_BYPASS_SRC>;
	assigned-clock-rates = <0>, <0>, <24576000>;
};

&esai {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_esai>;
	assigned-clocks = <&clks IMX6SX_CLK_ESAI_SEL>,
			<&clks IMX6SX_CLK_ESAI_EXTAL>;
	assigned-clock-parents = <&clks IMX6SX_CLK_PLL4_AUDIO_DIV>;
	assigned-clock-rates = <0>, <24576000>;
	status = "okay";
};

131 132 133
&fec1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet1>;
134
	phy-mode = "rgmii-id";
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
	phy-handle = <&ethphy1>;
	fsl,magic-packet;
	status = "okay";

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

		ethphy0: ethernet-phy@0 {
			compatible = "ethernet-phy-ieee802.3-c22";
			reg = <0>;
		};

		ethphy1: ethernet-phy@1 {
			compatible = "ethernet-phy-ieee802.3-c22";
			reg = <1>;
		};
	};
};

&fec2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet2>;
	phy-mode = "rgmii";
	phy-handle = <&ethphy0>;
	fsl,magic-packet;
	status = "okay";
};

164 165 166 167 168 169 170 171 172 173 174 175 176 177
&flexcan1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_flexcan1>;
	xceiver-supply = <&reg_can_stby>;
	status = "okay";
};

&flexcan2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_flexcan2>;
	xceiver-supply = <&reg_can_stby>;
	status = "okay";
};

178 179 180 181 182 183 184 185 186 187 188 189
&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	status = "okay";
};

&usdhc3 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc3>;
	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
	bus-width = <8>;
190
	cd-gpios = <&gpio7 10 GPIO_ACTIVE_LOW>;
191 192
	wp-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
	keep-power-in-suspend;
193
	wakeup-source;
194 195 196 197 198 199 200 201
	vmmc-supply = <&vcc_sd3>;
	status = "okay";
};

&usdhc4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc4>;
	bus-width = <8>;
202
	cd-gpios = <&gpio7 11 GPIO_ACTIVE_LOW>;
203 204
	no-1-8-v;
	keep-power-in-suspend;
205
	wakeup-source;
206 207 208 209
	status = "okay";
};

&iomuxc {
210 211 212 213 214 215
	pinctrl_egalax_int: egalax-intgrp {
		fsl,pins = <
			MX6SX_PAD_SD4_RESET_B__GPIO6_IO_22      0x10b0
		>;
	};

216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251
	pinctrl_enet1: enet1grp {
		fsl,pins = <
			MX6SX_PAD_ENET1_MDIO__ENET1_MDIO        0xa0b1
			MX6SX_PAD_ENET1_MDC__ENET1_MDC          0xa0b1
			MX6SX_PAD_RGMII1_TXC__ENET1_RGMII_TXC   0xa0b9
			MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0   0xa0b1
			MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1   0xa0b1
			MX6SX_PAD_RGMII1_TD2__ENET1_TX_DATA_2   0xa0b1
			MX6SX_PAD_RGMII1_TD3__ENET1_TX_DATA_3   0xa0b1
			MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN    0xa0b1
			MX6SX_PAD_RGMII1_RXC__ENET1_RX_CLK      0x3081
			MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0   0x3081
			MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1   0x3081
			MX6SX_PAD_RGMII1_RD2__ENET1_RX_DATA_2   0x3081
			MX6SX_PAD_RGMII1_RD3__ENET1_RX_DATA_3   0x3081
			MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN    0x3081
		>;
	};

	pinctrl_enet2: enet2grp {
		fsl,pins = <
			MX6SX_PAD_RGMII2_TXC__ENET2_RGMII_TXC   0xa0b9
			MX6SX_PAD_RGMII2_TD0__ENET2_TX_DATA_0   0xa0b1
			MX6SX_PAD_RGMII2_TD1__ENET2_TX_DATA_1   0xa0b1
			MX6SX_PAD_RGMII2_TD2__ENET2_TX_DATA_2   0xa0b1
			MX6SX_PAD_RGMII2_TD3__ENET2_TX_DATA_3   0xa0b1
			MX6SX_PAD_RGMII2_TX_CTL__ENET2_TX_EN    0xa0b1
			MX6SX_PAD_RGMII2_RXC__ENET2_RX_CLK      0x3081
			MX6SX_PAD_RGMII2_RD0__ENET2_RX_DATA_0   0x3081
			MX6SX_PAD_RGMII2_RD1__ENET2_RX_DATA_1   0x3081
			MX6SX_PAD_RGMII2_RD2__ENET2_RX_DATA_2   0x3081
			MX6SX_PAD_RGMII2_RD3__ENET2_RX_DATA_3   0x3081
			MX6SX_PAD_RGMII2_RX_CTL__ENET2_RX_EN    0x3081
		>;
	};

252 253 254 255 256 257 258 259 260 261 262 263 264 265 266
	pinctrl_esai: esaigrp {
		fsl,pins = <
			MX6SX_PAD_CSI_DATA00__ESAI_TX_CLK   0x1b030
			MX6SX_PAD_CSI_DATA01__ESAI_TX_FS    0x1b030
			MX6SX_PAD_CSI_HSYNC__ESAI_TX0       0x1b030
			MX6SX_PAD_CSI_DATA04__ESAI_TX1      0x1b030
			MX6SX_PAD_CSI_DATA06__ESAI_TX2_RX3  0x1b030
			MX6SX_PAD_CSI_DATA07__ESAI_TX3_RX2  0x1b030
			MX6SX_PAD_CSI_DATA02__ESAI_RX_CLK   0x1b030
			MX6SX_PAD_CSI_DATA03__ESAI_RX_FS    0x1b030
			MX6SX_PAD_CSI_VSYNC__ESAI_TX5_RX0   0x1b030
			MX6SX_PAD_CSI_DATA05__ESAI_TX4_RX1  0x1b030
		>;
	};

267 268 269 270 271 272 273 274 275 276 277 278 279 280
	pinctrl_flexcan1: flexcan1grp {
		fsl,pins = <
			MX6SX_PAD_QSPI1B_DQS__CAN1_TX   0x1b020
			MX6SX_PAD_QSPI1A_SS1_B__CAN1_RX	0x1b020
		>;
	};

	pinctrl_flexcan2: flexcan2grp {
		fsl,pins = <
			MX6SX_PAD_QSPI1B_SS1_B__CAN2_RX 0x1b020
			MX6SX_PAD_QSPI1A_DQS__CAN2_TX	0x1b020
		>;
	};

281 282 283 284 285 286 287
	pinctrl_i2c2: i2c2grp {
		fsl,pins = <
			MX6SX_PAD_GPIO1_IO03__I2C2_SDA          0x4001b8b1
			MX6SX_PAD_GPIO1_IO02__I2C2_SCL          0x4001b8b1
		>;
	};

288 289 290 291 292 293 294
	pinctrl_i2c3: i2c3grp {
		fsl,pins = <
			MX6SX_PAD_KEY_ROW4__I2C3_SDA            0x4001b8b1
			MX6SX_PAD_KEY_COL4__I2C3_SCL            0x4001b8b1
		>;
	};

295 296 297 298 299 300
	pinctrl_led: ledgrp {
		fsl,pins = <
			MX6SX_PAD_CSI_PIXCLK__GPIO1_IO_24 0x17059
		>;
	};

301 302 303 304 305 306
	pinctrl_spdif: spdifgrp {
		fsl,pins = <
			MX6SX_PAD_ENET2_COL__SPDIF_IN           0x1b0b0
		>;
	};

307 308
	pinctrl_uart1: uart1grp {
		fsl,pins = <
309 310
			MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX		0x1b0b1
			MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX		0x1b0b1
311 312
		>;
	};
313

314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329
	pinctrl_usdhc3: usdhc3grp {
		fsl,pins = <
			MX6SX_PAD_SD3_CMD__USDHC3_CMD		0x17059
			MX6SX_PAD_SD3_CLK__USDHC3_CLK		0x10059
			MX6SX_PAD_SD3_DATA0__USDHC3_DATA0	0x17059
			MX6SX_PAD_SD3_DATA1__USDHC3_DATA1	0x17059
			MX6SX_PAD_SD3_DATA2__USDHC3_DATA2	0x17059
			MX6SX_PAD_SD3_DATA3__USDHC3_DATA3	0x17059
			MX6SX_PAD_SD3_DATA4__USDHC3_DATA4	0x17059
			MX6SX_PAD_SD3_DATA5__USDHC3_DATA5	0x17059
			MX6SX_PAD_SD3_DATA6__USDHC3_DATA6	0x17059
			MX6SX_PAD_SD3_DATA7__USDHC3_DATA7	0x17059
			MX6SX_PAD_KEY_COL0__GPIO2_IO_10		0x17059 /* CD */
			MX6SX_PAD_KEY_ROW0__GPIO2_IO_15		0x17059 /* WP */
		>;
	};
330

331 332 333 334 335 336 337 338 339 340 341 342 343 344
	pinctrl_usdhc3_100mhz: usdhc3grp-100mhz {
		fsl,pins = <
			MX6SX_PAD_SD3_CMD__USDHC3_CMD		0x170b9
			MX6SX_PAD_SD3_CLK__USDHC3_CLK		0x100b9
			MX6SX_PAD_SD3_DATA0__USDHC3_DATA0	0x170b9
			MX6SX_PAD_SD3_DATA1__USDHC3_DATA1	0x170b9
			MX6SX_PAD_SD3_DATA2__USDHC3_DATA2	0x170b9
			MX6SX_PAD_SD3_DATA3__USDHC3_DATA3	0x170b9
			MX6SX_PAD_SD3_DATA4__USDHC3_DATA4	0x170b9
			MX6SX_PAD_SD3_DATA5__USDHC3_DATA5	0x170b9
			MX6SX_PAD_SD3_DATA6__USDHC3_DATA6	0x170b9
			MX6SX_PAD_SD3_DATA7__USDHC3_DATA7	0x170b9
		>;
	};
345

346 347 348 349 350 351 352 353 354 355 356 357 358 359
	pinctrl_usdhc3_200mhz: usdhc3grp-200mhz {
		fsl,pins = <
			MX6SX_PAD_SD3_CMD__USDHC3_CMD		0x170f9
			MX6SX_PAD_SD3_CLK__USDHC3_CLK		0x100f9
			MX6SX_PAD_SD3_DATA0__USDHC3_DATA0	0x170f9
			MX6SX_PAD_SD3_DATA1__USDHC3_DATA1	0x170f9
			MX6SX_PAD_SD3_DATA2__USDHC3_DATA2	0x170f9
			MX6SX_PAD_SD3_DATA3__USDHC3_DATA3	0x170f9
			MX6SX_PAD_SD3_DATA4__USDHC3_DATA4	0x170f9
			MX6SX_PAD_SD3_DATA5__USDHC3_DATA5	0x170f9
			MX6SX_PAD_SD3_DATA6__USDHC3_DATA6	0x170f9
			MX6SX_PAD_SD3_DATA7__USDHC3_DATA7	0x170f9
		>;
	};
360

361 362 363 364 365 366 367 368 369 370 371 372
	pinctrl_usdhc4: usdhc4grp {
		fsl,pins = <
			MX6SX_PAD_SD4_CMD__USDHC4_CMD		0x17059
			MX6SX_PAD_SD4_CLK__USDHC4_CLK		0x10059
			MX6SX_PAD_SD4_DATA0__USDHC4_DATA0	0x17059
			MX6SX_PAD_SD4_DATA1__USDHC4_DATA1	0x17059
			MX6SX_PAD_SD4_DATA2__USDHC4_DATA2	0x17059
			MX6SX_PAD_SD4_DATA3__USDHC4_DATA3	0x17059
			MX6SX_PAD_SD4_DATA7__GPIO6_IO_21	0x17059 /* CD */
			MX6SX_PAD_SD4_DATA6__GPIO6_IO_20	0x17059 /* WP */
		>;
	};
373

374 375 376 377
	pinctrl_vcc_sd3: vccsd3grp {
		fsl,pins = <
			MX6SX_PAD_KEY_COL1__GPIO2_IO_11		0x17059
		>;
378
	};
379 380 381 382 383 384

	pinctrl_wdog: wdoggrp {
		fsl,pins = <
			MX6SX_PAD_GPIO1_IO13__WDOG1_WDOG_ANY	0x30b0
		>;
	};
385
};
386 387 388 389 390 391 392

&i2c2 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c2>;
	status = "okay";

393 394 395 396 397 398 399 400 401 402 403
	cs42888: cs42888@48 {
		compatible = "cirrus,cs42888";
		reg = <0x48>;
		clocks = <&anaclk2 0>;
		clock-names = "mclk";
		VA-supply = <&reg_cs42888>;
		VD-supply = <&reg_cs42888>;
		VLS-supply = <&reg_cs42888>;
		VLC-supply = <&reg_cs42888>;
	};

404 405 406 407 408 409 410 411 412 413
	touchscreen@4 {
		compatible = "eeti,egalax_ts";
		reg = <0x04>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_egalax_int>;
		interrupt-parent = <&gpio6>;
		interrupts = <22 IRQ_TYPE_EDGE_FALLING>;
		wakeup-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>;
	};

414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514
	pfuze100: pmic@8 {
		compatible = "fsl,pfuze100";
		reg = <0x08>;

		regulators {
			sw1a_reg: sw1ab {
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1875000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <6250>;
			};

			sw1c_reg: sw1c {
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1875000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <6250>;
			};

			sw2_reg: sw2 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw3a_reg: sw3a {
				regulator-min-microvolt = <400000>;
				regulator-max-microvolt = <1975000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw3b_reg: sw3b {
				regulator-min-microvolt = <400000>;
				regulator-max-microvolt = <1975000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw4_reg: sw4 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			swbst_reg: swbst {
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5150000>;
			};

			snvs_reg: vsnvs {
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <3000000>;
				regulator-boot-on;
				regulator-always-on;
			};

			vref_reg: vrefddr {
				regulator-boot-on;
				regulator-always-on;
			};

			vgen1_reg: vgen1 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
				regulator-always-on;
			};

			vgen2_reg: vgen2 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
			};

			vgen3_reg: vgen3 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vgen4_reg: vgen4 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vgen5_reg: vgen5 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vgen6_reg: vgen6 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};
		};
	};
515 516 517 518 519 520 521

	max7322: gpio@68 {
		compatible = "maxim,max7322";
		reg = <0x68>;
		gpio-controller;
		#gpio-cells = <2>;
	};
522
};
523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543

&i2c3 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c3>;
	status = "okay";

	max7310_a: gpio@30 {
		compatible = "maxim,max7310";
		reg = <0x30>;
		gpio-controller;
		#gpio-cells = <2>;
	};

	max7310_b: gpio@32 {
		compatible = "maxim,max7310";
		reg = <0x32>;
		gpio-controller;
		#gpio-cells = <2>;
	};
};
544

545 546 547 548 549 550 551 552
&spdif {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spdif>;
	assigned-clocks = <&clks IMX6SX_CLK_SPDIF_PODF>;
	assigned-clock-rates = <24576000>;
	status = "okay";
};

553 554 555 556 557
&wdog1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_wdog>;
	fsl,ext-reset-output;
};