/*
 * Copyright 2015-2016 Freescale Semiconductor, Inc.
 * Copyright 2017 NXP
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#include <dt-bindings/clock/imx7ulp-clock.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pwm/pwm.h>
#include "skeleton.dtsi"
#include "imx7ulp-pinfunc.h"

/ {
	interrupt-parent = <&intc>;

	aliases {
		gpio0 = &gpio_ptc;
		gpio1 = &gpio_ptd;
		gpio2 = &gpio_pte;
		gpio3 = &gpio_ptf;
		mmc0 = &usdhc0;
		mmc1 = &usdhc1;
		serial0 = &lpuart4;
		serial1 = &lpuart5;
		serial2 = &lpuart6;
		serial3 = &lpuart7;
		usbphy0 = &usbphy1;
	};

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

		cpu0: cpu@0 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			clock-latency = <61036>; /* two CLK32 periods */
			reg = <0>;

		operating-points = <
			/* KHz	uV */
			720000	1125000
			500210	1025000
		>;
		clocks = <&clks IMX7ULP_CLK_ARM>,
			 <&clks IMX7ULP_CLK_CORE_DIV>,
			 <&clks IMX7ULP_CLK_SYS_SEL>,
			 <&clks IMX7ULP_CLK_HSRUN_SYS_SEL>,
			 <&clks IMX7ULP_CLK_HSRUN_CORE>,
			 <&clks IMX7ULP_CLK_SPLL_PFD0>,
			 <&clks IMX7ULP_CLK_SPLL_SEL>,
			 <&clks IMX7ULP_CLK_FIRC>,
			 <&clks IMX7ULP_CLK_SPLL>;
		clock-names = "arm", "core_div", "sys_sel", "hsrun_sys_sel",
			      "hsrun_core", "spll_pfd0", "spll_sel", "firc",
			      "spll";
		};
	};

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		/* global autoconfigured region for contiguous allocations */
		linux,cma {
			compatible = "shared-dma-pool";
			reusable;
			size = <0xC000000>;
			alignment = <0x2000>;
			linux,cma-default;
		};

		rpmsg_reserved: rpmsg@9FFF0000 {
			no-map;
			reg = <0x9FF00000 0x100000>;
		};

	};

	intc: interrupt-controller@40021000 {
		compatible = "arm,cortex-a7-gic";
		#interrupt-cells = <3>;
		interrupt-controller;
		reg = <0x40021000 0x1000>,
		      <0x40022000 0x100>;
	};

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

		rosc: clock@0 {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <32768>;
			clock-output-names = "rosc";
		};

		sosc: clock@1 {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <24000000>;
			clock-output-names = "sosc";
		};

		sirc: clock@2 {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <16000000>;
			clock-output-names = "sirc";
		};

		firc: clock@3 {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <48000000>;
			clock-output-names = "firc";
		};

		upll: clock@4 {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <480000000>;
			clock-output-names = "upll";
		};

		mpll: clock@5 {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <480000000>;
			clock-output-names = "mpll";
		};
	};

	sram: sram@20000000 {
		compatible = "fsl,lpm-sram";
		reg = <0x1fffc000 0x4000>;
	};

	pmu: pmu@a7 {
		compatible = "arm,cortex-a7-pmu";
	};

	caam_sm: caam-sm@26000000 {
			 compatible = "fsl,imx6q-caam-sm";
			 reg = <0x26000000 0x8000>;
	};

	ahbbridge0: ahb-bridge0@40000000 {
		compatible = "fsl,aips-bus", "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0x40000000 0x800000>;
		ranges;

		edma0: dma-controller@40080000 {
			#dma-cells = <2>;
			compatible = "nxp,imx7ulp-edma";
			reg = <0x40080000 0x2000>,
				<0x40210000 0x1000>;
			dma-channels = <32>;
			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
			clock-names = "dma", "dmamux0";
			clocks = <&clks IMX7ULP_CLK_DMA1>, <&clks IMX7ULP_CLK_DMA_MUX1>;
		};

		mu: mu@40220000 {
			compatible = "fsl,imx7ulp-mu", "fsl,imx6sx-mu";
			reg = <0x40220000 0x1000>;
			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
					<GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
			status = "okay";
		};

		nmi: nmi@40220000 {
			compatible = "fsl,imx7ulp-nmi";
			reg = <0x40220000 0x1000>;
			interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
			status = "okay";
		};

		crypto: caam@40240000 {
			compatible = "fsl,imx7d-caam", "fsl,sec-v4.0";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x40240000 0x40000>;
			ranges = <0 0x40240000 0x40000>;
			clocks = <&clks IMX7ULP_CLK_CAAM>,
				<&clks IMX7ULP_CLK_NIC1_DIV>;
			clock-names = "ipg", "aclk";

			sec_ctrl: ctrl@0 {
				/* CAAM Page 0 only accessible */
				/*	by secure world */
				compatible = "fsl,sec-v4.0-ctrl";
				reg = <0x40240000 0x1000>;
				secure-status = "okay";
				status = "disabled";
			};

			sec_jr0: jr0@1000 {
				compatible = "fsl,sec-v4.0-job-ring";
				reg = <0x1000 0x1000>;
				interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
			};

			sec_jr1: jr1@2000 {
				compatible = "fsl,sec-v4.0-job-ring";
				reg = <0x2000 0x1000>;
				interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
				status = "disabled";
			};
		};

		rpmsg: rpmsg{
			compatible = "fsl,imx7ulp-rpmsg";
			memory-region = <&rpmsg_reserved>;
			status = "disabled";
		};

		pwm0: tpm@40250000 {
			compatible = "nxp,tpm-pwm";
			reg = <0x40250000 0x1000>;
			nxp,pwm-number = <6>;
			assigned-clocks = <&clks IMX7ULP_CLK_LPTPM4>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_SOSC_BUS_CLK>;
			clocks = <&clks IMX7ULP_CLK_LPTPM4>;
			#pwm-cells = <2>;
		};

		tpm5: tpm@40260000 {
			compatible = "fsl,imx7ulp-tpm";
			reg = <0x40260000 0x1000>;
			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_LPTPM5>,
				 <&clks IMX7ULP_CLK_NIC1_BUS_DIV>;
			clock-names = "per", "ipg";
		};

		lpit: 1@40270000 {
			compatible = "fsl,imx-lpit";
			reg = <0x40270000 0x1000>;
			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
			/*    clocks = <&lpclk>;*/
			clocks = <&clks IMX7ULP_CLK_LPIT1>;
			assigned-clock-rates = <48000000>;
			assigned-clocks = <&clks IMX7ULP_CLK_LPIT1>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
		};

		lpi2c4: lpi2c4@402B0000 {
			compatible = "fsl,imx7ulp-lpi2c";
			reg = <0x402B0000 0x10000>;
			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_LPI2C4>,
				 <&clks IMX7ULP_CLK_NIC1_BUS_DIV>;
			clock-names = "per", "ipg";
			assigned-clocks = <&clks IMX7ULP_CLK_LPI2C4>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
			assigned-clock-rates = <48000000>;
			status = "disabled";
		};

		lpi2c5: lpi2c5@402C0000 {
			compatible = "fsl,imx7ulp-lpi2c";
			reg = <0x402C0000 0x10000>;
			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_LPI2C5>,
				 <&clks IMX7ULP_CLK_NIC1_BUS_DIV>;
			clock-names = "per", "ipg";
			assigned-clocks = <&clks IMX7ULP_CLK_LPI2C5>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
			assigned-clock-rates = <48000000>;
		};

		lpspi2: lpspi@40290000 {
			compatible = "fsl,imx7ulp-spi";
			reg = <0x40290000 0x10000>;
			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_LPSPI2>,
				 <&clks IMX7ULP_CLK_DUMMY>;
			clock-names = "per", "ipg";
			assigned-clocks = <&clks IMX7ULP_CLK_LPSPI2>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
			assigned-clock-rates = <48000000>;
			dmas = <&edma0 0 26>, <&edma0 0 25>;
			dma-names = "tx","rx";
			status = "disabled";
		};

		lpspi3: lpspi@402A0000 {
			compatible = "fsl,imx7ulp-spi";
			reg = <0x402A0000 0x10000>;
			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_LPSPI3>,
				 <&clks IMX7ULP_CLK_DUMMY>;
			clock-names = "per", "ipg";
			assigned-clocks = <&clks IMX7ULP_CLK_LPSPI3>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
			assigned-clock-rates = <48000000>;
			dmas = <&edma0 0 28>, <&edma0 0 27>;
			dma-names = "tx","rx";
			status = "disabled";
		};

		lpuart4: serial@402D0000 {
			compatible = "fsl,imx7ulp-lpuart";
			reg = <0x402D0000 0x1000>;
			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_LPUART4>;
			clock-names = "ipg";
			assigned-clocks = <&clks IMX7ULP_CLK_LPUART4>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_SOSC_BUS_CLK>;
			assigned-clock-rates = <24000000>;
			status = "disabled";
		};

		lpuart5: serial@402E0000 {
			compatible = "fsl,imx7ulp-lpuart";
			reg = <0x402E0000 0x1000>;
			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_LPUART5>;
			clock-names = "ipg";
			assigned-clocks = <&clks IMX7ULP_CLK_LPUART5>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
			assigned-clock-rates = <48000000>;
			dmas = <&edma0 0 20>, <&edma0 0 19>;
			dma-names = "tx","rx";
			status = "disabled";
		};

		usbotg1: usb@40330000 {
			compatible = "fsl,imx7ulp-usb", "fsl,imx6ul-usb",
				"fsl,imx27-usb";
			reg = <0x40330000 0x200>;
			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_USB0>;
			fsl,usbphy = <&usbphy1>;
			fsl,usbmisc = <&usbmisc1 0>;
			ahb-burst-config = <0x0>;
			tx-burst-size-dword = <0x8>;
			rx-burst-size-dword = <0x8>;
			status = "disabled";
		};

		usbmisc1: usbmisc@40330200 {
			#index-cells = <1>;
			compatible = "fsl,imx7ulp-usbmisc", "fsl,imx7d-usbmisc",
				"fsl,imx6q-usbmisc";
			reg = <0x40330200 0x200>;
		};

		usbphy1: usbphy@0x40350000 {
			compatible = "fsl,imx7ulp-usbphy",
				"fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
			reg = <0x40350000 0x1000>;
			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_USB_PHY>;
			nxp,sim = <&sim>;
		};

		usdhc0: usdhc@40370000 {
			compatible = "fsl,imx7ulp-usdhc";
			reg = <0x40370000 0x10000>;
			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_NIC1_BUS_DIV>,
				 <&clks IMX7ULP_CLK_NIC1_DIV>,
				 <&clks IMX7ULP_CLK_USDHC0>;
			clock-names ="ipg", "ahb", "per";
			bus-width = <4>;
			assigned-clocks = <&clks IMX7ULP_CLK_APLL_PFD1>, <&clks IMX7ULP_CLK_USDHC0>;
			assigned-clock-parents = <0>, <&clks IMX7ULP_CLK_APLL_PFD1>;
			assigned-clock-rates = <0>, <352800000>;
			fsl,tuning-start-tap = <20>;
			fsl,tuning-step= <2>;
			status = "disabled";
		};

		usdhc1: usdhc@40380000 {
			compatible = "fsl,imx7ulp-usdhc";
			reg = <0x40380000 0x10000>;
			interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_NIC1_BUS_DIV>,
				 <&clks IMX7ULP_CLK_NIC1_DIV>,
				 <&clks IMX7ULP_CLK_USDHC1>;
			clock-names ="ipg", "ahb", "per";
			bus-width = <4>;
			assigned-clocks = <&clks IMX7ULP_CLK_APLL_PFD1>, <&clks IMX7ULP_CLK_USDHC1>;
			assigned-clock-parents = <0>, <&clks IMX7ULP_CLK_APLL_PFD1>;
			assigned-clock-rates = <0>, <176400000>;
			fsl,tuning-start-tap = <20>;
			fsl,tuning-step= <2>;
			status = "disabled";
		};

		wdog1: wdog@403D0000 {
			compatible = "fsl,imx7ulp-wdt";
			reg = <0x403D0000 0x10000>;
			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_WDG1>;
			assigned-clocks = <&clks IMX7ULP_CLK_WDG1>;
			assigned-clocks-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
			/*
			 * As the 1KHz LPO clock rate is not trimed,the actually clock
			 * is about 667Hz, so the init timeout 60s should set 40*1000
			 * in the TOVAL register.
			 */
			timeout-sec = <40>;
		};

		wdog2: wdog@40430000 {
			compatible = "fsl,imx7ulp-wdt";
			reg = <0x40430000 0x10000>;
			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_WDG2>;
			assigned-clocks = <&clks IMX7ULP_CLK_WDG2>;
			assigned-clocks-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
			timeout-sec = <40>;
		};

		clks: scg1@403E0000 {
			compatible = "fsl,imx7ulp-scg1";
			reg = <0x403E0000 0x10000>;
			clocks = <&rosc>, <&sosc>, <&sirc>,
				<&firc>, <&upll>, <&mpll>;
			clock-names = "rosc", "sosc", "sirc",
				"firc", "upll", "mpll";
			#clock-cells = <1>;
			assigned-clocks = <&clks IMX7ULP_CLK_LPTPM5>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_SOSC_BUS_CLK>;
		};

		pcc2: pcc2@403F0000 {
			compatible  = "fsl,imx7ulp-pcc2";
			reg = <0x403F0000 0x10000>;
		};

		pmc1: pmc1@40400000 {
			compatible = "fsl,imx7ulp-pmc1";
			reg = <0x40400000 0x1000>;
		};

		smc1: smc1@40410000 {
			compatible = "fsl,imx7ulp-smc1";
			reg = <0x40410000 0x1000>;
		};

	};

	ahbbridge1: ahb-bridge1@40800000 {
		compatible = "fsl,aips-bus", "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0x40800000 0x800000>;
		ranges;

		lpi2c6: lpi2c6@40A40000 {
			compatible = "fsl,imx7ulp-lpi2c";
			reg = <0x40A40000 0x10000>;
			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_LPI2C6>,
				 <&clks IMX7ULP_CLK_NIC1_BUS_DIV>;
			clock-names = "per", "ipg";
			assigned-clocks = <&clks IMX7ULP_CLK_LPI2C6>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
			assigned-clock-rates = <48000000>;
			status = "disabled";
		};

		lpi2c7: lpi2c7@40A50000 {
			compatible = "fsl,imx7ulp-lpi2c";
			reg = <0x40A50000 0x10000>;
			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_LPI2C7>,
				 <&clks IMX7ULP_CLK_NIC1_BUS_DIV>;
			clock-names = "per", "ipg";
			assigned-clocks = <&clks IMX7ULP_CLK_LPI2C7>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
			assigned-clock-rates = <48000000>;
			status = "disabled";
		};

		lpuart6: serial@40A60000 {
			compatible = "fsl,imx7ulp-lpuart";
			reg = <0x40A60000 0x1000>;
			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_LPUART6>;
			clock-names = "ipg";
			assigned-clocks = <&clks IMX7ULP_CLK_LPUART6>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
			assigned-clock-rates = <48000000>;
			dmas = <&edma0 0 22>, <&edma0 0 21>;
			dma-names = "tx","rx";
			status = "disabled";
		};

		lpuart7: serial@40A70000 {
			compatible = "fsl,imx7ulp-lpuart";
			reg = <0x40A70000 0x1000>;
			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_LPUART7>;
			clock-names = "ipg";
			assigned-clocks = <&clks IMX7ULP_CLK_LPUART7>;
			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC_BUS_CLK>;
			assigned-clock-rates = <48000000>;
			dmas = <&edma0 0 24>, <&edma0 0 23>;
			dma-names = "tx","rx";
			status = "disabled";
		};

		lcdif: lcdif@40AA0000 {
			compatible = "fsl,imx7ulp-lcdif";
			reg = <0x40aa0000 0x10000>;
			interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_DUMMY>,
				 <&clks IMX7ULP_CLK_LCDIF>,
				 <&clks IMX7ULP_CLK_DUMMY>;
			clock-names = "axi", "pix", "disp_axi";
			status = "disabled";
		};

		mipi_dsi: mipi_dsi@40A90000 {
			compatible = "fsl,imx7ulp-mipi-dsi";
			reg = <0x40A90000 0x10000>;
			interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_DSI>;
			clock-names = "mipi_dsi_clk";
			data-lanes-num = <2>;
			phy-ref-clkfreq = <24000000>;
			max-data-rate  = <800000000>;
			sim = <&sim>;
			status = "disabled";
		};

		mmdc: mmdc@40ab0000 {
			compatible = "fsl,imx7ulp-mmdc", "fsl,imx6q-mmdc";
			reg = <0x40ab0000 0x4000>;
		};

		pcc3: pcc3@40B30000 {
			compatible  = "fsl,imx7ulp-pcc3";
			reg = <0x40B30000 0x10000>;
		};

		iomuxc: iomuxc@4103D000 {
			compatible = "fsl,imx7ulp-iomuxc-0";
			reg = <0x4103D000 0x1000>;
			status = "disabled";
		};

		iomuxc1: iomuxc1@40ac0000 {
			compatible = "fsl,imx7ulp-iomuxc-1";
			reg = <0x40ac0000 0x1000>;
		};

		gpio_ptc: gpio@40ae0000 {
			compatible = "fsl,vf610-gpio";
			reg = <0x40ae0000 0x1000 0x400F0000 0x40>;
			gpio-controller;
			#gpio-cells = <2>;
			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-controller;
			#interrupt-cells = <2>;
			clocks = <&clks IMX7ULP_CLK_RGPIO2P1>,
				 <&clks IMX7ULP_CLK_PCTLC>;
			clock-names = "port", "gpio";
			gpio-ranges = <&iomuxc1 0 0 32>;
		};

		gpio_ptd: gpio@40af0000 {
			compatible = "fsl,vf610-gpio";
			reg = <0x40af0000 0x1000 0x400F0040 0x40>;
			gpio-controller;
			#gpio-cells = <2>;
			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-controller;
			#interrupt-cells = <2>;
			clocks = <&clks IMX7ULP_CLK_RGPIO2P1>,
				 <&clks IMX7ULP_CLK_PCTLD>;
			clock-names = "port", "gpio";
			gpio-ranges = <&iomuxc1 0 32 32>;
		};

		gpio_pte: gpio@40b00000 {
			compatible = "fsl,vf610-gpio";
			reg = <0x40b00000 0x1000 0x400F0080 0x40>;
			gpio-controller;
			#gpio-cells = <2>;
			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-controller;
			#interrupt-cells = <2>;
			clocks = <&clks IMX7ULP_CLK_RGPIO2P1>,
				 <&clks IMX7ULP_CLK_PCTLE>;
			clock-names = "port", "gpio";
			gpio-ranges = <&iomuxc1 0 64 32>;
		};

		gpio_ptf: gpio@40b10000 {
			compatible = "fsl,vf610-gpio";
			reg = <0x40b10000 0x1000 0x400F00c0 0x40>;
			gpio-controller;
			#gpio-cells = <2>;
			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-controller;
			#interrupt-cells = <2>;
			clocks = <&clks IMX7ULP_CLK_RGPIO2P1>,
				 <&clks IMX7ULP_CLK_PCTLF>;
			clock-names = "port", "gpio";
			gpio-ranges = <&iomuxc1 0 96 32>;
		};

		pmc0: pmc0@410a1000 {
			compatible = "fsl,imx7ulp-pmc0";
			reg = <0x410a1000 0x1000>;
		};

		sim: sim@410a3000 {
			compatible = "fsl,imx7ulp-sim", "syscon";
			reg = <0x410a3000 0x1000>;
		};

		qspi1: qspi@410A5000 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "fsl,imx7ulp-qspi";
			reg = <0x410A5000 0x1000>, <0xC0000000 0x10000000>;
			reg-names = "QuadSPI", "QuadSPI-memory";
			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clks IMX7ULP_CLK_DUMMY>,
				 <&clks IMX7ULP_CLK_DUMMY>;
			clock-names = "qspi_en", "qspi";
			status = "disabled";
		};

		ocotp: ocotp@410a6000 {
			compatible = "fsl,imx7ulp-ocotp";
			reg = <0x410a6000 0x4000>;
			clocks = <&clks IMX7ULP_CLK_DUMMY>;
		};

		gpu: gpu@41800000 {
			compatible = "fsl,imx7ulp-gpu", "fsl,imx6q-gpu";
			reg = <0x41800000 0x80000>, <0x41880000 0x80000>,
				<0x60000000 0x40000000>, <0x0 0x4000000>;
			reg-names = "iobase_3d", "iobase_2d",
				"phys_baseaddr", "contiguous_mem";
			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
				<GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "irq_3d", "irq_2d";
			clocks = <&clks IMX7ULP_CLK_GPU3D>,
				<&clks IMX7ULP_CLK_DUMMY>,
				<&clks IMX7ULP_CLK_GPU_DIV>,
				<&clks IMX7ULP_CLK_GPU2D>,
				<&clks IMX7ULP_CLK_NIC1_DIV>;
			clock-names = "gpu3d_clk", "gpu3d_shader_clk",
				"gpu3d_axi_clk", "gpu2d_clk",
				"gpu2d_axi_clk";
		};
	};

	heartbeat-rpmsg {
		compatible = "fsl,heartbeat-rpmsg";
	};

	rtc-rpmsg {
		compatible = "fsl,imx-rpmsg-rtc";
	};

	imx_ion {
		compatible = "fsl,mxc-ion";
		fsl,heap-id = <0>;
	};
};
