/*
 * Copyright 2018-2019 NXP
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

/dts-v1/;

/*
 * At current stage, M41 is not ready to communicate with XEN, so we
 * we need a way to tell XEN uboot is running or linux is running.
 * XEN will check the contents of this area.
 * So reserve a page at the beginning of GUEST_RAM0_BASE to avoid Linux
 * touch this area.
 */
/memreserve/ 0x80000000 0x1000;

#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/imx8qm-clock.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/soc/imx_rsrc.h>
#include <dt-bindings/soc/imx8_hsio.h>
#include <dt-bindings/soc/imx8_pd.h>
#include <dt-bindings/pinctrl/pads-imx8qm.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/thermal/thermal.h>

/ {
	model = "Freescale i.MX8QM DOMU";
	compatible = "fsl,imx8qm-mek", "fsl,imx8qm", "xen,xenvm-4.10", "xen,xenvm";
	interrupt-parent = <&gic>;
	#address-cells = <0x2>;
	#size-cells = <0x2>;

	/delete-node/ aliases;

	aliases {
		mmc0 = &usdhc1;
		dpu1 = &dpu2;
		ldb1 = &ldb2;
		serial1 = &lpuart1;
		isi0 = &isi_0;
		isi1 = &isi_1;
		isi2 = &isi_2;
		isi3 = &isi_3;
		csi0 = &mipi_csi_0;
		i2c1 = &i2c_rpbus_1;
	};

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

		cpu@0 {
			device_type = "cpu";
			compatible = "arm,armv8";
			enable-method = "psci";
			reg = <0x0 0x0>;
		};

		cpu@1 {
			device_type = "cpu";
			compatible = "arm,armv8";
			enable-method = "psci";
			reg = <0x0 0x1>;
		};

		cpu@2 {
			device_type = "cpu";
			compatible = "arm,armv8";
			enable-method = "psci";
			reg = <0x0 0x2>;
		};

		cpu@3 {
			device_type = "cpu";
			compatible = "arm,armv8";
			enable-method = "psci";
			reg = <0x0 0x3>;
		};
	};

	psci {
		compatible = "arm,psci-1.0";
		method = "hvc";
	};

	memory@80000000 {
		device_type = "memory";
		/* Will be updated by U-Boot or XEN TOOL */
		reg = <0x00000000 0x80000000 0 0x80000000>;
	};

	/*
	 * The reserved memory will be used when using U-Boot loading android
	 * image. For booting kernel using xl tool, pass args:
	 * cma=960M@2400M-3584M
	 * For the rpmsg_reserved area, need xl tool to create for non-android.
	 */
	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;
		passthrough;

		/*
		 * reserved-memory layout
		 * 0x8800_0000 ~ 0x8FFF_FFFF is reserved for M4
		 * Shouldn't be used at A core and Linux side.
		 *
		 */

		decoder_boot: decoder_boot@0x84000000 {
			no-map;
			reg = <0 0x84000000 0 0x2000000>;
		};
		encoder_boot: encoder_boot@0x86000000 {
			no-map;
			reg = <0 0x86000000 0 0x400000>;
		};
		/*
		 * CM40 rpmsg memory is still for Dom0, the domu.cfg
		 * not map 0x90000000 - 0x90100000 to DomU.
		 */
		rpmsg_reserved: rpmsg@0x90000000 {
			no-map;
			reg = <0 0x90000000 0 0x400000>;
		};
		rpmsg_dma_reserved:rpmsg_dma@0x90400000 {
			compatible = "shared-dma-pool";
			no-map;
			reg = <0 0x90400000 0 0x1C00000>;
		};
		decoder_rpc: decoder_rpc@0x92000000 {
			no-map;
			reg = <0 0x92000000 0 0x200000>;
		};
		encoder_rpc: encoder_rpc@0x92200000 {
			no-map;
			reg = <0 0x92200000 0 0x200000>;
		};
		dsp_reserved: dsp@0x92400000 {
			no-map;
			reg = <0 0x92400000 0 0x2000000>;
		};
		encoder_reserved: encoder_reserved@0x94400000 {
			no-map;
			reg = <0 0x94400000 0 0x800000>;
		};

		/* global autoconfigured region for contiguous allocations */
		linux,cma {
			compatible = "shared-dma-pool";
			reusable;
			size = <0 0x3c000000>;
			alloc-ranges = <0 0x96000000 0 0x3c000000>;
			linux,cma-default;
		};
	};

	gic: interrupt-controller@3001000 {
		compatible = "arm,gic-v3";
		#interrupt-cells = <3>;
		#address-cells = <0x0>;
		interrupt-controller;
		redistributor-stride = <0x20000>;
		#redistributor-regions = <0x1>;
		reg = <0x0 0x3001000 0 0x10000>, /* GIC Dist */
		      <0x0 0x3020000 0 0x1000000>; /* GICR */
		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
		interrupt-parent = <&gic>;
		linux,phandle = <0xfde8>;
		phandle = <0xfde8>;
	};

	timer {
		compatible = "arm,armv8-timer";
		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
		interrupt-parent = <&gic>;
		clock-frequency = <8000000>;
	};

	hypervisor {
		compatible = "xen,xen-4.11", "xen,xen";
		reg = <0x0 0x38000000 0x0 0x1000000>;
		interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
		interrupt-parent = <&gic>;
	};

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

		clk0: clock@0 {
		        compatible = "fixed-clock";
		        reg = <0>;
		        #clock-cells = <0>;
		        clock-frequency = <24000000>;
		};
	};

	rtc0: rtc@23000000 {
		compatible = "arm,pl031", "arm,primecell";
		reg = <0x0 0x23000000 0x0 0x1000>;
		interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&clk0>;
		clock-names = "apb_pclk";
	};

	lvds_backlight1: lvds_backlight@1 {
		compatible = "pwm-backlight";
		pwms = <&lvds1_pwm 0 100000 0>;

		brightness-levels = < 0  1  2  3  4  5  6  7  8  9
				     10 11 12 13 14 15 16 17 18 19
				     20 21 22 23 24 25 26 27 28 29
				     30 31 32 33 34 35 36 37 38 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 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
				    100>;
		default-brightness-level = <80>;
	};

	passthrough {
		compatible = "simple-bus";
		ranges;
		#address-cells = <2>;
		#size-cells = <2>;

		firmware {
			android {
				compatible = "android,firmware";
				fstab {
					compatible = "android,fstab";
					vendor {
						compatible = "android,vendor";
						/* emmc node which used if androidboot.storage_type=emmc */
						dev_emmc = "/dev/block/platform/passthrough/5b010000.usdhc/by-name/vendor";
						type = "ext4";
						mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
						fsmgr_flags = "wait,slotselect,avb";
					};
				};

				vbmeta {
					/*we need use FirstStageMountVBootV2 if we enable avb*/
					compatible = "android,vbmeta";
					/*parts means the partition witch can be mount in first stage*/
					parts = "vbmeta,boot,system,vendor";
				};
			};
		};

		mu_m0: mu_m0@2d000000 {
			compatible = "fsl,imx8-mu0-vpu-m0";
			reg = <0x0 0x2d000000 0x0 0x20000>;
			interrupts = <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>;
			fsl,vpu_ap_mu_id = <16>;
			status = "okay";
		};

		mu1_m0: mu1_m0@2d020000 {
			compatible = "fsl,imx8-mu1-vpu-m0";
			reg = <0x0 0x2d020000 0x0 0x20000>;
			interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>;
			fsl,vpu_ap_mu_id = <17>;
			status = "okay";
		};
		mu2_m0: mu2_m0@2d040000 {
			compatible = "fsl,imx8-mu2-vpu-m0";
			reg = <0x0 0x2d040000 0x0 0x20000>;
			interrupts = <GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>;
			fsl,vpu_ap_mu_id = <18>;
			status = "okay";
		};

		mu13: mu13@5d280000 {
			compatible = "fsl,imx8-mu-dsp";
			reg = <0x0 0x5d280000 0x0 0x10000>;
			interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
			fsl,dsp_ap_mu_id = <13>;
			status = "okay";
		};


		vpu_decoder: vpu_decoder@2c000000 {
			compatible = "nxp,imx8qm-b0-vpudec", "nxp,imx8qxp-b0-vpudec";
			boot-region = <&decoder_boot>;
			rpc-region = <&decoder_rpc>;
			reg = <0x0 0x2c000000 0x0 0x1000000>;
			reg-names = "vpu_regs";
			reg-csr = <0x2d080000>;
			power-domains = <&pd_vpu_dec>;
			status = "disabled";
		};

		vpu_encoder: vpu_encoder@2d000000 {
			compatible = "nxp,imx8qm-b0-vpuenc";
			#address-cells = <1>;
			#size-cells = <1>;

			boot-region = <&encoder_boot>;
			rpc-region = <&encoder_rpc>;
			reserved-region = <&encoder_reserved>;
			reg = <0x0 0x2d000000 0x0 0x1000000>,	/*VPU Encoder*/
				<0x0 0x2c000000 0x0 0x2000000>; /*VPU*/
			reg-names = "vpu_regs";
			power-domains = <&pd_vpu_enc>;
			reg-rpc-system = <0x40000000>;

			resolution-max = <1920 1080>;
			fps-max = <120>;
			status = "disabled";

			core0@1020000 {
				compatible = "fsl,imx8-mu1-vpu-m0";
				reg = <0x1020000 0x20000>;
				reg-csr = <0x1090000 0x10000>;
				interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>;
				fsl,vpu_ap_mu_id = <17>;
				fw-buf-size = <0x200000>;
				rpc-buf-size = <0x80000>;
				print-buf-size = <0x80000>;
			};
			core1@1040000 {
				compatible = "fsl,imx8-mu2-vpu-m0";
				reg = <0x1040000 0x20000>;
				reg-csr = <0x10a0000 0x10000>;
				interrupts = <GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>;
				fsl,vpu_ap_mu_id = <18>;
				fw-buf-size = <0x200000>;
				rpc-buf-size = <0x80000>;
				print-buf-size = <0x80000>;
			};
		};

		clk: clk {
			compatible = "fsl,imx8qm-clk";
			#clock-cells = <1>;
			fsl,lpcg_base_offset = <0x00000000 0x00000000>;
		};

		iomuxc: iomuxc {
			compatible = "fsl,imx8qm-iomuxc";
		};

		regulators {
			compatible = "simple-bus";
			#address-cells = <1>;
			#size-cells = <0>;

			epdev_on: fixedregulator@100 {
				compatible = "regulator-fixed";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "epdev_on";
				gpio = <&gpio4 9 0>;
				enable-active-high;
			};

			reg_audio: fixedregulator@2 {
				compatible = "regulator-fixed";
				reg = <2>;
				regulator-name = "cs42888_supply";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};
		};

		#include "fsl-imx8qm-device.dtsi"

		mu2: mu@5d1d0000 {
			compatible = "fsl,imx8-mu";
			reg = <0x0 0x5d1d0000 0x0 0x10000>;
			interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
			fsl,scu_ap_mu_id = <0>;
			status = "okay";
		};

		usb_lpcg {
			reg = <0x0 0x5b270000 0x0 0x10000>;
		};

		edma01: dma-controller1@5a1f0000 {
			compatible = "fsl,imx8qm-edma";
			reg = <0x0 0x5a2e0000 0x0 0x10000>, /* channel14 UART1 rx */
			      <0x0 0x5a2f0000 0x0 0x10000>; /* channel15 UART1 tx */
			#dma-cells = <3>;
			dma-channels = <2>;
			interrupts = <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "edma0-chan14-rx", "edma0-chan15-tx";
			status = "okay";
		};

		edma20: dma-controller@591f0000 {
			compatible = "fsl,imx8qm-adma";
			reg = <0x0 0x59200000 0x0 0x10000>, /* asrc0 */
				<0x0 0x59210000 0x0 0x10000>,
				<0x0 0x59220000 0x0 0x10000>,
				<0x0 0x59230000 0x0 0x10000>,
				<0x0 0x59240000 0x0 0x10000>,
				<0x0 0x59250000 0x0 0x10000>;
			#dma-cells = <3>;
			shared-interrupt;
			dma-channels = <6>;
			interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>, /* asrc0 */
					<GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "edma2-chan0-rx", "edma2-chan1-rx", /* asrc0 */
					"edma2-chan2-rx", "edma2-chan3-tx",
					"edma2-chan4-tx", "edma2-chan5-tx";
			status = "okay";
		};

		edma21: dma-controller@0x59260000 {
			compatible = "fsl,imx8qm-adma";
			reg = <0x0 0x59260000 0x0 0x10000>, /* esai0 rx */
			      <0x0 0x59270000 0x0 0x10000>; /* esai0 tx */
			#dma-cells = <3>;
			shared-interrupt;
			dma-channels = <2>;
			interrupts = <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>, /* esai0 */
				     <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "edma2-chan6-rx", "edma2-chan7-tx"; /* esai0 */
			status = "okay";
		};

		edma24: dma-controller@0x592c0000 {
			compatible = "fsl,imx8qm-adma";
			reg = <0x0 0x592c0000 0x0 0x10000>, /* sai0 rx */
			      <0x0 0x592d0000 0x0 0x10000>; /* sai0 tx */
			#dma-cells = <3>;
			shared-interrupt;
			dma-channels = <2>;
			interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>, /* sai0 */
				     <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "edma2-chan12-rx", "edma2-chan13-tx"; /* sai0 */
			fsl,sc_rsrc_id = <SC_R_DMA_2_CH12>,
					 <SC_R_DMA_2_CH13>;
			status = "okay";
		};

		sound-cs42888 {
			compatible = "fsl,imx8qm-sabreauto-cs42888",
					 "fsl,imx-audio-cs42888";
			model = "imx-cs42888";
			esai-controller = <&esai0>;
			audio-codec = <&cs42888>;
			asrc-controller = <&asrc0>;
			status = "okay";
		};

		xen_i2c0: xen_i2c@0 {
			compatible = "xen,i2c";
			be-adapter = "5a800000.i2c";
			status = "okay";
		};

		xen_i2c1: xen_i2c@1 {
			compatible = "xen,i2c";
			be-adapter = "3b230000.i2c";
			status = "okay";
		};
	};

	/*
	 * vehicle core driver device node which open power domain dc by default
	 */
	vehicle_core: vehicle_core {
		compatible = "nxp,imx-vehicle";
		status = "disabled";
	};

	/*
	 * vehicle M4 driver which can get info from MCU.
	 */
	vehicle_rpmsg_m4: vehicle_rpmsg_m4 {
		compatible = "nxp,imx-vehicle-m4";
		status = "disabled";
	};
};

