/*
 * Copyright (C) 2014-2016 Texas Instruments Incorporated - http://www.ti.com/
 *
 * 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 "am57xx-beagle-x15-common.dtsi"

/ {
	/* NOTE: This describes the "original" pre-production A2 revision */
	model = "TI AM5728 BeagleBoard-X15";
};

&tpd12s015 {
	gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>,	/* gpio7_10, CT CP HPD */
		<&gpio6 28 GPIO_ACTIVE_HIGH>,	/* gpio6_28, LS OE */
		<&gpio7 12 GPIO_ACTIVE_HIGH>;	/* gpio7_12/sp1_cs2, HPD */
};

&mmc1 {
	pinctrl-names = "default", "hs";
	pinctrl-0 = <&mmc1_pins_default>;
	pinctrl-1 = <&mmc1_pins_hs>;

	vmmc-supply = <&ldo1_reg>;
	/delete-property/ sd-uhs-sdr104;
	/delete-property/ sd-uhs-sdr50;
	/delete-property/ sd-uhs-ddr50;
	/delete-property/ sd-uhs-sdr25;
	/delete-property/ sd-uhs-sdr12;
};

&mmc2 {
	pinctrl-names = "default", "hs", "ddr_1_8v";
	pinctrl-0 = <&mmc2_pins_default>;
	pinctrl-1 = <&mmc2_pins_hs>;
	pinctrl-2 = <&mmc2_pins_ddr_3_3v_rev11 &mmc2_iodelay_ddr_3_3v_rev11_conf>;
	/delete-property/ mmc-hs200-1_8v;
};

/* errata i880 "Ethernet RGMII2 Limited to 10/100 Mbps" */
&phy1 {
	max-speed = <100>;
};
