diff mbox

[OpenWrt-Devel,v2,7/8] sunxi: add support for Lamobo R1

Message ID 20150120014857.GA12279@makrotopia.org
State Accepted, archived
Delegated to: Zoltan HERPAI
Headers show

Commit Message

Daniel Golle Jan. 20, 2015, 1:49 a.m. UTC
Partially based on patchset form Wang Yi <wangyi8848@gmail.com> published
on https://github.com/Lamobo/Lamobo-R1-OpenWrt as well as on Bananapi DTS.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
v2: swconfig needs to be built-in, switch is not detected properly otherwise
---
 .../sunxi/base-files/etc/uci-defaults/02_network   |   6 +
 target/linux/sunxi/base-files/lib/sunxi.sh         |   4 +
 target/linux/sunxi/config-3.18                     |   6 +
 target/linux/sunxi/image/Makefile                  |   7 +-
 .../patches-3.18/302-dt-sun7i-add-lamobo-r1.patch  | 252 +++++++++++++++++++++
 target/linux/sunxi/profiles/lamobo-r1.mk           |  19 ++
 6 files changed, 293 insertions(+), 1 deletion(-)
 mode change 100644 => 100755 target/linux/sunxi/image/Makefile
 create mode 100644 target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch
 create mode 100644 target/linux/sunxi/profiles/lamobo-r1.mk

Comments

Zoltan HERPAI Jan. 20, 2015, 11:03 p.m. UTC | #1
Hi Daniel,

Comments inline:

Daniel Golle wrote:
> Partially based on patchset form Wang Yi <wangyi8848@gmail.com> published
> on https://github.com/Lamobo/Lamobo-R1-OpenWrt as well as on Bananapi DTS.
>
> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
> v2: swconfig needs to be built-in, switch is not detected properly otherwise
> ---
>  .../sunxi/base-files/etc/uci-defaults/02_network   |   6 +
>  target/linux/sunxi/base-files/lib/sunxi.sh         |   4 +
>  target/linux/sunxi/config-3.18                     |   6 +
>  target/linux/sunxi/image/Makefile                  |   7 +-
>  .../patches-3.18/302-dt-sun7i-add-lamobo-r1.patch  | 252 +++++++++++++++++++++
>  target/linux/sunxi/profiles/lamobo-r1.mk           |  19 ++
>  6 files changed, 293 insertions(+), 1 deletion(-)
>  mode change 100644 => 100755 target/linux/sunxi/image/Makefile
>  create mode 100644 target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch
>  create mode 100644 target/linux/sunxi/profiles/lamobo-r1.mk
>
> diff --git a/target/linux/sunxi/base-files/etc/uci-defaults/02_network b/target/linux/sunxi/base-files/etc/uci-defaults/02_network
> index 1a9b0ed..09db8d5 100644
> --- a/target/linux/sunxi/base-files/etc/uci-defaults/02_network
> +++ b/target/linux/sunxi/base-files/etc/uci-defaults/02_network
> @@ -16,6 +16,12 @@ case "$( sunxi_board_name )" in
>  "olinuxino"*)
>  	ucidef_set_interface_lan 'wlan0'
>  	;;
> +"lamobo-r1")
> +	ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
> +	ucidef_add_switch "switch0" "1" "1"
> +	ucidef_add_switch_vlan "switch0" "1" "4 0 1 2 8t"
> +	ucidef_add_switch_vlan "switch0" "2" "3 8t"
> +	;;
>  *)
>  	ucidef_set_interface_lan 'eth0'
>  	;;
> diff --git a/target/linux/sunxi/base-files/lib/sunxi.sh b/target/linux/sunxi/base-files/lib/sunxi.sh
> index d4dd9fe..444c7e9 100644
> --- a/target/linux/sunxi/base-files/lib/sunxi.sh
> +++ b/target/linux/sunxi/base-files/lib/sunxi.sh
> @@ -105,6 +105,10 @@ sunxi_board_detect() {
>  			board="i12-tvbox"
>  			;;
>  
> +		"Lamobo R1")
> +			board="lamobo-r1"
> +			;;
> +
>  		"Olimex A20-OLinuXino-LIME")
>  			board="olinuxino-lime"
>  			;;
>   
I'm yet to test the new layout You proposed - looks good but I'll need 
to test with the rest of the boards. I'm fine with adding the Lamobo 
board with the current layout, then move on to the new one if You're in 
a rush.

