// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Dell Wyse 3020 a.k.a. "Ariel" a.k.a. Tx0D (T00D, T10D)
 *
 * Copyright (C) 2019 Lubomir Rintel <lkundrak@v3.sk>
 */

/dts-v1/;
#include "mmp3.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
	model = "Dell Ariel";
	compatible = "dell,wyse-ariel", "marvell,mmp3";

	aliases {
		serial2 = &uart3;
	};

	chosen {
		#address-cells = <0x1>;
		#size-cells = <0x1>;
		ranges;
		bootargs = "earlyprintk=ttyS2,115200 console=ttyS2,115200";
	};

	memory@0 {
		linux,usable-memory = <0x0 0x7f600000>;
		available = <0x7f700000 0x7ff00000 0x00000000 0x7f600000>;
		reg = <0x0 0x80000000>;
		device_type = "memory";
	};
};

&uart3 {
	status = "okay";
};

&rtc {
	status = "okay";
};

&usb_otg0 {
	status = "okay";
};

&usb_otg_phy0 {
	status = "okay";
};

&hsic0 {
	status = "okay";

	usb1@1 {
		compatible = "usb424,2640";
		reg = <0x01>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;

		mass-storage@1 {
			compatible = "usb424,4040";
			reg = <0x01>;
			status = "disabled";
		};
	};
};

&hsic_phy0 {
	status = "okay";
	reset-gpios = <&gpio 63 GPIO_ACTIVE_HIGH>;
};

&mmc3 {
	status = "okay";
	max-frequency = <50000000>;
	status = "okay";
	bus-width = <8>;
	non-removable;
	cap-mmc-highspeed;
};

&twsi1 {
	status = "okay";

	rtc@68 {
		compatible = "dallas,ds1338";
		reg = <0x68>;
		status = "okay";
	};
};

&twsi3 {
	status = "okay";
};

&twsi4 {
	status = "okay";
};

&ssp3 {
	status = "okay";
	cs-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;

	firmware-flash@0 {
		compatible = "st,m25p80", "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <40000000>;
		m25p,fast-read;
	};
};

&ssp4 {
	cs-gpios = <&gpio 56 GPIO_ACTIVE_HIGH>;
	status = "okay";
};
