Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.6.
   1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
   2/*
   3 * Copyright 2019 NXP
   4 */
   5
   6/dts-v1/;
   7
   8#include <dt-bindings/phy/phy-imx8-pcie.h>
   9#include "imx8mp.dtsi"
  10
  11/ {
  12	model = "NXP i.MX8MPlus EVK board";
  13	compatible = "fsl,imx8mp-evk", "fsl,imx8mp";
  14
  15	chosen {
  16		stdout-path = &uart2;
  17	};
  18
  19	backlight_lvds: backlight-lvds {
  20		compatible = "pwm-backlight";
  21		pwms = <&pwm2 0 100000 0>;
  22		brightness-levels = <0 100>;
  23		num-interpolated-steps = <100>;
  24		default-brightness-level = <100>;
  25		power-supply = <&reg_per_12v>;
  26		status = "disabled";
  27	};
  28
  29	hdmi-connector {
  30		compatible = "hdmi-connector";
  31		label = "hdmi";
  32		type = "a";
  33
  34		port {
  35			hdmi_connector_in: endpoint {
  36				remote-endpoint = <&adv7535_out>;
  37			};
  38		};
  39	};
  40
  41	gpio-leds {
  42		compatible = "gpio-leds";
  43		pinctrl-names = "default";
  44		pinctrl-0 = <&pinctrl_gpio_led>;
  45
  46		status {
  47			label = "yellow:status";
  48			gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
  49			default-state = "on";
  50		};
  51	};
  52
  53	memory@40000000 {
  54		device_type = "memory";
  55		reg = <0x0 0x40000000 0 0xc0000000>,
  56		      <0x1 0x00000000 0 0xc0000000>;
  57	};
  58
  59	native-hdmi-connector {
  60		compatible = "hdmi-connector";
  61		label = "HDMI OUT";
  62		type = "a";
  63
  64		port {
  65			hdmi_in: endpoint {
  66				remote-endpoint = <&hdmi_tx_out>;
  67			};
  68		};
  69	};
  70
  71	pcie0_refclk: pcie0-refclk {
  72		compatible = "fixed-clock";
  73		#clock-cells = <0>;
  74		clock-frequency = <100000000>;
  75	};
  76
  77	reg_audio_pwr: regulator-audio-pwr {
  78		compatible = "regulator-fixed";
  79		pinctrl-names = "default";
  80		pinctrl-0 = <&pinctrl_audio_pwr_reg>;
  81		regulator-name = "audio-pwr";
  82		regulator-min-microvolt = <3300000>;
  83		regulator-max-microvolt = <3300000>;
  84		gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
  85		enable-active-high;
  86	};
  87
  88	reg_can1_stby: regulator-can1-stby {
  89		compatible = "regulator-fixed";
  90		regulator-name = "can1-stby";
  91		pinctrl-names = "default";
  92		pinctrl-0 = <&pinctrl_flexcan1_reg>;
  93		regulator-min-microvolt = <3300000>;
  94		regulator-max-microvolt = <3300000>;
  95		gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
  96		enable-active-high;
  97	};
  98
  99	reg_can2_stby: regulator-can2-stby {
 100		compatible = "regulator-fixed";
 101		regulator-name = "can2-stby";
 102		pinctrl-names = "default";
 103		pinctrl-0 = <&pinctrl_flexcan2_reg>;
 104		regulator-min-microvolt = <3300000>;
 105		regulator-max-microvolt = <3300000>;
 106		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
 107		enable-active-high;
 108	};
 109
 110	reg_pcie0: regulator-pcie {
 111		compatible = "regulator-fixed";
 112		pinctrl-names = "default";
 113		pinctrl-0 = <&pinctrl_pcie0_reg>;
 114		regulator-name = "MPCIE_3V3";
 115		regulator-min-microvolt = <3300000>;
 116		regulator-max-microvolt = <3300000>;
 117		gpio = <&gpio2 6 GPIO_ACTIVE_HIGH>;
 118		enable-active-high;
 119	};
 120
 121	reg_per_12v: regulator-per-12v {
 122		compatible = "regulator-fixed";
 123		regulator-name = "PER_12V";
 124		regulator-min-microvolt = <12000000>;
 125		regulator-max-microvolt = <12000000>;
 126		gpio = <&pca6416 1 GPIO_ACTIVE_HIGH>;
 127		enable-active-high;
 128	};
 129
 130	reg_usdhc2_vmmc: regulator-usdhc2 {
 131		compatible = "regulator-fixed";
 132		pinctrl-names = "default";
 133		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
 134		regulator-name = "VSD_3V3";
 135		regulator-min-microvolt = <3300000>;
 136		regulator-max-microvolt = <3300000>;
 137		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
 138		enable-active-high;
 139	};
 140
 141	reg_vext_3v3: regulator-vext-3v3 {
 142		compatible = "regulator-fixed";
 143		regulator-name = "VEXT_3V3";
 144		regulator-min-microvolt = <3300000>;
 145		regulator-max-microvolt = <3300000>;
 146	};
 147
 148	audio_codec_bt_sco: audio-codec-bt-sco {
 149		compatible = "linux,bt-sco";
 150		#sound-dai-cells = <1>;
 151	};
 152
 153	sound {
 154		compatible = "simple-audio-card";
 155		simple-audio-card,name = "wm8960-audio";
 156		simple-audio-card,format = "i2s";
 157		simple-audio-card,frame-master = <&cpudai>;
 158		simple-audio-card,bitclock-master = <&cpudai>;
 159		simple-audio-card,widgets =
 160			"Headphone", "Headphone Jack",
 161			"Speaker", "External Speaker",
 162			"Microphone", "Mic Jack";
 163		simple-audio-card,routing =
 164			"Headphone Jack", "HP_L",
 165			"Headphone Jack", "HP_R",
 166			"External Speaker", "SPK_LP",
 167			"External Speaker", "SPK_LN",
 168			"External Speaker", "SPK_RP",
 169			"External Speaker", "SPK_RN",
 170			"LINPUT1", "Mic Jack",
 171			"LINPUT3", "Mic Jack",
 172			"Mic Jack", "MICB";
 173
 174		cpudai: simple-audio-card,cpu {
 175			sound-dai = <&sai3>;
 176		};
 177
 178		simple-audio-card,codec {
 179			sound-dai = <&wm8960>;
 180		};
 181
 182	};
 183
 184	sound-bt-sco {
 185		compatible = "simple-audio-card";
 186		simple-audio-card,name = "bt-sco-audio";
 187		simple-audio-card,format = "dsp_a";
 188		simple-audio-card,bitclock-inversion;
 189		simple-audio-card,frame-master = <&btcpu>;
 190		simple-audio-card,bitclock-master = <&btcpu>;
 191
 192		btcpu: simple-audio-card,cpu {
 193			sound-dai = <&sai2>;
 194			dai-tdm-slot-num = <2>;
 195			dai-tdm-slot-width = <16>;
 196		};
 197
 198		simple-audio-card,codec {
 199			sound-dai = <&audio_codec_bt_sco 1>;
 200		};
 201	};
 202
 203	sound-hdmi {
 204		compatible = "fsl,imx-audio-hdmi";
 205		model = "audio-hdmi";
 206		audio-cpu = <&aud2htx>;
 207		hdmi-out;
 208	};
 209
 210	sound-micfil {
 211		compatible = "fsl,imx-audio-card";
 212		model = "micfil-audio";
 213
 214		pri-dai-link {
 215			link-name = "micfil hifi";
 216			format = "i2s";
 217
 218			cpu {
 219				sound-dai = <&micfil>;
 220			};
 221		};
 222	};
 223
 224	sound-xcvr {
 225		compatible = "fsl,imx-audio-card";
 226		model = "imx-audio-xcvr";
 227
 228		pri-dai-link {
 229			link-name = "XCVR PCM";
 230
 231			cpu {
 232				sound-dai = <&xcvr>;
 233			};
 234		};
 235	};
 236
 237	reserved-memory {
 238		#address-cells = <2>;
 239		#size-cells = <2>;
 240		ranges;
 241
 242		dsp_vdev0vring0: vdev0vring0@942f0000 {
 243			reg = <0 0x942f0000 0 0x8000>;
 244			no-map;
 245		};
 246
 247		dsp_vdev0vring1: vdev0vring1@942f8000 {
 248			reg = <0 0x942f8000 0 0x8000>;
 249			no-map;
 250		};
 251
 252		dsp_vdev0buffer: vdev0buffer@94300000 {
 253			compatible = "shared-dma-pool";
 254			reg = <0 0x94300000 0 0x100000>;
 255			no-map;
 256		};
 257	};
 258};
 259
 260&flexspi {
 261	pinctrl-names = "default";
 262	pinctrl-0 = <&pinctrl_flexspi0>;
 263	status = "okay";
 264
 265	flash@0 {
 266		compatible = "jedec,spi-nor";
 267		reg = <0>;
 268		spi-max-frequency = <80000000>;
 269		spi-tx-bus-width = <1>;
 270		spi-rx-bus-width = <4>;
 271	};
 272};
 273
 274&A53_0 {
 275	cpu-supply = <&reg_arm>;
 276};
 277
 278&A53_1 {
 279	cpu-supply = <&reg_arm>;
 280};
 281
 282&A53_2 {
 283	cpu-supply = <&reg_arm>;
 284};
 285
 286&A53_3 {
 287	cpu-supply = <&reg_arm>;
 288};
 289
 290&aud2htx {
 291	status = "okay";
 292};
 293
 294&eqos {
 295	pinctrl-names = "default";
 296	pinctrl-0 = <&pinctrl_eqos>;
 297	phy-mode = "rgmii-id";
 298	phy-handle = <&ethphy0>;
 299	snps,force_thresh_dma_mode;
 300	snps,mtl-tx-config = <&mtl_tx_setup>;
 301	snps,mtl-rx-config = <&mtl_rx_setup>;
 302	status = "okay";
 303
 304	mdio {
 305		compatible = "snps,dwmac-mdio";
 306		#address-cells = <1>;
 307		#size-cells = <0>;
 308
 309		ethphy0: ethernet-phy@1 {
 310			compatible = "ethernet-phy-ieee802.3-c22";
 311			reg = <1>;
 312			eee-broken-1000t;
 313			reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
 314			reset-assert-us = <10000>;
 315			reset-deassert-us = <80000>;
 316			realtek,clkout-disable;
 317		};
 318	};
 319
 320	mtl_tx_setup: tx-queues-config {
 321		snps,tx-queues-to-use = <5>;
 322
 323		queue0 {
 324			snps,dcb-algorithm;
 325			snps,priority = <0x1>;
 326		};
 327
 328		queue1 {
 329			snps,dcb-algorithm;
 330			snps,priority = <0x2>;
 331		};
 332
 333		queue2 {
 334			snps,dcb-algorithm;
 335			snps,priority = <0x4>;
 336		};
 337
 338		queue3 {
 339			snps,dcb-algorithm;
 340			snps,priority = <0x8>;
 341		};
 342
 343		queue4 {
 344			snps,dcb-algorithm;
 345			snps,priority = <0xf0>;
 346		};
 347	};
 348
 349	mtl_rx_setup: rx-queues-config {
 350		snps,rx-queues-to-use = <5>;
 351		snps,rx-sched-sp;
 352
 353		queue0 {
 354			snps,dcb-algorithm;
 355			snps,priority = <0x1>;
 356			snps,map-to-dma-channel = <0>;
 357		};
 358
 359		queue1 {
 360			snps,dcb-algorithm;
 361			snps,priority = <0x2>;
 362			snps,map-to-dma-channel = <1>;
 363		};
 364
 365		queue2 {
 366			snps,dcb-algorithm;
 367			snps,priority = <0x4>;
 368			snps,map-to-dma-channel = <2>;
 369		};
 370
 371		queue3 {
 372			snps,dcb-algorithm;
 373			snps,priority = <0x8>;
 374			snps,map-to-dma-channel = <3>;
 375		};
 376
 377		queue4 {
 378			snps,dcb-algorithm;
 379			snps,priority = <0xf0>;
 380			snps,map-to-dma-channel = <4>;
 381		};
 382	};
 383};
 384
 385&fec {
 386	pinctrl-names = "default";
 387	pinctrl-0 = <&pinctrl_fec>;
 388	phy-mode = "rgmii-id";
 389	phy-handle = <&ethphy1>;
 390	fsl,magic-packet;
 391	status = "okay";
 392
 393	mdio {
 394		#address-cells = <1>;
 395		#size-cells = <0>;
 396
 397		ethphy1: ethernet-phy@1 {
 398			compatible = "ethernet-phy-ieee802.3-c22";
 399			reg = <1>;
 400			eee-broken-1000t;
 401			reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
 402			reset-assert-us = <10000>;
 403			reset-deassert-us = <80000>;
 404			realtek,clkout-disable;
 405		};
 406	};
 407};
 408
 409&flexcan1 {
 410	pinctrl-names = "default";
 411	pinctrl-0 = <&pinctrl_flexcan1>;
 412	xceiver-supply = <&reg_can1_stby>;
 413	status = "okay";
 414};
 415
 416&flexcan2 {
 417	pinctrl-names = "default";
 418	pinctrl-0 = <&pinctrl_flexcan2>;
 419	xceiver-supply = <&reg_can2_stby>;
 420	status = "disabled";/* can2 pin conflict with pdm */
 421};
 422
 423&hdmi_pvi {
 424	status = "okay";
 425};
 426
 427&hdmi_tx {
 428	pinctrl-names = "default";
 429	pinctrl-0 = <&pinctrl_hdmi>;
 430	status = "okay";
 431
 432	ports {
 433		port@1 {
 434			hdmi_tx_out: endpoint {
 435				remote-endpoint = <&hdmi_in>;
 436			};
 437		};
 438	};
 439};
 440
 441&hdmi_tx_phy {
 442	status = "okay";
 443};
 444
 445&i2c1 {
 446	clock-frequency = <400000>;
 447	pinctrl-names = "default";
 448	pinctrl-0 = <&pinctrl_i2c1>;
 449	status = "okay";
 450
 451	pmic@25 {
 452		compatible = "nxp,pca9450c";
 453		reg = <0x25>;
 454		pinctrl-names = "default";
 455		pinctrl-0 = <&pinctrl_pmic>;
 456		interrupt-parent = <&gpio1>;
 457		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
 458
 459		regulators {
 460			BUCK1 {
 461				regulator-name = "BUCK1";
 462				regulator-min-microvolt = <720000>;
 463				regulator-max-microvolt = <1000000>;
 464				regulator-boot-on;
 465				regulator-always-on;
 466				regulator-ramp-delay = <3125>;
 467			};
 468
 469			reg_arm: BUCK2 {
 470				regulator-name = "BUCK2";
 471				regulator-min-microvolt = <720000>;
 472				regulator-max-microvolt = <1025000>;
 473				regulator-boot-on;
 474				regulator-always-on;
 475				regulator-ramp-delay = <3125>;
 476				nxp,dvs-run-voltage = <950000>;
 477				nxp,dvs-standby-voltage = <850000>;
 478			};
 479
 480			BUCK4 {
 481				regulator-name = "BUCK4";
 482				regulator-min-microvolt = <3000000>;
 483				regulator-max-microvolt = <3600000>;
 484				regulator-boot-on;
 485				regulator-always-on;
 486			};
 487
 488			reg_buck5: BUCK5 {
 489				regulator-name = "BUCK5";
 490				regulator-min-microvolt = <1650000>;
 491				regulator-max-microvolt = <1950000>;
 492				regulator-boot-on;
 493				regulator-always-on;
 494			};
 495
 496			BUCK6 {
 497				regulator-name = "BUCK6";
 498				regulator-min-microvolt = <1045000>;
 499				regulator-max-microvolt = <1155000>;
 500				regulator-boot-on;
 501				regulator-always-on;
 502			};
 503
 504			LDO1 {
 505				regulator-name = "LDO1";
 506				regulator-min-microvolt = <1650000>;
 507				regulator-max-microvolt = <1950000>;
 508				regulator-boot-on;
 509				regulator-always-on;
 510			};
 511
 512			LDO3 {
 513				regulator-name = "LDO3";
 514				regulator-min-microvolt = <1710000>;
 515				regulator-max-microvolt = <1890000>;
 516				regulator-boot-on;
 517				regulator-always-on;
 518			};
 519
 520			LDO5 {
 521				regulator-name = "LDO5";
 522				regulator-min-microvolt = <1800000>;
 523				regulator-max-microvolt = <3300000>;
 524				regulator-boot-on;
 525				regulator-always-on;
 526			};
 527		};
 528	};
 529};
 530
 531&i2c2 {
 532	clock-frequency = <400000>;
 533	pinctrl-names = "default";
 534	pinctrl-0 = <&pinctrl_i2c2>;
 535	status = "okay";
 536
 537	hdmi@3d {
 538		compatible = "adi,adv7535";
 539		reg = <0x3d>;
 540		interrupt-parent = <&gpio1>;
 541		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
 542		adi,dsi-lanes = <4>;
 543		avdd-supply = <&reg_buck5>;
 544		dvdd-supply = <&reg_buck5>;
 545		pvdd-supply = <&reg_buck5>;
 546		a2vdd-supply = <&reg_buck5>;
 547		v3p3-supply = <&reg_vext_3v3>;
 548		v1p2-supply = <&reg_buck5>;
 549
 550		ports {
 551			#address-cells = <1>;
 552			#size-cells = <0>;
 553
 554			port@0 {
 555				reg = <0>;
 556
 557				adv7535_in: endpoint {
 558					remote-endpoint = <&dsi_out>;
 559				};
 560			};
 561
 562			port@1 {
 563				reg = <1>;
 564
 565				adv7535_out: endpoint {
 566					remote-endpoint = <&hdmi_connector_in>;
 567				};
 568			};
 569
 570		};
 571	};
 572};
 573
 574&i2c3 {
 575	clock-frequency = <400000>;
 576	pinctrl-names = "default";
 577	pinctrl-0 = <&pinctrl_i2c3>;
 578	status = "okay";
 579
 580	wm8960: codec@1a {
 581		compatible = "wlf,wm8960";
 582		reg = <0x1a>;
 583		#sound-dai-cells = <0>;
 584		clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>;
 585		clock-names = "mclk";
 586		wlf,shared-lrclk;
 587		wlf,hp-cfg = <3 2 3>;
 588		wlf,gpio-cfg = <1 3>;
 589		SPKVDD1-supply = <&reg_audio_pwr>;
 590	};
 591
 592	pca6416: gpio@20 {
 593		compatible = "ti,tca6416";
 594		reg = <0x20>;
 595		gpio-controller;
 596		#gpio-cells = <2>;
 597		interrupt-controller;
 598		#interrupt-cells = <2>;
 599		pinctrl-names = "default";
 600		pinctrl-0 = <&pinctrl_pca6416_int>;
 601		interrupt-parent = <&gpio1>;
 602		interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
 603		gpio-line-names = "EXT_PWREN1",
 604			"EXT_PWREN2",
 605			"CAN1/I2C5_SEL",
 606			"PDM/CAN2_SEL",
 607			"FAN_EN",
 608			"PWR_MEAS_IO1",
 609			"PWR_MEAS_IO2",
 610			"EXP_P0_7",
 611			"EXP_P1_0",
 612			"EXP_P1_1",
 613			"EXP_P1_2",
 614			"EXP_P1_3",
 615			"EXP_P1_4",
 616			"EXP_P1_5",
 617			"EXP_P1_6",
 618			"EXP_P1_7";
 619	};
 620};
 621
 622/* I2C on expansion connector J22. */
 623&i2c5 {
 624	clock-frequency = <100000>; /* Lower clock speed for external bus. */
 625	pinctrl-names = "default";
 626	pinctrl-0 = <&pinctrl_i2c5>;
 627	status = "disabled"; /* can1 pins conflict with i2c5 */
 628
 629	/* GPIO 2 of PCA6416 is used to switch between CAN1 and I2C5 functions:
 630	 *     LOW:  CAN1 (default, pull-down)
 631	 *     HIGH: I2C5
 632	 * You need to set it to high to enable I2C5 (for example, add gpio-hog
 633	 * in pca6416 node).
 634	 */
 635};
 636
 637&lcdif1 {
 638	status = "okay";
 639};
 640
 641&lcdif3 {
 642	status = "okay";
 643};
 644
 645&micfil {
 646	#sound-dai-cells = <0>;
 647	pinctrl-names = "default";
 648	pinctrl-0 = <&pinctrl_pdm>;
 649	assigned-clocks = <&clk IMX8MP_CLK_PDM>;
 650	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
 651	assigned-clock-rates = <196608000>;
 652	status = "okay";
 653};
 654
 655&mipi_dsi {
 656	samsung,esc-clock-frequency = <10000000>;
 657	status = "okay";
 658
 659	ports {
 660		port@1 {
 661			reg = <1>;
 662
 663			dsi_out: endpoint {
 664				remote-endpoint = <&adv7535_in>;
 665				data-lanes = <1 2 3 4>;
 666			};
 667		};
 668	};
 669};
 670
 671&pcie_phy {
 672	fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
 673	clocks = <&pcie0_refclk>;
 674	clock-names = "ref";
 675	status = "okay";
 676};
 677
 678&pcie {
 679	pinctrl-names = "default";
 680	pinctrl-0 = <&pinctrl_pcie0>;
 681	reset-gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
 682	vpcie-supply = <&reg_pcie0>;
 683	status = "okay";
 684};
 685
 686&pwm1 {
 687	pinctrl-names = "default";
 688	pinctrl-0 = <&pinctrl_pwm1>;
 689	status = "okay";
 690};
 691
 692&pwm2 {
 693	pinctrl-names = "default";
 694	pinctrl-0 = <&pinctrl_pwm2>;
 695	status = "okay";
 696};
 697
 698&pwm4 {
 699	pinctrl-names = "default";
 700	pinctrl-0 = <&pinctrl_pwm4>;
 701	status = "okay";
 702};
 703
 704&sai2 {
 705	#sound-dai-cells = <0>;
 706	pinctrl-names = "default";
 707	pinctrl-0 = <&pinctrl_sai2>;
 708	assigned-clocks = <&clk IMX8MP_CLK_SAI2>;
 709	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
 710	assigned-clock-rates = <12288000>;
 711	fsl,sai-mclk-direction-output;
 712	status = "okay";
 713};
 714
 715&sai3 {
 716	pinctrl-names = "default";
 717	pinctrl-0 = <&pinctrl_sai3>;
 718	assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
 719	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
 720	assigned-clock-rates = <12288000>;
 721	fsl,sai-mclk-direction-output;
 722	status = "okay";
 723};
 724
 725&snvs_pwrkey {
 726	status = "okay";
 727};
 728
 729&uart1 { /* BT */
 730	pinctrl-names = "default";
 731	pinctrl-0 = <&pinctrl_uart1>;
 732	assigned-clocks = <&clk IMX8MP_CLK_UART1>;
 733	assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
 734	uart-has-rtscts;
 735	status = "okay";
 736};
 737
 738&uart2 {
 739	/* console */
 740	pinctrl-names = "default";
 741	pinctrl-0 = <&pinctrl_uart2>;
 742	status = "okay";
 743};
 744
 745&usb3_phy1 {
 746	status = "okay";
 747};
 748
 749&usb3_1 {
 750	status = "okay";
 751};
 752
 753&usb_dwc3_1 {
 754	pinctrl-names = "default";
 755	pinctrl-0 = <&pinctrl_usb1_vbus>;
 756	dr_mode = "host";
 757	status = "okay";
 758};
 759
 760&uart3 {
 761	pinctrl-names = "default";
 762	pinctrl-0 = <&pinctrl_uart3>;
 763	assigned-clocks = <&clk IMX8MP_CLK_UART3>;
 764	assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
 765	uart-has-rtscts;
 766	status = "okay";
 767};
 768
 769&usdhc2 {
 770	assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
 771	assigned-clock-rates = <400000000>;
 772	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 773	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
 774	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
 775	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
 776	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
 777	vmmc-supply = <&reg_usdhc2_vmmc>;
 778	bus-width = <4>;
 779	status = "okay";
 780};
 781
 782&usdhc3 {
 783	assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
 784	assigned-clock-rates = <400000000>;
 785	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 786	pinctrl-0 = <&pinctrl_usdhc3>;
 787	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
 788	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
 789	bus-width = <8>;
 790	non-removable;
 791	status = "okay";
 792};
 793
 794&wdog1 {
 795	pinctrl-names = "default";
 796	pinctrl-0 = <&pinctrl_wdog>;
 797	fsl,ext-reset-output;
 798	status = "okay";
 799};
 800
 801&xcvr {
 802	#sound-dai-cells = <0>;
 803	status = "okay";
 804};
 805
 806&iomuxc {
 807	pinctrl-names = "default";
 808	pinctrl-0 = <&pinctrl_hog>;
 809
 810	pinctrl_audio_pwr_reg: audiopwrreggrp {
 811		fsl,pins = <
 812			MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29		0xd6
 813		>;
 814	};
 815
 816	pinctrl_eqos: eqosgrp {
 817		fsl,pins = <
 818			MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC				0x2
 819			MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO				0x2
 820			MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0			0x90
 821			MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1			0x90
 822			MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2			0x90
 823			MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3			0x90
 824			MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK	0x90
 825			MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL			0x90
 826			MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0			0x16
 827			MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1			0x16
 828			MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2			0x16
 829			MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3			0x16
 830			MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL			0x16
 831			MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK	0x16
 832			MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22				0x10
 833		>;
 834	};
 835
 836	pinctrl_fec: fecgrp {
 837		fsl,pins = <
 838			MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC		0x2
 839			MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO		0x2
 840			MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0		0x90
 841			MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1		0x90
 842			MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2		0x90
 843			MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3		0x90
 844			MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC		0x90
 845			MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL	0x90
 846			MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0		0x16
 847			MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1		0x16
 848			MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2		0x16
 849			MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3		0x16
 850			MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL	0x16
 851			MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC		0x16
 852			MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02		0x10
 853		>;
 854	};
 855
 856	pinctrl_flexcan1: flexcan1grp {
 857		fsl,pins = <
 858			MX8MP_IOMUXC_SPDIF_RX__CAN1_RX          0x154
 859			MX8MP_IOMUXC_SPDIF_TX__CAN1_TX          0x154
 860		>;
 861	};
 862
 863	pinctrl_flexcan2: flexcan2grp {
 864		fsl,pins = <
 865			MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX         0x154
 866			MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX         0x154
 867		>;
 868	};
 869
 870	pinctrl_flexcan1_reg: flexcan1reggrp {
 871		fsl,pins = <
 872			MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05  0x154   /* CAN1_STBY */
 873		>;
 874	};
 875
 876	pinctrl_flexcan2_reg: flexcan2reggrp {
 877		fsl,pins = <
 878			MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27      0x154   /* CAN2_STBY */
 879		>;
 880	};
 881
 882	pinctrl_flexspi0: flexspi0grp {
 883		fsl,pins = <
 884			MX8MP_IOMUXC_NAND_ALE__FLEXSPI_A_SCLK           0x1c2
 885			MX8MP_IOMUXC_NAND_CE0_B__FLEXSPI_A_SS0_B        0x82
 886			MX8MP_IOMUXC_NAND_DATA00__FLEXSPI_A_DATA00      0x82
 887			MX8MP_IOMUXC_NAND_DATA01__FLEXSPI_A_DATA01      0x82
 888			MX8MP_IOMUXC_NAND_DATA02__FLEXSPI_A_DATA02      0x82
 889			MX8MP_IOMUXC_NAND_DATA03__FLEXSPI_A_DATA03      0x82
 890		>;
 891	};
 892
 893	pinctrl_gpio_led: gpioledgrp {
 894		fsl,pins = <
 895			MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16	0x140
 896		>;
 897	};
 898
 899	pinctrl_hdmi: hdmigrp {
 900		fsl,pins = <
 901			MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL	0x1c2
 902			MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA	0x1c2
 903			MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC		0x10
 904		>;
 905	};
 906
 907	pinctrl_hog: hoggrp {
 908		fsl,pins = <
 909			MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD		0x40000010
 910		>;
 911	};
 912
 913	pinctrl_i2c1: i2c1grp {
 914		fsl,pins = <
 915			MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL		0x400001c2
 916			MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA		0x400001c2
 917		>;
 918	};
 919
 920	pinctrl_i2c2: i2c2grp {
 921		fsl,pins = <
 922			MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL		0x400001c2
 923			MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA		0x400001c2
 924		>;
 925	};
 926
 927	pinctrl_i2c3: i2c3grp {
 928		fsl,pins = <
 929			MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL		0x400001c2
 930			MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA		0x400001c2
 931		>;
 932	};
 933
 934	pinctrl_i2c5: i2c5grp {
 935		fsl,pins = <
 936			MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA         0x400001c2
 937			MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL         0x400001c2
 938		>;
 939	};
 940
 941	pinctrl_pcie0: pcie0grp {
 942		fsl,pins = <
 943			MX8MP_IOMUXC_I2C4_SCL__PCIE_CLKREQ_B	0x60 /* open drain, pull up */
 944			MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07	0x40
 945		>;
 946	};
 947
 948	pinctrl_pcie0_reg: pcie0reggrp {
 949		fsl,pins = <
 950			MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06	0x40
 951		>;
 952	};
 953
 954	pinctrl_pdm: pdmgrp {
 955		fsl,pins = <
 956			MX8MP_IOMUXC_SAI5_RXC__AUDIOMIX_PDM_CLK		0xd6
 957			MX8MP_IOMUXC_SAI5_RXD0__AUDIOMIX_PDM_BIT_STREAM00	0xd6
 958			MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_PDM_BIT_STREAM01	0xd6
 959			MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_PDM_BIT_STREAM02	0xd6
 960			MX8MP_IOMUXC_SAI5_RXD3__AUDIOMIX_PDM_BIT_STREAM03	0xd6
 961		>;
 962	};
 963
 964	pinctrl_pmic: pmicgrp {
 965		fsl,pins = <
 966			MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03	0x000001c0
 967		>;
 968	};
 969
 970	pinctrl_pca6416_int: pca6416_int_grp {
 971		fsl,pins = <
 972			MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12	0x146 /* Input pull-up. */
 973		>;
 974	};
 975
 976	pinctrl_pwm1: pwm1grp {
 977		fsl,pins = <
 978			MX8MP_IOMUXC_GPIO1_IO01__PWM1_OUT	0x116
 979		>;
 980	};
 981
 982	pinctrl_pwm2: pwm2grp {
 983		fsl,pins = <
 984			MX8MP_IOMUXC_GPIO1_IO11__PWM2_OUT	0x116
 985		>;
 986	};
 987
 988	pinctrl_pwm4: pwm4grp {
 989		fsl,pins = <
 990			MX8MP_IOMUXC_SAI5_RXFS__PWM4_OUT	0x116
 991		>;
 992	};
 993
 994	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
 995		fsl,pins = <
 996			MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19	0x40
 997		>;
 998	};
 999