/delete-node/ &tsens;
/delete-node/ &thermal_zones;
/delete-node/ &rtc;

&display {
	ports = <&dpu2_disp0>, <&dpu2_disp1>;
};

&dpu2_intsteer {
	reg = <0x0 0x57000000 0x0 0x10000>;
	status = "okay";
};

&prg10 {
	reg = <0x0 0x57040000 0x0 0x10000>;
	status = "okay";
};

&prg11 {
	reg = <0x0 0x57050000 0x0 0x10000>;
	status = "okay";
};

&prg12 {
	reg = <0x0 0x57060000 0x0 0x10000>;
	status = "okay";
};

&prg13 {
	reg = <0x0 0x57070000 0x0 0x10000>;
	status = "okay";
};

&prg14 {
	reg = <0x0 0x57080000 0x0 0x10000>;
	status = "okay";
};

&prg15 {
	reg = <0x0 0x57090000 0x0 0x10000>;
	status = "okay";
};

&prg16 {
	reg = <0x0 0x570a0000 0x0 0x10000>;
	status = "okay";
};

&prg17 {
	reg = <0x0 0x570b0000 0x0 0x10000>;
	status = "okay";
};

&prg18 {
	reg = <0x0 0x570c0000 0x0 0x10000>;
	status = "okay";
};

