/*
 * Copyright 2012 Stefan Roese
 * Stefan Roese <sr@denx.de>
 *
 * 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/ "sun4i-a10.dtsi"
/include/ "sunxi-common-regulators.dtsi"

/ {
	model = "Cubietech Cubieboard";
	compatible = "cubietech,a10-cubieboard", "allwinner,sun4i-a10";

	soc@01c00000 {
		emac: ethernet@01c0b000 {
			pinctrl-names = "default";
			pinctrl-0 = <&emac_pins_a>;
			phy = <&phy1>;
			status = "okay";
		};

		mdio@01c0b080 {
			status = "okay";

			phy1: ethernet-phy@1 {
				reg = <1>;
			};
		};

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

		ehci0: usb@01c14000 {
			status = "okay";
		};

		ohci0: usb@01c14400 {
			status = "okay";
		};

		ahci: sata@01c18000 {
			target-supply = <&reg_ahci_5v>;
			status = "okay";
		};

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

		ohci1: usb@01c1c400 {
			status = "okay";
		};

		pinctrl@01c20800 {
			led_pins_cubieboard: led_pins@0 {
				allwinner,pins = "PH20", "PH21";
				allwinner,function = "gpio_out";
				allwinner,drive = <1>;
				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 = "okay";
		};

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

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&led_pins_cubieboard>;

		blue {
			label = "cubieboard:blue:usr";
			gpios = <&pio 7 21 0>; /* LED1 */
		};

		green {
			label = "cubieboard:green:usr";
			gpios = <&pio 7 20 0>; /* LED2 */
			linux,default-trigger = "heartbeat";
		};
	};

	reg_ahci_5v: ahci-5v {
		status = "okay";
	};

	reg_usb1_vbus: usb1-vbus {
		status = "okay";
	};

	reg_usb2_vbus: usb2-vbus {
		status = "okay";
	};
};
