From facb9642b3356f0adf89df4785abb2821de08e57 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 12 May 2019 23:01:19 +0800 Subject: [PATCH] ramips: add support for ASUS RT-AC54U --- package/firmware/ath10k-firmware/Makefile | 16 +- package/firmware/linux-firmware/qca_ath10k.mk | 105 ------------ .../ramips/base-files/etc/board.d/01_leds | 4 + .../ramips/base-files/etc/board.d/02_network | 1 + target/linux/ramips/base-files/lib/ramips.sh | 3 + target/linux/ramips/dts/RT-AC54U.dts | 153 ++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 8 + 7 files changed, 177 insertions(+), 113 deletions(-) delete mode 100644 package/firmware/linux-firmware/qca_ath10k.mk create mode 100644 target/linux/ramips/dts/RT-AC54U.dts diff --git a/package/firmware/ath10k-firmware/Makefile b/package/firmware/ath10k-firmware/Makefile index dca1520ec..529d8ece0 100644 --- a/package/firmware/ath10k-firmware/Makefile +++ b/package/firmware/ath10k-firmware/Makefile @@ -403,7 +403,7 @@ define Package/ath10k-firmware-qca4019/install $(PKG_BUILD_DIR)/QCA4019/hw1.0/board-2.bin \ $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA4019/hw1.0/3.5.3/firmware-5.bin_10.4-3.5.3-00057 \ + $(PKG_BUILD_DIR)/QCA4019/hw1.0/3.6/firmware-5.bin_10.4-3.6-00140 \ $(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin endef @@ -606,13 +606,13 @@ define Package/ath10k-firmware-qca9888-ct-htt/install $(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin endef -#$(eval $(call BuildPackage,ath10k-firmware-qca9887)) -#$(eval $(call BuildPackage,ath10k-firmware-qca9888)) -#$(eval $(call BuildPackage,ath10k-firmware-qca988x)) -#$(eval $(call BuildPackage,ath10k-firmware-qca99x0)) -#$(eval $(call BuildPackage,ath10k-firmware-qca6174)) -#$(eval $(call BuildPackage,ath10k-firmware-qca9984)) -#$(eval $(call BuildPackage,ath10k-firmware-qca4019)) +$(eval $(call BuildPackage,ath10k-firmware-qca9887)) +$(eval $(call BuildPackage,ath10k-firmware-qca9888)) +$(eval $(call BuildPackage,ath10k-firmware-qca988x)) +$(eval $(call BuildPackage,ath10k-firmware-qca99x0)) +$(eval $(call BuildPackage,ath10k-firmware-qca6174)) +$(eval $(call BuildPackage,ath10k-firmware-qca9984)) +$(eval $(call BuildPackage,ath10k-firmware-qca4019)) $(eval $(call BuildPackage,ath10k-firmware-qca9887-ct)) $(eval $(call BuildPackage,ath10k-firmware-qca9887-ct-htt)) diff --git a/package/firmware/linux-firmware/qca_ath10k.mk b/package/firmware/linux-firmware/qca_ath10k.mk deleted file mode 100644 index a7c5b13b8..000000000 --- a/package/firmware/linux-firmware/qca_ath10k.mk +++ /dev/null @@ -1,105 +0,0 @@ -QCA99X0_BOARD_REV:=ddcec9efd245da9365c474f513a855a55f3ac7fe -QCA99X0_BOARD_FILE:=board-2.bin.$(QCA99X0_BOARD_REV) - -define Download/qca99x0-board - URL:=https://source.codeaurora.org/quic/qsdk/oss/firmware/ath10k-firmware/plain/ath10k/QCA99X0/hw2.0 - URL_FILE:=board-2.bin?id=$(QCA99X0_BOARD_REV) - FILE:=$(QCA99X0_BOARD_FILE) - HASH:=03711ac21e60ef59d3815e235eb721c0c22851b5410299411085aa6f2af45401 -endef -$(eval $(call Download,qca99x0-board)) - -Package/ath10k-firmware-qca4019 = $(call Package/firmware-default,ath10k qca4019 firmware) -define Package/ath10k-firmware-qca4019/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA4019/hw1.0/board-2.bin \ - $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA4019/hw1.0/firmware-5.bin \ - $(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin -endef -$(eval $(call BuildPackage,ath10k-firmware-qca4019)) - -Package/ath10k-firmware-qca9887 = $(call Package/firmware-default,ath10k qca9887 firmware) -define Package/ath10k-firmware-qca9887/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA9887/hw1.0/firmware-5.bin \ - $(1)/lib/firmware/ath10k/QCA9887/hw1.0/firmware-5.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA9887/hw1.0/board.bin \ - $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin -endef -$(eval $(call BuildPackage,ath10k-firmware-qca9887)) - -Package/ath10k-firmware-qca9888 = $(call Package/firmware-default,ath10k qca9888 firmware) -define Package/ath10k-firmware-qca9888/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA9888/hw2.0/board-2.bin \ - $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA9888/hw2.0/firmware-5.bin \ - $(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin -endef -$(eval $(call BuildPackage,ath10k-firmware-qca9888)) - -Package/ath10k-firmware-qca988x = $(call Package/firmware-default,ath10k qca988x firmware) -define Package/ath10k-firmware-qca988x/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA988X/hw2.0/board.bin \ - $(1)/lib/firmware/ath10k/QCA988X/hw2.0/ - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA988X/hw2.0/firmware-5.bin \ - $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-5.bin -endef -$(eval $(call BuildPackage,ath10k-firmware-qca988x)) - -Package/ath10k-firmware-qca6174 = $(call Package/firmware-default,ath10k qca6174 firmware) -define Package/ath10k-firmware-qca6174/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA6174/hw2.1 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA6174/hw2.1/board-2.bin \ - $(1)/lib/firmware/ath10k/QCA6174/hw2.1/ - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA6174/hw2.1/firmware-5.bin \ - $(1)/lib/firmware/ath10k/QCA6174/hw2.1/firmware-5.bin - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA6174/hw3.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA6174/hw3.0/board-2.bin \ - $(1)/lib/firmware/ath10k/QCA6174/hw3.0/ - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA6174/hw3.0/firmware-6.bin \ - $(1)/lib/firmware/ath10k/QCA6174/hw3.0/firmware-6.bin -endef -$(eval $(call BuildPackage,ath10k-firmware-qca6174)) - -Package/ath10k-firmware-qca99x0 = $(call Package/firmware-default,ath10k qca99x0 firmware) -define Package/ath10k-firmware-qca99x0/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 - $(INSTALL_DATA) \ - $(DL_DIR)/$(QCA99X0_BOARD_FILE) \ - $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA99X0/hw2.0/board.bin \ - $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA99X0/hw2.0/firmware-5.bin \ - $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin -endef -$(eval $(call BuildPackage,ath10k-firmware-qca99x0)) - -Package/ath10k-firmware-qca9984 = $(call Package/firmware-default,ath10k qca9984 firmware) -define Package/ath10k-firmware-qca9984/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA9984/hw1.0/board-2.bin \ - $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/ath10k/QCA9984/hw1.0/firmware-5.bin \ - $(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin -endef -$(eval $(call BuildPackage,ath10k-firmware-qca9984)) - diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index 806e8b096..6f2e624a1 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -299,6 +299,10 @@ rp-n53) rt-ac51u) set_wifi_led "$boardname:blue:wifi" ;; +rt-ac54u) + ucidef_set_led_netdev "wifi2g" "Wifi 2.4G" "$boardname:blue:wifi" "wlan1" + set_usb_led "$boardname:blue:usb" + ;; rt-n12p) ucidef_set_led_netdev "lan" "lan" "$boardname:green:lan" eth0.1 ucidef_set_led_netdev "wan" "wan" "$boardname:green:wan" eth0.2 diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index 264fa8023..09c6f9b0c 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -198,6 +198,7 @@ ramips_setup_interfaces() ;; ar670w|\ ar725w|\ + rt-ac54u|\ rt-ac51u) ucidef_add_switch "switch0" \ "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0" diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 1bfa62d61..3a58b939b 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -442,6 +442,9 @@ ramips_board_detect() { *"RT-AC51U") name="rt-ac51u" ;; + *"RT-AC54U") + name="rt-ac54u" + ;; *"RT-G32 B1") name="rt-g32-b1" ;; diff --git a/target/linux/ramips/dts/RT-AC54U.dts b/target/linux/ramips/dts/RT-AC54U.dts new file mode 100644 index 000000000..7eff315d9 --- /dev/null +++ b/target/linux/ramips/dts/RT-AC54U.dts @@ -0,0 +1,153 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "mt7620a.dtsi" + +#include +#include + +/ { + compatible = "asus,rt-ac54u", "ralink,mt7620a-soc"; + model = "Asus RT-AC54U"; + + aliases { + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + leds { + compatible = "gpio-leds"; + + led_power: power { + label = "rt-ac54u:blue:power"; + gpios = <&gpio0 9 GPIO_ACTIVE_LOW>; + }; + + usb { + label = "rt-ac54u:blue:usb"; + gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; + trigger-sources = <&ohci_port1>, <&ehci_port1>; + linux,default-trigger = "usbport"; + }; + + wifi { + label = "rt-ac54u:blue:wifi"; + gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; + }; + }; + + keys { + compatible = "gpio-keys-polled"; + poll-interval = <20>; + + reset { + label = "reset"; + gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + wps { + label = "wps"; + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + gpio_export { + compatible = "gpio-export"; + #size-cells = <0>; + + enable-leds { + gpio-export,name = "enable-leds"; + gpio-export,output = <0>; + gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&spi0 { + status = "okay"; + + flash@0{ + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <10000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + 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 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x50000 0xfb0000>; + }; + }; + }; +}; + +&ehci { + status = "okay"; +}; + +&ohci { + status = "okay"; +}; + +&gpio3 { + status = "okay"; +}; + +ðernet { + status = "okay"; + mtd-mac-address = <&factory 0x4>; + mediatek,portmap = "wllll"; +}; + +&wmac { + ralink,mtd-eeprom = <&factory 0>; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "i2c", "wled", "uartf"; + ralink,function = "gpio"; + }; + }; +}; + +&pcie { + status = "okay"; +}; + +&pcie0 { + wifi@0,0 { + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x8000>; + led { + led-sources = <2>; + }; + }; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index f646437d7..c2ddebec7 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -536,6 +536,14 @@ define Device/rt-ac51u endef TARGET_DEVICES += rt-ac51u +define Device/rt-ac54u + DTS := RT-AC54U + IMAGE_SIZE := $(ralink_default_fw_size_16M) + DEVICE_TITLE := Asus RT-AC54U + DEVICE_PACKAGES := kmod-mt76x2 kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport +endef +TARGET_DEVICES += rt-ac54u + define Device/tiny-ac DTS := TINY-AC DEVICE_TITLE := Dovado Tiny AC