/*
 * Copyright 2013 Wills Wang
 *
 * Wills Wang <wills.wang.open@gmail.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/ "sun7i-a20.dtsi"
/include/ "sunxi-common-regulators.dtsi"

/ {
	model = "Merrii A20 Hummingbird";
	compatible = "merrii,a20-hummingbird", "allwinner,sun7i-a20";

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

		mmc3: mmc@01c12000 {
			pinctrl-names = "default";
			pinctrl-0 = <&mmc3_pins_a>;
			vmmc-supply = <&reg_mmc3_vdd>;
			bus-width = <4>;
			non-removable;
			status = "okay";
		};

		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";
		};

		pio: pinctrl@01c20800 {
			ahci_pwr_pin_a20_hummingbird: ahci_pwr_pin@0 {
				allwinner,pins = "PH15";
				allwinner,function = "gpio_out";
				allwinner,drive = <0>;
				allwinner,pull = <0>;
			};

			usb1_vbus_pin_a20_hummingbird: usb1_vbus_pin@0 {
				allwinner,pins = "PH2";
				allwinner,function = "gpio_out";
				allwinner,drive = <0>;
				allwinner,pull = <0>;
			};

			mmc3_vdd_pin_a20_hummingbird: mmc3_vdd_pin@0 {
				allwinner,pins = "PH9";
				allwinner,function = "gpio_out";
				allwinner,drive = <0>;
				allwinner,pull = <0>;
			};

			gmac_vdd_pin_a20_hummingbird: gmac_vdd_pin@0 {
				allwinner,pins = "PH16";
				allwinner,function = "gpio_out";
				allwinner,drive = <0>;
				allwinner,pull = <0>;
			};
		};

		pwm: pwm@01c20e00 {
			pinctrl-names = "default";
			pinctrl-0 = <&pwm0_pins_a>;
			status = "okay";
		};

		ir0: ir@01c21800 {
			pinctrl-names = "default";
			pinctrl-0 = <&ir0_pins_a>;
			status = "okay";
		};

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

		uart2: serial@01c28800 {
			pinctrl-names = "default";
			pinctrl-0 = <&uart2_pins_a>;
			status = "okay";
		};

		uart3: serial@01c28c00 {
			pinctrl-names = "default";
			pinctrl-0 = <&uart3_pins_a>;
			status = "okay";
		};

		uart4: serial@01c29000 {
			pinctrl-names = "default";
			pinctrl-0 = <&uart4_pins_a>;
			status = "okay";
		};

		uart5: serial@01c29400 {
			pinctrl-names = "default";
			pinctrl-0 = <&uart5_pins_a>;
			status = "okay";
		};

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

			axp209: pmic@34 {
				compatible = "x-powers,axp209";
				reg = <0x34>;
				interrupt-parent = <&nmi_intc>;
				interrupts = <0 8>;
				interrupt-controller;
				#interrupt-cells = <1>;
			};
		};

		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";
		};

		i2c3: i2c@01c2b800 {
			pinctrl-names = "default";
			pinctrl-0 = <&i2c3_pins_a>;
			status = "okay";
		};

		spi2: spi@01c17000 {
			pinctrl-names = "default";
			pinctrl-0 = <&spi2_pins_b>;
			status = "okay";
		};

		gmac: ethernet@01c50000 {
			pinctrl-names = "default";
			pinctrl-0 = <&gmac_pins_rgmii_a>;
			phy = <&phy1>;
			phy-mode = "rgmii";
			phy-supply = <&reg_gmac_vdd>;
			/* phy reset config */
			snps,reset-gpio = <&pio 0 17 0>; /* PA17 */
			snps,reset-active-low;
			/* wait 1s after reset, otherwise fail to read phy id */
			snps,reset-delays-us = <0 10000 1000000>;
			status = "okay";

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

	reg_ahci_5v: ahci-5v {
		pinctrl-0 = <&ahci_pwr_pin_a20_hummingbird>;
		gpio = <&pio 7 15 0>; /* PH15 */
		status = "okay";
	};

	reg_usb1_vbus: usb1-vbus {
		pinctrl-0 = <&usb1_vbus_pin_a20_hummingbird>;
		gpio = <&pio 7 2 0>; /* PH2 */
		status = "okay";
	};

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

	reg_mmc3_vdd: mmc3_vdd {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&mmc3_vdd_pin_a20_hummingbird>;
		regulator-name = "mmc3_vdd";
		regulator-min-microvolt = <3000000>;
		regulator-max-microvolt = <3000000>;
		enable-active-high;
		gpio = <&pio 7 9 0>; /* PH9 */
	};

	reg_gmac_vdd: gmac_vdd {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&gmac_vdd_pin_a20_hummingbird>;
		regulator-name = "gmac_vdd";
		regulator-min-microvolt = <3000000>;
		regulator-max-microvolt = <3000000>;
		enable-active-high;
		gpio = <&pio 7 16 0>; /* PH16 */
	};
};