1000	pinctrl_uart1: uart1grp {
1001		fsl,pins = <
1002			MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX	0x140
1003			MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX	0x140
1004			MX8MP_IOMUXC_UART3_RXD__UART1_DCE_CTS	0x140
1005			MX8MP_IOMUXC_UART3_TXD__UART1_DCE_RTS	0x140
1006		>;
1007	};
1008
1009	pinctrl_sai2: sai2grp {
1010		fsl,pins = <
1011			MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK	0xd6
1012			MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC	0xd6
1013			MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00	0xd6
1014			MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI2_RX_DATA00	0xd6
1015		>;
1016	};
1017
1018	pinctrl_sai3: sai3grp {
1019		fsl,pins = <
1020			MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC	0xd6
1021			MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK	0xd6
1022			MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00	0xd6
1023			MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00	0xd6
1024			MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK	0xd6
1025		>;
1026	};
1027
1028	pinctrl_uart2: uart2grp {
1029		fsl,pins = <
1030			MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX	0x140
1031			MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX	0x140
1032		>;
1033	};
1034
1035	pinctrl_usb1_vbus: usb1grp {
1036		fsl,pins = <
1037			MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR	0x10
1038		>;
1039	};
1040
1041	pinctrl_uart3: uart3grp {
1042		fsl,pins = <
1043			MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX		0x140
1044			MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX		0x140
1045			MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS		0x140
1046			MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS		0x140
1047		>;
1048	};
1049
1050	pinctrl_usdhc2: usdhc2grp {
1051		fsl,pins = <
1052			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x190
1053			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d0
1054			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d0
1055			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d0
1056			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d0
1057			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d0
1058			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT	0xc0
1059		>;
1060	};
1061
1062	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
1063		fsl,pins = <
1064			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x194
1065			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d4
1066			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d4
1067			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d4
1068			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d4
1069			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d4
1070			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
1071		>;
1072	};
1073
1074	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
1075		fsl,pins = <
1076			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x196
1077			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d6
1078			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d6
1079			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d6
1080			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d6
1081			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d6
1082			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
1083		>;
1084	};
1085
1086	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
1087		fsl,pins = <
1088			MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12	0x1c4
1089		>;
1090	};
1091
1092	pinctrl_usdhc3: usdhc3grp {
1093		fsl,pins = <
1094			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK	0x190
1095			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD	0x1d0
1096			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d0
1097			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d0
1098			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d0
1099			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d0
1100			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d0
1101			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d0
1102			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d0
1103			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7	0x1d0
1104			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x190
1105		>;
1106	};
1107
1108	pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
1109		fsl,pins = <
1110			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK	0x194
1111			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD	0x1d4
1112			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d4
1113			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d4
1114			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d4
1115			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d4
1116			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d4
1117			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d4
1118			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d4
1119			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7	0x1d4
1120			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x194
1121		>;
1122	};
1123
1124	pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
1125		fsl,pins = <
1126			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK	0x196
1127			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD	0x1d6
1128			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d6
1129			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d6
1130			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d6
1131			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d6
1132			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d6
1133			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d6
1134			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d6
1135			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7	0x1d6
1136			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x196
1137		>;
1138	};
1139
1140	pinctrl_wdog: wdoggrp {
1141		fsl,pins = <
1142			MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B	0x166
1143		>;
1144	};
1145};