&dpr3_channel1 {
	reg = <0x0 0x570d0000 0x0 0x10000>;
	status = "okay";
};

&dpr3_channel2 {
	reg = <0x0 0x570e0000 0x0 0x10000>;
	status = "okay";
};

&dpr3_channel3 {
	reg = <0x0 0x570f0000 0x0 0x10000>;
	status = "okay";
};

&dpr4_channel1 {
	reg = <0x0 0x57100000 0x0 0x10000>;
	status = "okay";
};

&dpr4_channel2 {
	reg = <0x0 0x57110000 0x0 0x10000>;
	status = "okay";
};

&dpr4_channel3 {
	reg = <0x0 0x57120000 0x0 0x10000>;
	status = "okay";
};

&dpu2 {
	reg = <0x0 0x57180000 0x0 0x40000>;
	status = "okay";

	dpu2_disp0: port@0 {
		dpu2_disp0_mipi_dsi: mipi-dsi-endpoint {
			/delete-property/ remote-endpoint;
		};
	};
	dpu2_disp1: port@1 {
		reg = <1>;

		dpu2_disp1_lvds0: lvds0-endpoint {
			remote-endpoint = <&ldb2_lvds0>;
		};

		dpu2_disp1_lvds1: lvds1-endpoint {
			remote-endpoint = <&ldb2_lvds1>;
		};
	};
};

