/*
 * Copyright 2013 Maxime Ripard
 *
 * Maxime Ripard <maxime.ripard@free-electrons.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 = "WITS A31 Colombus Evaluation Board";
	compatible = "wits,colombus", "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_colombus>;
			vmmc-supply = <&reg_vcc3v0>;
			bus-width = <4>;
			cd-gpios = <&pio 0 8 0>; /* PA8 */
			cd-inverted;
			status = "okay";
		};

		usbphy: phy@01c19400 {
			usb2_vbus-supply = <&reg_usb2_vbus>;
			status = "okay";
		};

		ehci1: usb@01c1b000 {
			status = "okay";
		};

		pio: pinctrl@01c20800 {
			mmc0_pins_a: mmc0@0 {
				allwinner,pull = <1>;
			};

			mmc0_cd_pin_colombus: mmc0_cd_pin@0 {
				allwinner,pins = "PA8";
				allwinner,function = "gpio_in";
				allwinner,drive = <0>;
				allwinner,pull = <1>;
			};

			usb2_vbus_pin_colombus: usb2_vbus_pin@0 {
				allwinner,pins = "PH24";
				allwinner,function = "gpio_out";
				allwinner,drive = <0>;
				allwinner,pull = <0>;
			};
		};

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

		i2c0: i2c@01c2ac00 {
			pinctrl-names = "default";
			pinctrl-0 = <&i2c0_pins_a>;
			status = "fail";
		};

		i2c1: i2c@01c2b000 {
			pinctrl-names = "default";
			pinctrl-0 = <&i2c1_pins_a>;
			status = "okay";
		};

		i2c2: i2c@01c2b400 {
			pinctrl-names = "default";
			pinctrl-0 = <&i2c2_pins_a>;
			status = "okay";
		};
	};

	reg_usb2_vbus: usb2-vbus {
		pinctrl-names = "default";
		pinctrl-0 = <&usb2_vbus_pin_colombus>;
		gpio = <&pio 7 24 0>;
		status = "okay";
	};
};
