From ddb98cb70f8ed4b1e44fa8680e185fa22c0b753c Mon Sep 17 00:00:00 2001
From: Nicolas Thill <nico@openwrt.org>
Date: Thu, 6 Nov 2014 00:05:23 +0000
Subject: [PATCH] sunxi: add support for Olimex A20-OLinuXino-LIME

Signed-off-by: Nicolas Thill <nico@openwrt.org>

SVN-Revision: 43189
---
 target/linux/sunxi/image/Makefile             |   5 +
 .../310-dt-sun7i-add-a20-olinuxino-lime.patch | 159 ++++++++++++++++++
 target/linux/sunxi/profiles/a20-olinuxino.mk  |  13 ++
 3 files changed, 177 insertions(+)
 create mode 100644 target/linux/sunxi/patches-3.14/310-dt-sun7i-add-a20-olinuxino-lime.patch

diff --git a/target/linux/sunxi/image/Makefile b/target/linux/sunxi/image/Makefile
index e7991cffde..1343470db1 100644
--- a/target/linux/sunxi/image/Makefile
+++ b/target/linux/sunxi/image/Makefile
@@ -20,6 +20,7 @@ BOARDS:= \
 	sun7i-a20-bananapi \
 	sun7i-a20-cubieboard2 \
 	sun7i-a20-cubietruck \
+	sun7i-a20-olinuxino-lime \
 	sun7i-a20-olinuxino-micro \
 	sun7i-a20-pcduino3
 
@@ -69,6 +70,10 @@ define Image/Build/Profile/A13-OLinuXino
 	$(call Image/Build/SDCard,$(1),sun5i-a13-olinuxino)
 endef
 
+define Image/Build/Profile/A20-OLinuXino_Lime
+	$(call Image/Build/SDCard,$(1),sun7i-a20-olinuxino-lime)
+endef
+
 define Image/Build/Profile/A20-OLinuXino_MICRO
 	$(call Image/Build/SDCard,$(1),sun7i-a20-olinuxino-micro)
 endef
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
index 0000000000..2406710575
--- /dev/null
+++ b/target/linux/sunxi/patches-3.14/310-dt-sun7i-add-a20-olinuxino-lime.patch
@@ -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";
++	};
++};
diff --git a/target/linux/sunxi/profiles/a20-olinuxino.mk b/target/linux/sunxi/profiles/a20-olinuxino.mk
index 86d1af8f00..89e8050ec5 100644
--- a/target/linux/sunxi/profiles/a20-olinuxino.mk
+++ b/target/linux/sunxi/profiles/a20-olinuxino.mk
@@ -5,6 +5,19 @@
 # See /LICENSE for more information.
 #
 
+define Profile/A20-OLinuXino_Lime
+	NAME:=A20 OLinuXino Lime
+	PACKAGES:=\
+		uboot-sunxi-A20-OLinuXino_Lime kmod-ata-sunxi kmod-rtc-sunxi
+endef
+
+define Profile/A20-OLinuXino_Lime/Description
+	Package set optimized for the Olimex A20 OLinuXino Lime
+endef
+
+$(eval $(call Profile,A20-OLinuXino_Lime))
+
+
 define Profile/A20-OLinuXino_MICRO
 	NAME:=A20 OLinuXino Micro
 	PACKAGES:=\
-- 
2.30.2