> diff --git a/target/linux/sunxi/config-3.18 b/target/linux/sunxi/config-3.18
> index 68f1593..3513f6a 100644
> --- a/target/linux/sunxi/config-3.18
> +++ b/target/linux/sunxi/config-3.18
> @@ -58,6 +58,11 @@ CONFIG_AUDIT=y
>  CONFIG_AUDIT_GENERIC=y
>  CONFIG_AUTO_ZRELADDR=y
>  CONFIG_AVERAGE=y
> +CONFIG_B53=y
> +# CONFIG_B53_MMAP_DRIVER is not set
> +CONFIG_B53_PHY_DRIVER=y
> +CONFIG_B53_PHY_FIXUP=y
> +# CONFIG_B53_SRAB_DRIVER is not set
>  CONFIG_BINFMT_MISC=y
>  CONFIG_BLK_CGROUP=y
>  CONFIG_BLK_DEV_SD=y
> @@ -427,6 +432,7 @@ CONFIG_STRICT_DEVMEM=y
>  CONFIG_SUN4I_TIMER=y
>  CONFIG_SUN5I_HSTIMER=y
>  CONFIG_SUNXI_WATCHDOG=y
> +CONFIG_SWCONFIG=y
>  CONFIG_SWIOTLB=y
>  CONFIG_SWP_EMULATE=y
>  CONFIG_SYSFS_SYSCALL=y
>   
For comment on swconfig, see below at the profile.


> diff --git a/target/linux/sunxi/image/Makefile b/target/linux/sunxi/image/Makefile
> old mode 100644
> new mode 100755
> index 4475aa8..f627ee3
> --- a/target/linux/sunxi/image/Makefile
> +++ b/target/linux/sunxi/image/Makefile
>   
[snip]
This is OK
> diff --git a/target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch b/target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch
> new file mode 100644
> index 0000000..82c8bd5
> --- /dev/null
> +++ b/target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch
>   
[snip]
Fine here as well. Do you plan to submit this DTS upstream?

> diff --git a/target/linux/sunxi/profiles/lamobo-r1.mk b/target/linux/sunxi/profiles/lamobo-r1.mk
> new file mode 100644
> index 0000000..4bc1185
> --- /dev/null
> +++ b/target/linux/sunxi/profiles/lamobo-r1.mk
> @@ -0,0 +1,19 @@
> +#
> +# Copyright (C) 2015 OpenWrt.org
> +#
> +# This is free software, licensed under the GNU General Public License v2.
> +# See /LICENSE for more information.
> +#
> +
> +define Profile/Lamobo_R1
> +	NAME:=Lamobo R1
> +	PACKAGES:=\
> +		uboot-sunxi-Lamobo_R1 kmod-ata-sunxi kmod-rtl8192cu \
> +		swconfig wpad-mini
> +endef
> +
> +define Profile/Lamobo_R1/Description
> +	Package set optimized for the Lamobo R1
> +endef
> +
> +$(eval $(call Profile,Lamobo_R1))
>   
If swconfig needs to be compiled in, I guess it can be taken out from 
the package list?

Thanks,
-w-
diff mbox

Patch

diff --git a/target/linux/sunxi/base-files/etc/uci-defaults/02_network b/target/linux/sunxi/base-files/etc/uci-defaults/02_network
index 1a9b0ed..09db8d5 100644
--- a/target/linux/sunxi/base-files/etc/uci-defaults/02_network
+++ b/target/linux/sunxi/base-files/etc/uci-defaults/02_network
@@ -16,6 +16,12 @@  case "$( sunxi_board_name )" in
 "olinuxino"*)
 	ucidef_set_interface_lan 'wlan0'
 	;;
+"lamobo-r1")
+	ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+	ucidef_add_switch "switch0" "1" "1"
+	ucidef_add_switch_vlan "switch0" "1" "4 0 1 2 8t"
+	ucidef_add_switch_vlan "switch0" "2" "3 8t"
+	;;
 *)
 	ucidef_set_interface_lan 'eth0'
 	;;
diff --git a/target/linux/sunxi/base-files/lib/sunxi.sh b/target/linux/sunxi/base-files/lib/sunxi.sh
index d4dd9fe..444c7e9 100644
--- a/target/linux/sunxi/base-files/lib/sunxi.sh
+++ b/target/linux/sunxi/base-files/lib/sunxi.sh
@@ -105,6 +105,10 @@  sunxi_board_detect() {
 			board="i12-tvbox"
 			;;
 
+		"Lamobo R1")
+			board="lamobo-r1"
+			;;
+
 		"Olimex A20-OLinuXino-LIME")
 			board="olinuxino-lime"
 			;;
