sunxi: add support for Olimex A20-OLinuXino-LIME
[openwrt/openwrt.git] / target / linux / sunxi / patches-3.14 / 310-dt-sun7i-add-a20-olinuxino-lime.patch
diff --git a/target/linux/sunxi/patches-3.14/310-dt-sun7i-add-a20-olinuxino-lime.patch b/target/linux/sunxi/patches-3.14/310-dt-sun7i-add-a20-olinuxino-lime.patch
new file mode 100644 (file)
index 0000000..2406710
--- /dev/null
@@ -0,0 +1,159 @@
+From a71b4438af8242f383906071205db95a8b8e7b6d Mon Sep 17 00:00:00 2001
+From: FUKAUMI Naoki <naobsd@gmail.com>
+Date: Wed, 20 Aug 2014 14:25:03 +0900
+Subject: ARM: sun7i: Add support for Olimex A20-OLinuXino-LIME
+
+This patch adds support for Olimex A20-OLinuXino-LIME board.
+
+Signed-off-by: FUKAUMI Naoki <naobsd@gmail.com>
+Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
+
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -293,6 +293,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \
+       sun7i-a20-bananapi.dtb \
+       sun7i-a20-cubieboard2.dtb \
+       sun7i-a20-cubietruck.dtb \
++      sun7i-a20-olinuxino-lime.dtb \
+       sun7i-a20-olinuxino-micro.dtb \
+       sun7i-a20-pcduino3.dtb
+ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
+@@ -0,0 +1,136 @@
++/*
++ * This is based on sun4i-a10-olinuxino-lime.dts
++ *
++ * Copyright 2014 - Hans de Goede <hdegoede@redhat.com>
++ * Copyright (c) 2014 FUKAUMI Naoki <naobsd@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 = "Olimex A20-OLinuXino-LIME";
++      compatible = "olimex,a20-olinuxino-lime", "allwinner,sun7i-a20";
++
++      soc@01c00000 {
++              mmc0: mmc@01c0f000 {
++                      pinctrl-names = "default", "default";
++                      pinctrl-0 = <&mmc0_pins_a>;
++                      pinctrl-1 = <&mmc0_cd_pin_reference_design>;
++                      cd-gpios = <&pio 7 1 0>; /* PH1 */
++                      cd-mode = <1>;
++                      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";
++              };
++
++              pinctrl@01c20800 {
++                      ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
++                              allwinner,pins = "PC3";
++                              allwinner,function = "gpio_out";
++                              allwinner,drive = <0>;
++                              allwinner,pull = <0>;
++                      };
++
++                      led_pins_olinuxinolime: led_pins@0 {
++                              allwinner,pins = "PH2";
++                              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";
++
++                      axp: axp20x@34 {
++                              reg = <0x34>;
++                              interrupt-parent = <&nmi_intc>;
++                              interrupts = <0 8>;
++
++                              axp,system-power-controller;
++
++                              /include/ "x-powers-axp209.dtsi"
++                      };
++              };
++
++              gmac: ethernet@01c50000 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&gmac_pins_mii_a>;
++                      phy = <&phy1>;
++                      phy-mode = "mii";
++                      status = "okay";
++
++                      phy1: ethernet-phy@1 {
++                              reg = <1>;
++                      };
++              };
++      };
++
++      leds {
++              compatible = "gpio-leds";
++              pinctrl-names = "default";
++              pinctrl-0 = <&led_pins_olinuxinolime>;
++
++              green {
++                      label = "a20-olinuxino-lime:green:usr";
++                      gpios = <&pio 7 2 0>;
++                      default-state = "on";
++              };
++      };
++
++      reg_ahci_5v: ahci-5v {
++              pinctrl-0 = <&ahci_pwr_pin_olinuxinolime>;
++              gpio = <&pio 2 3 0>;
++              status = "okay";
++      };
++
++      reg_usb1_vbus: usb1-vbus {
++              status = "okay";
++      };
++
++      reg_usb2_vbus: usb2-vbus {
++              status = "okay";
++      };
++};