/*
 * Copyright (C) 2016 Freescale Semiconductor, Inc.
 * Copyright 2018 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 "imx7ulp-evk.dts"

/ {
	regulators {
		compatible = "simple-bus";

		dummy: regulator-dummy {
		compatible = "regulator-fixed";
		regulator-name = "dummy";
		regulator-always-on;
		};
	};
};

&qspi1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_qspi1_1>;
	status = "okay";

	flash0: mx25r6435f@0 {
		reg = <0>;
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "macronix,mx25r6435f";
		spi-max-frequency = <29000000>;
	};
};

&rpmsg{
	status = "disabled";
};

&cpu0 {
	arm-supply= <&dummy>;
	operating-points = <
		/* KHz  uV */
		500210	1025000
	>;
};

&usdhc0 {
	vqmmc-supply = <&dummy>;
	no-1-8-v;
	non-removable;
};

&iomuxc {
	status = "okay";
};

&iomuxc {
	imx7ulp-evk {
		pinctrl_qspi1_1: qspi1grp_1 {
			fsl,pins = <
				IMX7ULP_PAD_PTB7__QSPIA_SS1_B   0x43 /* SS1 */
				IMX7ULP_PAD_PTB8__QSPIA_SS0_B   0x43 /* SS0 */
				IMX7ULP_PAD_PTB15__QSPIA_SCLK   0x43 /* SCLK */
				IMX7ULP_PAD_PTB9__QSPIA_DQS     0x43 /* DQS */
				IMX7ULP_PAD_PTB16__QSPIA_DATA3  0x43 /* D3 */
				IMX7ULP_PAD_PTB17__QSPIA_DATA2  0x43 /* D2 */
				IMX7ULP_PAD_PTB18__QSPIA_DATA1  0x43 /* D1 */
				IMX7ULP_PAD_PTB19__QSPIA_DATA0  0x43 /* D0 */
			>;
		};
	};
};

