Browse Source

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>

Backport of r41961

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@41983 3c298f89-4303-0410-b956-a3cf2f4a3e73
test-seperate-ports
blogic 7 years ago
parent
commit
840d9febc5
  1. 4
      target/linux/ramips/base-files/etc/diag.sh
  2. 6
      target/linux/ramips/base-files/etc/uci-defaults/01_leds
  3. 11
      target/linux/ramips/base-files/etc/uci-defaults/02_network
  4. 6
      target/linux/ramips/base-files/lib/ramips.sh
  5. 4
      target/linux/ramips/base-files/lib/upgrade/platform.sh
  6. 43
      target/linux/ramips/dts/Y1.dts
  7. 105
      target/linux/ramips/dts/Y1.dtsi
  8. 79
      target/linux/ramips/dts/Y1S.dts
  9. 4
      target/linux/ramips/image/Makefile
  10. 2
      target/linux/ramips/mt7620a/config-3.10

4
target/linux/ramips/base-files/etc/diag.sh

@ -185,6 +185,10 @@ get_status_led() {
na930)
status_led="na930:blue:power"
;;
y1 | \
y1s)
status_led="lenovo:blue:power"
;;
esac
}

6
target/linux/ramips/base-files/etc/uci-defaults/01_leds

@ -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

11
target/linux/ramips/base-files/etc/uci-defaults/02_network

@ -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)

6
target/linux/ramips/base-files/lib/ramips.sh

@ -319,6 +319,12 @@ ramips_board_detect() {
*"ZBT WR8305RT")
name="wr8305rt"
;;
*"Lenovo Y1")
name="y1"
;;
*"Lenovo Y1S")
name="y1s"
;;
*)
name="generic"
;;

4
target/linux/ramips/base-files/lib/upgrade/platform.sh

@ -95,7 +95,9 @@ platform_check_image() {
wrtnode |\
x5 |\
x8 |\
zbt-wa05)
zbt-wa05 |\
y1 |\
y1s)
[ "$magic" != "27051956" ] && {
echo "Invalid image type."
return 1

43
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>;
};
};
};

105
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>;
};
};
};

79
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>;
};
};
};

4
target/linux/ramips/image/Makefile

@ -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

2
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=""

Loading…
Cancel
Save