&pixel_combiner2 {
	status = "okay";
};

/delete-node/ &hdmi;
/delete-node/ &hdmi_rx;
/delete-node/ &irqsteer_dsi0;
/delete-node/ &i2c0_mipi_dsi0;
/delete-node/ &mipi_dsi_csr1;
/delete-node/ &mipi_dsi_phy1;
/delete-node/ &mipi_dsi1;
/delete-node/ &mipi_dsi_bridge1;

&lvds_region2 {
	reg = <0x0 0x57240000 0x0 0x10000>;
	status = "okay";
};

&ldb2_phy {
	reg = <0x0 0x57241000 0x0 0x100>;
	status = "okay";
};

&ldb2 {
	status = "okay";

	lvds-channel@0 {
		fsl,data-mapping = "jeida";
		fsl,data-width = <24>;
		status = "okay";

		port@1 {
			reg = <1>;

			lvds1_out: endpoint {
				remote-endpoint = <&it6263_1_in>;
			};
		};
	};
};

/delete-node/ &lvds0_pwm;
/delete-node/ &dpu1_intsteer;
/delete-node/ &prg1;
/delete-node/ &prg2;
/delete-node/ &prg3;
/delete-node/ &prg4;
/delete-node/ &prg5;
/delete-node/ &prg6;
/delete-node/ &prg7;
/delete-node/ &prg8;
/delete-node/ &prg9;
/delete-node/ &dpr1_channel1;
/delete-node/ &dpr1_channel2;
/delete-node/ &dpr1_channel3;
/delete-node/ &dpr2_channel1;
/delete-node/ &dpr2_channel2;
/delete-node/ &dpr2_channel3;
/delete-node/ &dpu1;
/delete-node/ &pixel_combiner1;

