// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * at91-cosino_mega2560.dts - Device Tree file for Cosino board with
 *			      Mega 2560 extension
 *
 * Copyright (C) 2013 - Rodolfo Giometti <giometti@linux.it>
 *			HCE Engineering
 *
 * Derived from at91sam9g35ek.dts by:
 * 	Copyright (C) 2012 Atmel,
 *      2012 Nicolas Ferre <nicolas.ferre@atmel.com>
 */

/dts-v1/;
#include "at91-cosino.dtsi"

/ {
	model = "HCE Cosino Mega 2560";
	compatible = "hce,cosino_mega2560", "atmel,at91sam9x5", "atmel,at91sam9";
};

&adc0 {
	atmel,adc-ts-wires = <4>;
	atmel,adc-ts-pressure-threshold = <10000>;
	status = "okay";
};

&macb0 {
	phy-mode = "rmii";
	status = "okay";
};

&mmc1 {
	pinctrl-0 = <
		&pinctrl_mmc1_slot0_clk_cmd_dat0
		&pinctrl_mmc1_slot0_dat1_3>;
	status = "okay";

	slot@0 {
		reg = <0>;
		bus-width = <4>;
		non-removable;
	};
};

&rtc {
	status = "okay";
};

&usart1 {
	status = "okay";
};

&usart2 {
	status = "okay";
};

&usb0 {
	num-ports = <3>;
	atmel,vbus-gpio = <0 /* &pioD 18 GPIO_ACTIVE_LOW */
			   &pioD 19 GPIO_ACTIVE_LOW
			   &pioD 20 GPIO_ACTIVE_LOW
			  >;
	status = "okay";
};

&usb1 {
	status = "okay";
};

&usb2 {
	atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
	status = "okay";
};