diff --git a/target/linux/sunxi/config-3.18 b/target/linux/sunxi/config-3.18
index 68f1593..3513f6a 100644
--- a/target/linux/sunxi/config-3.18
+++ b/target/linux/sunxi/config-3.18
@@ -58,6 +58,11 @@  CONFIG_AUDIT=y
 CONFIG_AUDIT_GENERIC=y
 CONFIG_AUTO_ZRELADDR=y
 CONFIG_AVERAGE=y
+CONFIG_B53=y
+# CONFIG_B53_MMAP_DRIVER is not set
+CONFIG_B53_PHY_DRIVER=y
+CONFIG_B53_PHY_FIXUP=y
+# CONFIG_B53_SRAB_DRIVER is not set
 CONFIG_BINFMT_MISC=y
 CONFIG_BLK_CGROUP=y
 CONFIG_BLK_DEV_SD=y
@@ -427,6 +432,7 @@  CONFIG_STRICT_DEVMEM=y
 CONFIG_SUN4I_TIMER=y
 CONFIG_SUN5I_HSTIMER=y
 CONFIG_SUNXI_WATCHDOG=y
+CONFIG_SWCONFIG=y
 CONFIG_SWIOTLB=y
 CONFIG_SWP_EMULATE=y
 CONFIG_SYSFS_SYSCALL=y
diff --git a/target/linux/sunxi/image/Makefile b/target/linux/sunxi/image/Makefile
old mode 100644
new mode 100755
index 4475aa8..f627ee3
--- a/target/linux/sunxi/image/Makefile
+++ b/target/linux/sunxi/image/Makefile
@@ -24,7 +24,8 @@  BOARDS:= \
 	sun7i-a20-cubietruck \
 	sun7i-a20-olinuxino-lime \
 	sun7i-a20-olinuxino-micro \
-	sun7i-a20-pcduino3
+	sun7i-a20-pcduino3 \
+	sun7i-a20-lamobo-r1
 
 define Image/BuildKernel
 	mkimage -A arm -O linux -T kernel -C none \
@@ -88,6 +89,10 @@  define Image/Build/Profile/Bananapro
 	$(call Image/Build/SDCard,$(1),sun7i-a20-bananapro)
 endef
 
+define Image/Build/Profile/Lamobo_R1
+	$(call Image/Build/SDCard,$(1),sun7i-a20-lamobo-r1)
+endef
+
 define Image/Build/Profile/Cubieboard
 	$(call Image/Build/SDCard,$(1),sun4i-a10-cubieboard)
 endef