&dsp {
	status = "okay";
};

/delete-node/ &irqsteer_dsi1;
/delete-node/ &i2c0_mipi_dsi1;
/delete-node/ &mipi_dsi_csr2;
/delete-node/ &mipi_dsi_phy2;
/delete-node/ &mipi_dsi2;
/delete-node/ &mipi_dsi_bridge2;
/delete-node/ &lvds_region1;
/delete-node/ &ldb1_phy;
/delete-node/ &ldb1;
/*/delete-node/ &camera;*/
/delete-node/ &adc0;
/delete-node/ &adc1;
/delete-node/ &i2c0;
/delete-node/ &i2c1;
/delete-node/ &i2c2;
/delete-node/ &i2c3;
/delete-node/ &i2c4;
/delete-node/ &i2c0_cm40;
/delete-node/ &i2c0_cm41;
/delete-node/ &irqsteer_hdmi;
/delete-node/ &irqsteer_hdmi_rx;
/delete-node/ &i2c0_hdmi;

&irqsteer_lvds1 {
	reg = <0x0 0x57240000 0x0 0x1000>;
	/delete-property/ interrupt-parent;
	status = "okay";
};

/delete-node/ &flexcan1;
/delete-node/ &flexcan2;
/delete-node/ &flexcan3;

&i2c1_lvds1 {
	reg = <0x0 0x57247000 0x0 0x1000>;
	status = "okay";
};

/delete-node/ &irqsteer_lvds0;
/delete-node/ &i2c1_lvds0;
/*/delete-node/ &irqsteer_csi0;*/
/*/delete-node/ &i2c0_mipi_csi0;*/
/delete-node/ &irqsteer_csi1;
/delete-node/ &i2c0_mipi_csi1;
/delete-node/ &lpspi0;
/delete-node/ &lpspi3;
/delete-node/ &lpuart0;

&lpuart1 {
	/delete-property/ interrupt-parent;
	reg = <0x0 0x5a070000 0 0x1000>;
	dmas = <&edma01 15 0 0>, <&edma01 14 0 1>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_lpuart1>;
	status = "okay";
};

/delete-node/ &lpuart2;
/delete-node/ &lpuart3;
/delete-node/ &lpuart4;
/delete-node/ &emvsim0;
/delete-node/ &edma0;
/delete-node/ &edma2;
/delete-node/ &edma3;
&gpio0 {
	/delete-property/ power-domains;
	status = "disabled";
};
&gpio1 {
	/delete-property/ power-domains;
	status = "okay";
};
&gpio2 {
	/delete-property/ power-domains;
	status = "disabled";
};
&gpio3 {
	/delete-property/ power-domains;
	status = "disabled";
};
&gpio4 {
	/delete-property/ power-domains;
	status = "okay";
};
&gpio5 {
	/delete-property/ power-domains;
	status = "disabled";
};
&gpio6 {
	/delete-property/ power-domains;
	status = "disabled";
};
&gpio7 {
	/delete-property/ power-domains;
	status = "disabled";
};

/*/delete-node/ &gpio0_mipi_csi0;*/
/delete-node/ &gpio0_mipi_csi1;
/delete-node/ &gpt0;
/delete-node/ &pwm0;
/delete-node/ &pwm1;
/delete-node/ &pwm2;
/delete-node/ &pwm3;
/delete-node/ &pwm4;
/delete-node/ &pwm5;
/delete-node/ &pwm6;
/delete-node/ &pwm7;

&gpu_3d1 {
	reg = <0x0 0x54100000 0 0x40000>;
	status = "okay";
};

/delete-node/ &gpu_3d0;

