From 0c5a53255307ab532b2f875db452803b7f297874 Mon Sep 17 00:00:00 2001 From: Dmitry Tunin Date: Mon, 13 Aug 2018 17:14:54 +0300 Subject: [PATCH] ath79: add support for TP-Link MR-3040 v2 Add support for the ar71xx supported TP-Link MR-3040 v2. Signed-off-by: Dmitry Tunin --- .../ath79/base-files/etc/board.d/01_leds | 3 +- .../ath79/base-files/etc/board.d/02_network | 1 + .../ath79/dts/ar9331_tplink_tl-mr3040-v2.dts | 165 ++++++++++++++++++ target/linux/ath79/image/tiny-tp-link.mk | 10 ++ 4 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 target/linux/ath79/dts/ar9331_tplink_tl-mr3040-v2.dts diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds index 0d8222f650..a42bde530f 100755 --- a/target/linux/ath79/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/base-files/etc/board.d/01_leds @@ -53,7 +53,8 @@ tplink,re450-v2) ucidef_set_led_netdev "lan_data" "LAN Data" "tp-link:green:lan_data" "eth0" "tx rx" ucidef_set_led_netdev "lan_link" "LAN Link" "tp-link:green:lan_link" "eth0" "link" ;; -tplink,tl-mr3020-v1) +tplink,tl-mr3020-v1|\ +tplink,tl-mr3040-v2) ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0" ;; tplink,tl-wr1043nd-v4) diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network index 5ff4b192fc..202c9bb8eb 100755 --- a/target/linux/ath79/base-files/etc/board.d/02_network +++ b/target/linux/ath79/base-files/etc/board.d/02_network @@ -17,6 +17,7 @@ ath79_setup_interfaces() tplink,re450-v2|\ tplink,tl-mr10u|\ tplink,tl-mr3020-v1|\ + tplink,tl-mr3040-v2|\ tplink,tl-wr703n|\ ubnt,unifiac-lite|\ ubnt,unifiac-mesh|\ diff --git a/target/linux/ath79/dts/ar9331_tplink_tl-mr3040-v2.dts b/target/linux/ath79/dts/ar9331_tplink_tl-mr3040-v2.dts new file mode 100644 index 0000000000..ff7ed9f21a --- /dev/null +++ b/target/linux/ath79/dts/ar9331_tplink_tl-mr3040-v2.dts @@ -0,0 +1,165 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; + +#include +#include + +#include "ar9331.dtsi" + +/ { + model = "TP-Link TL-MR3040 V2"; + compatible = "tplink,tl-mr3040-v2", "qca,ar9331"; + + aliases { + led-boot = &led_lan; + led-failsafe = &led_lan; + }; + + leds { + compatible = "gpio-leds"; + + wlan { + label = "tp-link:green:wlan"; + gpios = <&gpio 26 GPIO_ACTIVE_LOW>; + default-state = "off"; + linux,default-trigger = "phy0tpt"; + }; + + led_lan: lan { + label = "tp-link:green:lan"; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + led3g { + label = "tp-link:green:3g"; + gpios = <&gpio 27 GPIO_ACTIVE_LOW>; + default-state = "off"; + trigger-sources = <&hub_port>; + linux,default-trigger = "usbport"; + }; + }; + + keys { + compatible = "gpio-keys-polled"; + poll-interval = <20>; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 11 GPIO_ACTIVE_HIGH>; + debounce-interval = <60>; + }; + + sw1 { + label = "sw1"; + linux,input-type = ; + linux,code = ; + gpios = <&gpio 19 GPIO_ACTIVE_HIGH>; + debounce-interval = <60>; + }; + + sw2 { + label = "sw2"; + linux,input-type = ; + linux,code = ; + gpios = <&gpio 20 GPIO_ACTIVE_HIGH>; + debounce-interval = <60>; + }; + }; + + reg_usb_vbus: reg_usb_vbus { + compatible = "regulator-fixed"; + regulator-name = "usb_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio 18 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; +}; + +&ref { + clock-frequency = <25000000>; +}; + +&uart { + status = "okay"; +}; + +&gpio { + status = "okay"; +}; + +&usb { + #address-cells = <1>; + #size-cells = <0>; + dr_mode = "host"; + vbus-supply = <®_usb_vbus>; + status = "okay"; + + hub_port: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; + +&usb_phy { + status = "okay"; +}; + +&spi { + num-chipselects = <1>; + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + spi-max-frequency = <104000000>; + reg = <0>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + uboot: partition@0 { + label = "u-boot"; + reg = <0x000000 0x020000>; + read-only; + }; + + partition@20000 { + label = "firmware"; + reg = <0x020000 0x3d0000>; + }; + + art: partition@3f0000 { + label = "art"; + reg = <0x3f0000 0x010000>; + read-only; + }; + }; + }; +}; + +ð0 { + status = "okay"; + + mtd-mac-address = <&uboot 0x1fc00>; + gmac-config { + device = <&gmac>; + + switch-phy-addr-swap = <0>; + switch-phy-swap = <0>; + }; +}; + +ð1 { + status = "okay"; + compatible = "syscon", "simple-mfd"; +}; + +&wmac { + status = "okay"; + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&uboot 0x1fc00>; +}; diff --git a/target/linux/ath79/image/tiny-tp-link.mk b/target/linux/ath79/image/tiny-tp-link.mk index b358d3153e..6ccc9d7dba 100644 --- a/target/linux/ath79/image/tiny-tp-link.mk +++ b/target/linux/ath79/image/tiny-tp-link.mk @@ -21,6 +21,16 @@ define Device/tplink_tl-mr3020-v1 endef TARGET_DEVICES += tplink_tl-mr3020-v1 +define Device/tplink_tl-mr3040-v2 + $(Device/tplink-4mlzma) + ATH_SOC := ar9331 + DEVICE_TITLE := TP-LINK TL-MR3040 v2 + DEVICE_PACKAGES := kmod-usb-core kmod-usb-chipidea2 kmod-usb-ledtrig-usbport + TPLINK_HWID := 0x30400002 + SUPPORTED_DEVICES += tl-mr3040-v2 +endef +TARGET_DEVICES += tplink_tl-mr3040-v2 + define Device/tplink_tl-mr3220-v1 $(Device/tplink-4m) ATH_SOC := ar7241