summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2014-08-03 11:13:52 +0000
committerJohn Crispin <john@openwrt.org>2014-08-03 11:13:52 +0000
commit04e4ff282ad359485afe34deb658f36ffb34c16f (patch)
tree44531b4cdef2083cb397c53fe24ba3a0d1834766
parent44cb68c038ccef470e346c6fd9d0919a82fe68d9 (diff)
downloadmaster-31e0f0ae-04e4ff282ad359485afe34deb658f36ffb34c16f.tar.gz
master-31e0f0ae-04e4ff282ad359485afe34deb658f36ffb34c16f.tar.bz2
master-31e0f0ae-04e4ff282ad359485afe34deb658f36ffb34c16f.zip
ramips:support Lenovo AC1200 Wireless router
Lenovo AC1200 series has two types, Y1 and Y1S. Y1S has 256MB DDR2, Y1 only has 128MB and Y1 have no Giga Port. Signed-off-by: Lintel <lintel.huang@gmail.com> SVN-Revision: 41961
-rwxr-xr-xtarget/linux/ramips/base-files/etc/diag.sh4
-rwxr-xr-xtarget/linux/ramips/base-files/etc/uci-defaults/01_leds6
-rwxr-xr-xtarget/linux/ramips/base-files/etc/uci-defaults/02_network11
-rwxr-xr-xtarget/linux/ramips/base-files/lib/ramips.sh6
-rwxr-xr-xtarget/linux/ramips/base-files/lib/upgrade/platform.sh4
-rw-r--r--target/linux/ramips/dts/Y1.dts43
-rw-r--r--target/linux/ramips/dts/Y1.dtsi105
-rw-r--r--target/linux/ramips/dts/Y1S.dts79
-rw-r--r--target/linux/ramips/image/Makefile4
-rw-r--r--target/linux/ramips/mt7620a/config-3.102
10 files changed, 262 insertions, 2 deletions
diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh
index b095e52903..4aac473f5a 100755
--- a/target/linux/ramips/base-files/etc/diag.sh
+++ b/target/linux/ramips/base-files/etc/diag.sh
@@ -188,6 +188,10 @@ get_status_led() {
na930)
status_led="na930:blue:power"
;;
+ y1 | \
+ y1s)
+ status_led="lenovo:blue:power"
+ ;;
esac
}
diff --git a/target/linux/ramips/base-files/etc/uci-defaults/01_leds b/target/linux/ramips/base-files/etc/uci-defaults/01_leds
index d820aeff26..00207291a7 100755
--- a/target/linux/ramips/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/ramips/base-files/etc/uci-defaults/01_leds
@@ -199,6 +199,12 @@ case $board in
set_usb_led "wr8305rt:usb"
set_wifi_led "wr8305rt:wifi"
;;
+ y1 |\
+ y1s)
+ ucidef_set_led_default "power" "power" "lenovo:blue:power" "1"
+ set_usb_led "lenovo:blue:usb"
+ set_wifi_led "lenovo:blue:wifi"
+ ;;
esac
ucidef_commit_leds
diff --git a/target/linux/ramips/base-files/etc/uci-defaults/02_network b/target/linux/ramips/base-files/etc/uci-defaults/02_network
index be70698b70..95e728cec7 100755
--- a/target/linux/ramips/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ramips/base-files/etc/uci-defaults/02_network
@@ -184,6 +184,13 @@ ramips_setup_interfaces()
ucidef_add_switch_vlan "switch0" "2" "4 6t"
;;
+ y1 |\
+ y1s)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5 6t"
+ ucidef_add_switch_vlan "switch0" "2" "0 6t"
+ ;;
d105 | \
na930 | \
omni-emb-hpm|\
@@ -249,7 +256,9 @@ ramips_setup_macs()
dir-300-b7 | \
dir-320-b1 | \
psr-680w |\
- sl-r7205)
+ sl-r7205 |\
+ y1 |\
+ y1s)
lan_mac=$(cat /sys/class/net/eth0/address)
lan_mac=$(macaddr_setbit_la "$lan_mac")
wan_mac=$(macaddr_add "$lan_mac" 1)
diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
index a6dcbca2fe..a24842e29f 100755
--- a/target/linux/ramips/base-files/lib/ramips.sh
+++ b/target/linux/ramips/base-files/lib/ramips.sh
@@ -325,6 +325,12 @@ ramips_board_detect() {
*"ZBT WR8305RT")
name="wr8305rt"
;;
+ *"Lenovo Y1")
+ name="y1"
+ ;;
+ *"Lenovo Y1S")
+ name="y1s"
+ ;;
*)
name="generic"
;;
diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh
index a39596d2bf..08b3745425 100755
--- a/target/linux/ramips/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
@@ -96,7 +96,9 @@ platform_check_image() {
wrtnode |\
x5 |\
x8 |\
- zbt-wa05)
+ zbt-wa05 |\
+ y1 |\
+ y1s)
[ "$magic" != "27051956" ] && {
echo "Invalid image type."
return 1
diff --git a/target/linux/ramips/dts/Y1.dts b/target/linux/ramips/dts/Y1.dts
new file mode 100644
index 0000000000..0b7b08208a
--- /dev/null
+++ b/target/linux/ramips/dts/Y1.dts
@@ -0,0 +1,43 @@
+/dts-v1/;
+
+/include/ "Y1.dtsi"
+
+/ {
+ compatible = "lenovo,Y1", "ralink,mt7620a-soc";
+ model = "Lenovo Y1";
+
+ ethernet@10100000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ephy_pins>;
+ mtd-mac-address = <&factory 0x4>;
+ ralink,port-map = "llllw";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power1 {
+ label = "lenovo:blue:power";
+ gpios = <&gpio0 9 1>;
+ };
+ wlan1 {
+ label = "lenovo:blue:wifi";
+ gpios = <&gpio3 0 1>;
+ };
+ wlan2 {
+ label = "lenovo:blue:wifi5g";
+ gpios = <&gpio2 10 1>;
+ };
+ usb {
+ label = "lenovo:blue:usb";
+ gpios = <&gpio2 12 1>;
+ };
+ lan {
+ label = "lenovo:blue:lan";
+ gpios = <&gpio2 15 1>;
+ };
+ internet {
+ label = "lenovo:blue:internet";
+ gpios = <&gpio2 11 1>;
+ };
+ };
+};
diff --git a/target/linux/ramips/dts/Y1.dtsi b/target/linux/ramips/dts/Y1.dtsi
new file mode 100644
index 0000000000..06db2bb362
--- /dev/null
+++ b/target/linux/ramips/dts/Y1.dtsi
@@ -0,0 +1,105 @@
+/include/ "mt7620a.dtsi"
+
+/ {
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ palmbus@10000000 {
+ sysc@0 {
+ ralink,gpiomux = "i2c", "jtag";
+ ralink,uartmux = "gpio";
+ ralink,wdtmux = <1>;
+ };
+
+ gpio0: gpio@600 {
+ status = "okay";
+ };
+
+ gpio2: gpio@660 {
+ status = "okay";
+ };
+
+ gpio3: gpio@688 {
+ status = "okay";
+ };
+
+
+ spi@b00 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "w25q128";
+ reg = <0 0>;
+ linux,modalias = "m25p80", "w25q128";
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+ };
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ pcie@10140000 {
+ status = "okay";
+ };
+
+ wmac@10180000 {
+ ralink,mtd-eeprom = <&factory 0>;
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "uartf", "wled", "nd_sd";
+ ralink,function = "gpio";
+ };
+ pa {
+ ralink,group = "pa";
+ ralink,function = "pa";
+ };
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ reset {
+ label = "reset";
+ gpios = <&gpio0 11 1>;
+ linux,code = <0x198>;
+ };
+ };
+};
diff --git a/target/linux/ramips/dts/Y1S.dts b/target/linux/ramips/dts/Y1S.dts
new file mode 100644
index 0000000000..9ecac37225
--- /dev/null
+++ b/target/linux/ramips/dts/Y1S.dts
@@ -0,0 +1,79 @@
+/dts-v1/;
+
+/include/ "Y1.dtsi"
+
+/ {
+ compatible = "lenovo,Y1S", "ralink,mt7620a-soc";
+ model = "Lenovo Y1S";
+
+ ethernet@10100000 {
+ status = "okay";
+ mtd-mac-address = <&factory 0x4>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
+
+ ralink,port-map = "wllll";
+
+ port@4 {
+ status = "okay";
+ phy-handle = <&phy4>;
+ phy-mode = "rgmii";
+ };
+
+ port@5 {
+ status = "okay";
+ phy-handle = <&phy5>;
+ phy-mode = "rgmii";
+ };
+
+ mdio-bus {
+ status = "okay";
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ phy-mode = "rgmii";
+ };
+
+ phy5: ethernet-phy@5 {
+ reg = <5>;
+ phy-mode = "rgmii";
+ };
+ };
+ };
+
+ gsw@10110000 {
+ ralink,port4 = "gmac";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power1 {
+ label = "lenovo:yellow:power";
+ gpios = <&gpio0 14 1>;
+ };
+ power2 {
+ label = "lenovo:blue:power";
+ gpios = <&gpio0 9 1>;
+ };
+ wlan1 {
+ label = "lenovo:yellow:wifi";
+ gpios = <&gpio3 0 1>;
+ };
+ wlan2 {
+ label = "lenovo:blue:wifi";
+ gpios = <&gpio2 10 1>;
+ };
+ usb1 {
+ label = "lenovo:yellow:usb";
+ gpios = <&gpio2 13 1>;
+ };
+ usb2 {
+ label = "lenovo:blue:usb";
+ gpios = <&gpio2 12 1>;
+ };
+ internet {
+ label = "lenovo:blue:internet";
+ gpios = <&gpio2 11 1>;
+ };
+ };
+};
diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile
index 6dfaee5d81..20b4f6b8f3 100644
--- a/target/linux/ramips/image/Makefile
+++ b/target/linux/ramips/image/Makefile
@@ -722,6 +722,8 @@ Image/Build/Profile/DIR-810L=$(call BuildFirmware/CustomFlash/$(1),$(1),dir-810l
na930_mtd_size=20971520
Image/Build/Profile/NA930=$(call BuildFirmware/CustomFlash/$(1),$(1),na930,NA930,$(na930_mtd_size))
Image/Build/Profile/MZK-750DHP=$(call BuildFirmware/Default8M/$(1),$(1),mzk-750dhp,MZK-750DHP)
+Image/Build/Profile/Y1=$(call BuildFirmware/Default16M/$(1),$(1),Lenovo-y1,Y1)
+Image/Build/Profile/Y1S=$(call BuildFirmware/Default16M/$(1),$(1),Lenovo-y1s,Y1S)
ifeq ($(SUBTARGET),mt7620a)
define Image/Build/Profile/Default
@@ -736,6 +738,8 @@ define Image/Build/Profile/Default
$(call Image/Build/Profile/WHR1166D,$(1))
$(call Image/Build/Profile/MZK-750DHP,$(1))
$(call Image/Build/Profile/NA930,$(1))
+ $(call Image/Build/Profile/Y1,$(1))
+ $(call Image/Build/Profile/Y1S,$(1))
endef
endif
diff --git a/target/linux/ramips/mt7620a/config-3.10 b/target/linux/ramips/mt7620a/config-3.10
index 6805dd9efa..1a9889edc9 100644
--- a/target/linux/ramips/mt7620a/config-3.10
+++ b/target/linux/ramips/mt7620a/config-3.10
@@ -1,6 +1,7 @@
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_ARCH_HAS_RESET_CONTROLLER=y
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_REQUIRE_GPIOLIB=y
@@ -78,6 +79,7 @@ CONFIG_HAVE_PERF_EVENTS=y
CONFIG_HW_HAS_PCI=y
CONFIG_HW_RANDOM=m
CONFIG_HZ_PERIODIC=y
+CONFIG_ICPLUS_PHY=y
CONFIG_IMAGE_CMDLINE_HACK=y
CONFIG_INET_LRO=y
CONFIG_INITRAMFS_SOURCE=""