&imx8_gpu_ss {
	/* xen guests have 2GB of low RAM @ 2GB */
	reg = <0x0 0x80000000 0x0 0x80000000>, <0x0 0x0 0x0 0x10000000>;
	reg-names = "phys_baseaddr", "contiguous_mem";
	cores = <&gpu_3d1>;
	status = "okay";
};

/delete-node/ &mlb;

&usdhc1 {
	compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc";
	/*interrupt-parent = <&gic>;*/
	/delete-property/ interrupt-parent;
	reg = <0x0 0x5b010000 0x0 0x10000>;
};

/delete-node/ &usdhc2;
/delete-node/ &usdhc3;
/delete-node/ &fec1;
/delete-node/ &fec2;

&usbmisc1 {
	reg = <0x0 0x5b0d0200 0x0 0x200>;
};

&usbmisc2 {
	status = "okay";
};

&usbphy1 {
	reg = <0x0 0x5b100000 0x0 0x200>;
};

/delete-node/ &usbh1;

&usbotg3 {
	/delete-property/ interrupt-parent;
	dr_mode = "otg";
	extcon = <&typec_ptn5110>;
	status = "okay";
};

&usbphynop1 {
	status = "okay";
};

/delete-node/ &usbphynop2;

&usbotg1 {
	reg = <0x0 0x5b0d0000 0x0 0x200>;
	/delete-property/ interrupt-parent;
};

/delete-node/ &ddr_pmu0;
/delete-node/ &ddr_pmu1;
/delete-node/ &vpu;

&acm {
	status = "okay";
};

&esai0 {
	compatible = "fsl,imx8qm-esai";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_esai0>;
	dmas = <&edma21 6 0 1>, <&edma21 7 0 0>;
	assigned-clocks = <&clk IMX8QM_ACM_ESAI0_MCLK_SEL>,
			<&clk IMX8QM_AUD_PLL0_DIV>,
			<&clk IMX8QM_AUD_ACM_AUD_PLL_CLK0_DIV>,
			<&clk IMX8QM_AUD_ACM_AUD_REC_CLK0_DIV>,
			<&clk IMX8QM_AUD_ESAI_0_EXTAL_IPG>;
	assigned-clock-parents = <&clk IMX8QM_AUD_ACM_AUD_PLL_CLK0_CLK>;
	assigned-clock-rates = <0>, <786432000>, <49152000>, <12288000>, <49152000>;
	status = "okay";
};

/delete-node/ &esai1;
/delete-node/ &spdif0;
/delete-node/ &spdif1;
/delete-node/ &sai1;
&sai0 {
	dmas = <&edma24 12 0 1>, <&edma24 13 0 0>;
};
/delete-node/ &sai2;
/delete-node/ &sai3;
/delete-node/ &sai_hdmi_rx;
/delete-node/ &sai_hdmi_tx;
/delete-node/ &sai6;
/delete-node/ &sai7;
/delete-node/ &amix;

&asrc0 {
	dmas = <&edma20 0 0 0>, <&edma20 1 0 0>, <&edma20 2 0 0>,
	       <&edma20 3 0 1>, <&edma20 4 0 1>, <&edma20 5 0 1>;
	fsl,asrc-rate  = <48000>;
	status = "okay";
};

/delete-node/ &asrc1;
/delete-node/ &mqs;
/delete-node/ &flexspi0;

&dma_cap {
	compatible = "dma-capability";
	only-dma-mask32 = <1>;
};

/delete-node/ &ocotp;
&pciea {
	ext_osc = <1>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pciea>;
	disable-gpio = <&gpio1 13 GPIO_ACTIVE_LOW>;
	reset-gpio = <&gpio4 29 GPIO_ACTIVE_LOW>;
	clkreq-gpio = <&gpio4 27 GPIO_ACTIVE_LOW>;
	epdev_on-supply = <&epdev_on>;
	status = "okay";
};
/delete-node/ &pcieb;
/delete-node/ &sata;

/delete-node/ &intmux_cm40;
/delete-node/ &intmux_cm41;

&rpmsg1{
	/*
	 * 64K for one rpmsg instance:
	 */
	vdev-nums = <2>;
	reg = <0x0 0x90100000 0x0 0x20000>;
	status = "okay";
};

&mu_rpmsg1 {
	reg = <0x0 0x5d210000 0x0 0x10000>;
};

/*/delete-node/ &crypto;*/
/*/delete-node/ &caam_sm;*/
/*/delete-node/ &sc_pwrkey;*/
/delete-node/ &wdog;
/delete-node/ &wu;

