/*
 * Copyright 2014 Hans de Goede <hdegoede@redhat.com>
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/dts-v1/;
/include/ "sun6i-a31.dtsi"
/include/ "sunxi-common-regulators.dtsi"

/ {
	model = "Mele M9 / A1000G Quad top set box";
	compatible = "mele,m9", "allwinner,sun6i-a31";

	chosen {
		bootargs = "earlyprintk console=ttyS0,115200";
	};

	soc@01c00000 {
		mmc0: mmc@01c0f000 {
			pinctrl-names = "default";
			pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_m9>;
			vmmc-supply = <&reg_vcc3v3>;
			bus-width = <4>;
			cd-gpios = <&pio 7 22 0>; /* PH22 */
			cd-inverted;
			status = "okay";
		};

		pio: pinctrl@01c20800 {
			mmc0_cd_pin_m9: mmc0_cd_pin@0 {
				allwinner,pins = "PH22";
				allwinner,function = "gpio_in";
				allwinner,drive = <0>;
				allwinner,pull = <1>;
			};
		};

		uart0: serial@01c28000 {
			pinctrl-names = "default";
			pinctrl-0 = <&uart0_pins_a>;
			status = "okay";
		};
	};
};
