ramips:support Lenovo AC1200 Wireless router
authorJohn Crispin <john@openwrt.org>
Sun, 3 Aug 2014 11:16:00 +0000 (11:16 +0000)
committerJohn Crispin <john@openwrt.org>
Sun, 3 Aug 2014 11:16:00 +0000 (11:16 +0000)
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>
Backport of r41961

SVN-Revision: 41983

target/linux/ramips/base-files/etc/diag.sh
target/linux/ramips/base-files/etc/uci-defaults/01_leds
target/linux/ramips/base-files/etc/uci-defaults/02_network
target/linux/ramips/base-files/lib/ramips.sh
target/linux/ramips/base-files/lib/upgrade/platform.sh
target/linux/ramips/dts/Y1.dts [new file with mode: 0644]
target/linux/ramips/dts/Y1.dtsi [new file with mode: 0644]
target/linux/ramips/dts/Y1S.dts [new file with mode: 0644]
target/linux/ramips/image/Makefile
target/linux/ramips/mt7620a/config-3.10

index c9b7ded2ecc1093e158efacb75bfa6851d878d98..6f12f287e37f31a66850d0f4f43e6a4c3a215b60 100755 (executable)
@@ -185,6 +185,10 @@ get_status_led() {
        na930)
                status_led="na930:blue:power"
                ;;
+       y1 | \
+       y1s)
+               status_led="lenovo:blue:power"
+               ;;
        esac
 }
 
index e92a12e7ab0b7716a1f6bbaec88240ff88d5ae49..cbd3ea27e4174702c19b8e7efe091c6bc74c6640 100755 (executable)
@@ -195,6 +195,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
index 40c60fee5cf5121c639162e6209f79b5d84be21b..3ebf5449932c0624fa77c5538fdcc595e78d3c6a 100755 (executable)
@@ -177,6 +177,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|\
@@ -242,7 +249,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)
index f7e04b7391176c480ad257f795befdbf78d6461f..cadebdf4282e9173dd7153399c87194e8e9bbd7b 100755 (executable)
@@ -319,6 +319,12 @@ ramips_board_detect() {
        *"ZBT WR8305RT")
                name="wr8305rt"
                ;;
+       *"Lenovo Y1")
+               name="y1"
+               ;;
+       *"Lenovo Y1S")
+               name="y1s"
+               ;;
        *)
                name="generic"
                ;;
index 4a706910842e48d9251cf13ed7b55900344eeb0f..798a1ccd566b3d483e357559e8367c8b28597bf9 100755 (executable)
@@ -95,7 +95,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 (file)
index 0000000..0b7b082
--- /dev/null
@@ -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 (file)
index 0000000..06db2bb
--- /dev/null
@@ -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 (file)
index 0000000..9ecac37
--- /dev/null
@@ -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>;
+               };
+       };
+};
index 62992cd607d080a73101b892b4b43e51de7f15a8..f9cdff09502d178b69f3a0ece9af2138445ccbe0 100644 (file)
@@ -716,6 +716,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
@@ -730,6 +732,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
 
index 6805dd9efa3e9a9244acbbb41640b451883d3a1b..1a9889edc9fb2e867b2943fd051fb04b1f40d6dc 100644 (file)
@@ -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=""