&iomuxc {
	imx8qm-mek {
		pinctrl_usdhc1: usdhc1grp {
			fsl,pins = <
				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		0x06000041
				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		0x00000021
				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x00000021
				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x00000021
				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x00000021
				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x00000021
				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x00000021
				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x00000021
				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x00000021
				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x00000021
				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x06000041
				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	0x00000021
			>;
		};

		pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
			fsl,pins = <
				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		0x06000040
				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		0x00000020
				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x00000020
				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x00000020
				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x00000020
				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x00000020
				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x00000020
				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x00000020
				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x00000020
				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x00000020
				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x06000040
				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	0x00000020
			>;
		};

		pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
			fsl,pins = <
				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		0x06000040
				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		0x00000020
				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x00000020
				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x00000020
				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x00000020
				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x00000020
				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x00000020
				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x00000020
				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x00000020
				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x00000020
				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x06000040
				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	0x00000020
			>;
		};

		pinctrl_usbotg1: usbotg1 {
			fsl,pins = <
				SC_P_USB_SS3_TC0_CONN_USB_OTG1_PWR		0x00000021
			>;
		};

		pinctrl_lvds1_lpi2c1: lvds1lpi2c1grp {
			fsl,pins = <
				SC_P_LVDS1_I2C1_SCL_LVDS1_I2C1_SCL	0xc600004c
				SC_P_LVDS1_I2C1_SDA_LVDS1_I2C1_SDA	0xc600004c
			>;
		};

		pinctrl_lvds1_pwm0: lvds1pwm0grp {
			fsl,pins = <
				SC_P_LVDS1_GPIO00_LVDS1_PWM0_OUT	0x00000020
			>;
		};

		pinctrl_lpuart1: lpuart1grp {
			fsl,pins = <
				SC_P_UART1_RX_DMA_UART1_RX		0x06000020
				SC_P_UART1_TX_DMA_UART1_TX		0x06000020
				SC_P_UART1_CTS_B_DMA_UART1_CTS_B	0x06000020
				SC_P_UART1_RTS_B_DMA_UART1_RTS_B	0x06000020
				SC_P_QSPI1A_DQS_LSIO_GPIO4_IO22		0x00000021
			>;
		};

		pinctrl_pciea: pcieagrp{
			fsl,pins = <
				SC_P_PCIE_CTRL0_CLKREQ_B_LSIO_GPIO4_IO27	0x06000021
				SC_P_PCIE_CTRL0_WAKE_B_LSIO_GPIO4_IO28		0x04000021
				SC_P_PCIE_CTRL0_PERST_B_LSIO_GPIO4_IO29		0x06000021
				SC_P_LVDS1_I2C0_SDA_LSIO_GPIO1_IO13		0x06000000
				SC_P_USDHC2_RESET_B_LSIO_GPIO4_IO09		0x06000021
			>;
		};

		pinctrl_typec: typecgrp {
			fsl,pins = <
				SC_P_QSPI1A_SS0_B_LSIO_GPIO4_IO19	0x60
				SC_P_USB_SS3_TC3_LSIO_GPIO4_IO06	0x60
				SC_P_QSPI1A_DATA0_LSIO_GPIO4_IO26	0x00000021
			>;
		};

		pinctrl_isl29023: isl29023grp {
			fsl,pins = <
				SC_P_USDHC2_WP_LSIO_GPIO4_IO11		0x00000021
			>;
		};

		pinctrl_esai0: esai0grp {
			fsl,pins = <
				SC_P_ESAI0_FSR_AUD_ESAI0_FSR            0xc6000040
				SC_P_ESAI0_FST_AUD_ESAI0_FST            0xc6000040
				SC_P_ESAI0_SCKR_AUD_ESAI0_SCKR          0xc6000040
				SC_P_ESAI0_SCKT_AUD_ESAI0_SCKT          0xc6000040
				SC_P_ESAI0_TX0_AUD_ESAI0_TX0            0xc6000040
				SC_P_ESAI0_TX1_AUD_ESAI0_TX1            0xc6000040
				SC_P_ESAI0_TX2_RX3_AUD_ESAI0_TX2_RX3    0xc6000040
				SC_P_ESAI0_TX3_RX2_AUD_ESAI0_TX3_RX2    0xc6000040
				SC_P_ESAI0_TX4_RX1_AUD_ESAI0_TX4_RX1    0xc6000040
				SC_P_ESAI0_TX5_RX0_AUD_ESAI0_TX5_RX0    0xc6000040
			>;
		};
	};
};

&usdhc1 {
	/delete-property/ iommus;
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc1>;
	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
	bus-width = <8>;
	non-removable;
	status = "okay";
};

&usbotg1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usbotg1>;
	srp-disable;
	hnp-disable;
	adp-disable;
	power-polarity-active-high;
	disable-over-current;
	status = "okay";
};

