// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright 2022 Marek Vasut <marex@denx.de>
 */

#include "imx8mp-u-boot.dtsi"
#include "imx8mp-pinfunc.h"

/ {
	aliases {
		eeprom0 = &eeprom;
		mmc0 = &usdhc3;	/* eMMC */
		mmc1 = &usdhc2;	/* MicroSD */
		spi0 = &ecspi1;
	};

	config {
		dmo,ram-coding-gpios = <&gpio3 20 0>, <&gpio4 3 0>, <&gpio4 1 0>;
	};

	reg_usb1_vbus: regulator-usb1-vbus {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usb1_vbus>;
		regulator-max-microvolt = <5000000>;
		regulator-min-microvolt = <5000000>;
		regulator-name = "USB1_PWR";
	};

	wdt-reboot {
		compatible = "wdt-reboot";
		wdt = <&wdog1>;
		bootph-pre-ram;
	};
};

&buck4 {
	bootph-pre-ram;
};

&buck5 {
	bootph-pre-ram;
};

&ecspi1 {
	/delete-property/ assigned-clocks;
	/delete-property/ assigned-clock-rates;
	/delete-property/ assigned-clock-parents;
	bootph-pre-ram;
	flash@0 {
		bootph-pre-ram;
	};
};

&gpio1 {
	bootph-pre-ram;
};

&gpio2 {
	bootph-pre-ram;
};

&gpio3 {
	bootph-pre-ram;
	bootph-some-ram;

	bl-enable-hog {
		bootph-pre-ram;
		gpio-hog;
		output-low;
		gpios = <0 GPIO_ACTIVE_HIGH>;
		line-name = "BL_ENABLE_1V8";
	};

	tft-enable-hog {
		bootph-pre-ram;
		gpio-hog;
		output-low;
		gpios = <6 GPIO_ACTIVE_HIGH>;
		line-name = "TFT_ENABLE_1V8";
	};

	graphics-gpio0-hog {
		bootph-pre-ram;
		gpio-hog;
		input;
		gpios = <7 GPIO_ACTIVE_HIGH>;
		line-name = "GRAPHICS_GPIO0_1V8";
	};
};

&gpio4 {
	bootph-pre-ram;
	bootph-some-ram;

	dsi-reset-hog {
		bootph-pre-ram;
		gpio-hog;
		output-high;
		gpios = <0 GPIO_ACTIVE_LOW>;
		line-name = "DSI_RESET_1V8#";
	};

	graphics-prsnt-hog {
		bootph-pre-ram;
		gpio-hog;
		input;
		gpios = <18 GPIO_ACTIVE_LOW>;
		line-name = "GRAPHICS_PRSNT_1V8#";
	};

	dsi-irq-hog {
		bootph-pre-ram;
		gpio-hog;
		input;
		gpios = <19 GPIO_ACTIVE_LOW>;
		line-name = "DSI_IRQ_1V8#";
	};
};

&gpio5 {
	bootph-pre-ram;
};

&i2c3 {
	bootph-pre-ram;
};

&pinctrl_ecspi1 {
	bootph-pre-ram;
};

&pinctrl_hog_sbc {
	bootph-pre-ram;
};

&pinctrl_i2c3 {
	bootph-pre-ram;
};

&pinctrl_i2c3_gpio {
	bootph-pre-ram;
};

&pinctrl_pmic {
	bootph-pre-ram;
};

&pinctrl_uart3 {
	bootph-pre-ram;
};

&pinctrl_usdhc2 {
	bootph-pre-ram;
};

&pinctrl_usdhc3 {
	bootph-pre-ram;
};

&pmic {
	bootph-pre-ram;

	regulators {
		bootph-pre-ram;
	};
};

&uart3 {
	bootph-pre-ram;
};

&usb3_phy0 {
	vbus-supply = <&reg_usb1_vbus>;
};

&usdhc2 {
	bootph-pre-ram;
	sd-uhs-sdr104;
	sd-uhs-ddr50;
};

&usdhc3 {
	bootph-pre-ram;
	mmc-hs400-1_8v;
	mmc-hs400-enhanced-strobe;
};

&wdog1 {
	bootph-pre-ram;
};

&iomuxc {
	usb1-grp {
		fsl,pins = <
			MX8MP_IOMUXC_GPIO1_IO13__USB1_OTG_OC		0x80
		>;
	};

	pinctrl_usb1_vbus: usb1-vbus-grp {
		fsl,pins = <
			MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12		0x6
		>;
	};
};