diff --git a/target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch b/target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch
new file mode 100644
index 0000000..82c8bd5
--- /dev/null
+++ b/target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch
@@ -0,0 +1,252 @@ 
+Index: linux-3.18.2/arch/arm/boot/dts/Makefile
+===================================================================
+--- linux-3.18.2.orig/arch/arm/boot/dts/Makefile
++++ linux-3.18.2/arch/arm/boot/dts/Makefile
+@@ -441,6 +441,7 @@ dtb-$(CONFIG_MACH_SUN7I) += \
+ 	sun7i-a20-cubietruck.dtb \
+ 	sun7i-a20-hummingbird.dtb \
+ 	sun7i-a20-i12-tvbox.dtb \
++	sun7i-a20-lamobo-r1.dtb \
+ 	sun7i-a20-olinuxino-lime.dtb \
+ 	sun7i-a20-olinuxino-micro.dtb \
+ 	sun7i-a20-pcduino3.dtb
+Index: linux-3.18.2/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
+===================================================================
+--- /dev/null
++++ linux-3.18.2/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
+@@ -0,0 +1,235 @@
++/*
++ * Copyright 2015 Daniel Golle <daniel@makrotopia.org>
++ * Copyright 2014 Hans de Goede <hdegoede@redhat.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ *  a) This library is free software; you can redistribute it and/or
++ *     modify it under the terms of the GNU General Public License as
++ *     published by the Free Software Foundation; either version 2 of the
++ *     License, or (at your option) any later version.
++ *
++ *     This library is distributed in the hope that it will be useful,
++ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *     GNU General Public License for more details.
++ *
++ *     You should have received a copy of the GNU General Public
++ *     License along with this library; if not, write to the Free
++ *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
++ *     MA 02110-1301 USA
++ *
++ * Or, alternatively,
++ *
++ *  b) Permission is hereby granted, free of charge, to any person
++ *     obtaining a copy of this software and associated documentation
++ *     files (the "Software"), to deal in the Software without
++ *     restriction, including without limitation the rights to use,
++ *     copy, modify, merge, publish, distribute, sublicense, and/or
++ *     sell copies of the Software, and to permit persons to whom the
++ *     Software is furnished to do so, subject to the following
++ *     conditions:
++ *
++ *     The above copyright notice and this permission notice shall be
++ *     included in all copies or substantial portions of the Software.
++ *
++ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ *     OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/dts-v1/;
++/include/ "sun7i-a20.dtsi"
++/include/ "sunxi-common-regulators.dtsi"
++#include <dt-bindings/input/input.h>
++
++/ {
++	model = "Lamobo R1";
++	compatible = "lamobo,lamobo-r1", "allwinner,sun7i-a20";
++
++	soc@01c00000 {
++		spi0: spi@01c05000 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&spi0_pins_a>;
++			status = "okay";
++		};
++
++		mmc0: mmc@01c0f000 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_lamobo>;
++			vmmc-supply = <&reg_vcc3v3>;
++			bus-width = <4>;
++			cd-gpios = <&pio 7 10 0>; /* PH10 */
++			cd-inverted;
++			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 {
++			mmc0_cd_pin_lamobo: mmc0_cd_pin@0 {
++				allwinner,pins = "PH10";
++				allwinner,function = "gpio_in";
++				allwinner,drive = <0>;
++				allwinner,pull = <1>;
++			};
++
++			gmac_power_pin_lamobo: gmac_power_pin@0 {
++				allwinner,pins = "PH23";
++				allwinner,function = "gpio_out";
++				allwinner,drive = <0>;
++				allwinner,pull = <0>;
++			};
++
++			led_pins_lamobo: led_pins@0 {
++				allwinner,pins = "PH2";
++				allwinner,function = "gpio_out";
++				allwinner,drive = <1>;
++				allwinner,pull = <0>;
++			};
++		};
++
++		lradc: lradc@01c22800 {
++			allwinner,chan0-step = <200>;
++			linux,chan0-keycodes = <KEY_VOLUMEUP KEY_VOLUMEDOWN
++						KEY_MENU KEY_SEARCH KEY_HOME
++						KEY_ESC KEY_ENTER>;
++			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";
++		};
++
++		uart3: serial@01c28c00 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&uart3_pins_b>;
++			status = "okay";
++		};
++
++		uart7: serial@01c29c00 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&uart7_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";
++		};
++
++		gmac: ethernet@01c50000 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&gmac_pins_rgmii_a>;
++			phy = <&phy1>;
++			phy-mode = "rgmii";
++			phy-supply = <&reg_gmac_3v3>;
++			status = "okay";
++
++			phy1: ethernet-phy@1 {
++				reg = <1>;
++			};
++		};
++	};
++
++	leds {
++		compatible = "gpio-leds";
++		pinctrl-names = "default";
++		pinctrl-0 = <&led_pins_lamobo>;
++
++		green {
++			label = "lamobo:green:usr";
++			gpios = <&pio 7 24 0>;
++			default-state = "on";
++		};
++	};
++
++	reg_ahci_5v: ahci-5v {
++		status = "okay";
++	};
++
++	reg_usb1_vbus: usb1-vbus {
++		status = "okay";
++	};
++
++	reg_usb2_vbus: usb2-vbus {
++		status = "okay";
++	};
++
++	reg_gmac_3v3: gmac-3v3 {
++		compatible = "regulator-fixed";
++		pinctrl-names = "default";
++		pinctrl-0 = <&gmac_power_pin_lamobo>;
++		regulator-name = "gmac-3v3";
++		regulator-min-microvolt = <3300000>;
++		regulator-max-microvolt = <3300000>;
++		startup-delay-us = <100000>;
++		enable-active-high;
++		gpio = <&pio 7 23 0>;
++		status = "okay";
++	};
++};
diff --git a/target/linux/sunxi/profiles/lamobo-r1.mk b/target/linux/sunxi/profiles/lamobo-r1.mk
new file mode 100644
index 0000000..4bc1185
--- /dev/null
+++ b/target/linux/sunxi/profiles/lamobo-r1.mk
@@ -0,0 +1,19 @@ 
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/Lamobo_R1
+	NAME:=Lamobo R1
+	PACKAGES:=\
+		uboot-sunxi-Lamobo_R1 kmod-ata-sunxi kmod-rtl8192cu \
+		swconfig wpad-mini
+endef
+
+define Profile/Lamobo_R1/Description
+	Package set optimized for the Lamobo R1
+endef
+
+$(eval $(call Profile,Lamobo_R1))