&i2c1_lvds1 {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_lvds1_lpi2c1>;
	clock-frequency = <100000>;
	status = "okay";

	lvds-to-hdmi-bridge@4c {
		compatible = "ite,it6263";
		reg = <0x4c>;

		port {
			it6263_1_in: endpoint {
				clock-lanes = <3>;
				data-lanes = <0 1 2 4>;
				remote-endpoint = <&lvds1_out>;
			};
		};
	};
};

&vpu_decoder {
	core_type = <2>;
	status = "okay";
};

&vpu_encoder {
	status = "okay";
};

&xen_i2c0 {
	#address-cells = <1>;
	#size-cells = <0>;
	clock-frequency = <100000>;
	status = "okay";

	isl29023@44 {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_isl29023>;
		compatible = "fsl,isl29023";
		reg = <0x44>;
		rext = <499>;
		interrupt-parent = <&gpio4>;
		interrupts = <11 2>;
	};

	fxos8700@1e {
		compatible = "fsl,fxos8700";
		reg = <0x1e>;
		interrupt-open-drain;
	};

	fxas2100x@20 {
		compatible = "fsl,fxas2100x";
		reg = <0x20>;
		interrupt-open-drain;
	};

	mpl3115@60 {
		compatible = "fsl,mpl3115";
		reg = <0x60>;
		interrupt-open-drain;
	};

	typec_ptn5110: typec@50 {
		compatible = "usb,tcpci";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_typec>;
		reg = <0x51>;
		interrupt-parent = <&gpio4>;
		interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
		ss-sel-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;
		reset-gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>;
		src-pdos = <0x380190c8 0x3803c0c8>;
		port-type = "drp";
		sink-disable;
		default-role = "source";
		status = "okay";
	};
};

&xen_i2c1 {
	#address-cells = <1>;
	#size-cells = <0>;
	clock-frequency = <100000>;
	status = "okay";

	cs42888: cs42888@48 {
		compatible = "cirrus,cs42888";
		reg = <0x48>;
		clocks = <&clk IMX8QM_AUD_MCLKOUT0>;
		clock-names = "mclk";
		VA-supply = <&reg_audio>;
		VD-supply = <&reg_audio>;
		VLS-supply = <&reg_audio>;
		VLC-supply = <&reg_audio>;
		reset-gpio = <&gpio4 25 1>;
		power-domains = <&pd_mclk_out0>;
		assigned-clocks = <&clk IMX8QM_AUD_PLL0_DIV>,
				<&clk IMX8QM_AUD_ACM_AUD_PLL_CLK0_DIV>,
				<&clk IMX8QM_AUD_ACM_AUD_REC_CLK0_DIV>,
				<&clk IMX8QM_AUD_MCLKOUT0>;
		assigned-clock-rates = <786432000>, <49152000>, <12288000>, <12288000>;
		status = "okay";
	};
};

/* Camera */
/delete-node/ &isi_4;
/delete-node/ &isi_5;
/delete-node/ &isi_6;
/delete-node/ &isi_7;
/delete-node/ &mipi_csi_1;
/delete-node/ &jpegdec;
/delete-node/ &jpegenc;

&gpio0_mipi_csi0 {
	status = "okay";
};

&irqsteer_csi0 {
	status = "okay";
};

&isi_0 {
	status = "okay";
};

&isi_1 {
	status = "okay";
};

&isi_2 {
	status = "okay";
};

&isi_3 {
	status = "okay";
};

&mipi_csi_0 {
	#address-cells = <1>;
	#size-cells = <0>;
	virtual-channel;
	status = "okay";

	/* Camera 0  MIPI CSI-2 (CSIS0) */
	port@0 {
		reg = <0>;
		mipi_csi0_ep: endpoint {
			remote-endpoint = <&max9286_0_ep>;
			data-lanes = <1 2 3 4>;
		};
	};
};

&i2c0_mipi_csi0 {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	clock-frequency = <100000>;
	status = "okay";


	max9286_mipi@6A	 {
		compatible = "maxim,max9286_mipi";
		reg = <0x6A>;
		clocks = <&clk IMX8QM_CLK_DUMMY>;
		clock-names = "capture_mclk";
		mclk = <27000000>;
		mclk_source = <0>;
		pwn-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
		virtual-channel;
		port {
			max9286_0_ep: endpoint {
			remote-endpoint = <&mipi_csi0_ep>;
			data-lanes = <1 2 3 4>;
			};
		};
	};
};

&lvds1_pwm {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_lvds1_pwm0>;
	status = "okay";
};
