0058-ar71xx-add-support-for-TP-LINK-TL-WR842N-ND-v3.patch 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. From: Matthias Schiffer <mschiffer@universe-factory.net>
  2. Date: Sun, 3 Jul 2016 22:14:18 +0200
  3. Subject: ar71xx: add support for TP-LINK TL-WR842N/ND v3
  4. - CPU QCA9531-BL3A
  5. - RAM: 64MB
  6. - flash: 16MB
  7. - USB
  8. AP143 platform, similar to tl-wr841n v10/v11, but with USB
  9. Signed-off-by: Cezary Jackiewicz <cezary@eko.one.pl>
  10. Backport of LEDE 0b45bec22c59cc6e6b2fa71dc9a88386c5587132
  11. diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
  12. index cb92349cab833179a87a195b94e2539cc5ce3e79..2c5d6af8f4e2c5ce71adc0b63d32b8506e01b6a2 100644
  13. --- a/target/linux/ar71xx/base-files/etc/diag.sh
  14. +++ b/target/linux/ar71xx/base-files/etc/diag.sh
  15. @@ -280,6 +280,7 @@ get_status_led() {
  16. tl-wr841n-v11 | \
  17. tl-wa830re-v2 | \
  18. tl-wr842n-v2 | \
  19. + tl-wr842n-v3 | \
  20. tl-wr941nd | \
  21. tl-wr941nd-v5)
  22. status_led="tp-link:green:system"
  23. diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
  24. index d81358d6bf9103ffeb2929b06d3ab01efffe931c..14aa7bc5e56c0d7be435ba3a1803416075eccb58 100644
  25. --- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
  26. +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
  27. @@ -523,6 +523,16 @@ tl-wr842n-v2)
  28. ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
  29. ;;
  30. +tl-wr842n-v3)
  31. + ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1"
  32. + ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10"
  33. + ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
  34. + ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x04"
  35. + ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02"
  36. + ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
  37. + ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
  38. + ;;
  39. +
  40. tl-wa801nd-v2 | \
  41. tl-wa901nd-v3)
  42. ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
  43. diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
  44. index ac3deb8aa2ed4717e2bd682cb4ffd7d32c50134f..ca9c5771d72681557f4139c0e58f4d7a656bd741 100755
  45. --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
  46. +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
  47. @@ -449,6 +449,7 @@ tl-wr741nd-v4 |\
  48. tl-wr841n-v7 |\
  49. tl-wr841n-v9 |\
  50. tl-wr841n-v11 |\
  51. +tl-wr842n-v3 |\
  52. whr-g301n |\
  53. whr-hp-g300n |\
  54. whr-hp-gn |\
  55. diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
  56. index f242980b3e401f2e9de2b8abe7e984b24a71db5a..fcd0bc35227de9b6a02c10c1bebf2413bdc555bf 100755
  57. --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
  58. +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
  59. @@ -869,6 +869,9 @@ ar71xx_board_detect() {
  60. *"TL-WR842N/ND v2")
  61. name="tl-wr842n-v2"
  62. ;;
  63. + *"TL-WR842N/ND v3")
  64. + name="tl-wr842n-v3"
  65. + ;;
  66. *TL-WR941ND)
  67. name="tl-wr941nd"
  68. ;;
  69. diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
  70. index d816f211891d6a259930f2781574504ea62b4e16..53284df5e2da19d8012361e9560244af898d3c2c 100755
  71. --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
  72. +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
  73. @@ -367,6 +367,7 @@ platform_check_image() {
  74. tl-wr841n-v9 | \
  75. tl-wr841n-v11 | \
  76. tl-wr842n-v2 | \
  77. + tl-wr842n-v3 | \
  78. tl-wr941nd | \
  79. tl-wr941nd-v5 | \
  80. tl-wr941nd-v6 | \
  81. diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c
  82. index 004f71961396cd33cfd381aca386706104a7b757..ebaed15a49113133f59f069325898a00f5612fef 100644
  83. --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c
  84. +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c
  85. @@ -1,9 +1,16 @@
  86. /*
  87. +<<<<<<< HEAD
  88. * TP-LINK TL-WR841N/ND v9/v11
  89. *
  90. * Copyright (C) 2014 Matthias Schiffer <mschiffer@universe-factory.net>
  91. * Copyright (C) 2016 Cezary Jackiewicz <cezary@eko.one.pl>
  92. * Copyright (C) 2016 Stijn Segers <francesco.borromini@gmail.com>
  93. +=======
  94. + * TP-LINK TL-WR841N/ND v9/TL-WR842N/ND v3
  95. + *
  96. + * Copyright (C) 2014 Matthias Schiffer <mschiffer@universe-factory.net>
  97. + * Copyright (C) 2016 Cezary Jackiewicz <cezary@eko.one.pl>
  98. +>>>>>>> ar71xx: add support for TP-LINK TL-WR842N/ND v3
  99. *
  100. * This program is free software; you can redistribute it and/or modify it
  101. * under the terms of the GNU General Public License version 2 as published
  102. @@ -49,6 +56,20 @@
  103. #define TL_WR841NV11_GPIO_BTN_RESET 12
  104. #define TL_WR841NV11_GPIO_BTN_WIFI 17
  105. +#define TL_WR842NV3_GPIO_LED_SYSTEM 2
  106. +#define TL_WR842NV3_GPIO_LED_WLAN 3
  107. +#define TL_WR842NV3_GPIO_LED_WAN_RED 4
  108. +#define TL_WR842NV3_GPIO_LED_WAN_GREEN 11
  109. +#define TL_WR842NV3_GPIO_LED_LAN1 12
  110. +#define TL_WR842NV3_GPIO_LED_LAN2 13
  111. +#define TL_WR842NV3_GPIO_LED_LAN3 14
  112. +#define TL_WR842NV3_GPIO_LED_LAN4 15
  113. +#define TL_WR842NV3_GPIO_LED_3G 16
  114. +#define TL_WR842NV3_GPIO_LED_WPS 17
  115. +
  116. +#define TL_WR842NV3_GPIO_BTN_RESET 1
  117. +#define TL_WR842NV3_GPIO_BTN_WIFI 0
  118. +
  119. #define TL_WR841NV9_KEYS_POLL_INTERVAL 20 /* msecs */
  120. #define TL_WR841NV9_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR841NV9_KEYS_POLL_INTERVAL)
  121. @@ -151,6 +172,68 @@ static struct gpio_led tl_wr841n_v11_leds_gpio[] __initdata = {
  122. },
  123. };
  124. +static struct gpio_led tl_wr842n_v3_leds_gpio[] __initdata = {
  125. + {
  126. + .name = "tp-link:green:lan1",
  127. + .gpio = TL_WR842NV3_GPIO_LED_LAN1,
  128. + .active_low = 1,
  129. + }, {
  130. + .name = "tp-link:green:lan2",
  131. + .gpio = TL_WR842NV3_GPIO_LED_LAN2,
  132. + .active_low = 1,
  133. + }, {
  134. + .name = "tp-link:green:lan3",
  135. + .gpio = TL_WR842NV3_GPIO_LED_LAN3,
  136. + .active_low = 1,
  137. + }, {
  138. + .name = "tp-link:green:lan4",
  139. + .gpio = TL_WR842NV3_GPIO_LED_LAN4,
  140. + .active_low = 1,
  141. + }, {
  142. + .name = "tp-link:green:wan",
  143. + .gpio = TL_WR842NV3_GPIO_LED_WAN_GREEN,
  144. + .active_low = 1,
  145. + }, {
  146. + .name = "tp-link:red:wan",
  147. + .gpio = TL_WR842NV3_GPIO_LED_WAN_RED,
  148. + .active_low = 1,
  149. + }, {
  150. + .name = "tp-link:green:wlan",
  151. + .gpio = TL_WR842NV3_GPIO_LED_WLAN,
  152. + .active_low = 1,
  153. + }, {
  154. + .name = "tp-link:green:system",
  155. + .gpio = TL_WR842NV3_GPIO_LED_SYSTEM,
  156. + .active_low = 1,
  157. + }, {
  158. + .name = "tp-link:green:3g",
  159. + .gpio = TL_WR842NV3_GPIO_LED_3G,
  160. + .active_low = 1,
  161. + }, {
  162. + .name = "tp-link:green:wps",
  163. + .gpio = TL_WR842NV3_GPIO_LED_WPS,
  164. + .active_low = 1,
  165. + },
  166. +};
  167. +
  168. +static struct gpio_keys_button tl_wr842n_v3_gpio_keys[] __initdata = {
  169. + {
  170. + .desc = "Reset button",
  171. + .type = EV_KEY,
  172. + .code = KEY_RESTART,
  173. + .debounce_interval = TL_WR841NV9_KEYS_DEBOUNCE_INTERVAL,
  174. + .gpio = TL_WR842NV3_GPIO_BTN_RESET,
  175. + .active_low = 1,
  176. + }, {
  177. + .desc = "WIFI button",
  178. + .type = EV_KEY,
  179. + .code = KEY_RFKILL,
  180. + .debounce_interval = TL_WR841NV9_KEYS_DEBOUNCE_INTERVAL,
  181. + .gpio = TL_WR842NV3_GPIO_BTN_WIFI,
  182. + .active_low = 1,
  183. + }
  184. +};
  185. +
  186. static void __init tl_ap143_setup(void)
  187. {
  188. u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
  189. @@ -212,3 +295,20 @@ static void __init tl_wr841n_v11_setup(void)
  190. MIPS_MACHINE(ATH79_MACH_TL_WR841N_V11, "TL-WR841N-v11", "TP-LINK TL-WR841N/ND v11",
  191. tl_wr841n_v11_setup);
  192. +
  193. +static void __init tl_wr842n_v3_setup(void)
  194. +{
  195. + tl_ap143_setup();
  196. +
  197. + ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr842n_v3_leds_gpio),
  198. + tl_wr842n_v3_leds_gpio);
  199. +
  200. + ath79_register_gpio_keys_polled(1, TL_WR841NV9_KEYS_POLL_INTERVAL,
  201. + ARRAY_SIZE(tl_wr842n_v3_gpio_keys),
  202. + tl_wr842n_v3_gpio_keys);
  203. +
  204. + ath79_register_usb();
  205. +}
  206. +
  207. +MIPS_MACHINE(ATH79_MACH_TL_WR842N_V3, "TL-WR842N-v3", "TP-LINK TL-WR842N/ND v3",
  208. + tl_wr842n_v3_setup);
  209. diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
  210. index 05eea0b16c362ba5f70c9f435dbe312087b319c2..d66bd25fe01544224a69e3f35f020f2e4130c8b3 100644
  211. --- a/target/linux/ar71xx/image/Makefile
  212. +++ b/target/linux/ar71xx/image/Makefile
  213. @@ -607,6 +607,13 @@ define Device/tl-wr842n-v2
  214. TPLINK_HWID := 0x8420002
  215. endef
  216. +define Device/tl-wr842n-v3
  217. + $(Device/tplink-16mlzma)
  218. + BOARDNAME := TL-WR842N-v3
  219. + DEVICE_PROFILE := TLWR842
  220. + TPLINK_HWID := 0x08420003
  221. +endef
  222. +
  223. define Device/tl-wr843nd-v1
  224. $(Device/tplink-4mlzma)
  225. BOARDNAME := TL-WR841N-v8
  226. @@ -620,7 +627,7 @@ define Device/tl-wr847n-v8
  227. DEVICE_PROFILE := TLWR841
  228. TPLINK_HWID := 0x08470008
  229. endef
  230. -TARGET_DEVICES += tl-wr841n-v8 tl-wr841n-v9 tl-wr841n-v10 tl-wr841n-v11 tl-wr842n-v2 tl-wr843nd-v1 tl-wr847n-v8
  231. +TARGET_DEVICES += tl-wr841n-v8 tl-wr841n-v9 tl-wr841n-v10 tl-wr841n-v11 tl-wr842n-v2 tl-wr842n-v3 tl-wr843nd-v1 tl-wr847n-v8
  232. define Device/tl-wr941nd-v5
  233. $(Device/tplink-4mlzma)
  234. diff --git a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
  235. index debde6e6a552e71b551d8c01ba06af03013407bf..d4b417bfb78606ddb84076ad8c927952e65118c2 100644
  236. --- a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
  237. +++ b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
  238. @@ -1,6 +1,6 @@
  239. --- a/arch/mips/ath79/machtypes.h
  240. +++ b/arch/mips/ath79/machtypes.h
  241. -@@ -16,22 +16,202 @@
  242. +@@ -16,22 +16,203 @@
  243. enum ath79_mach_type {
  244. ATH79_MACH_GENERIC = 0,
  245. @@ -148,6 +148,7 @@
  246. + ATH79_MACH_TL_WR841N_V9, /* TP-LINK TL-WR841N/ND v9 */
  247. + ATH79_MACH_TL_WR841N_V11, /* TP-LINK TL-WR841N/ND v11 */
  248. + ATH79_MACH_TL_WR842N_V2, /* TP-LINK TL-WR842N/ND v2 */
  249. ++ ATH79_MACH_TL_WR842N_V3, /* TP-LINK TL-WR842N/ND v3 */
  250. + ATH79_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */
  251. + ATH79_MACH_TL_WR941ND_V5, /* TP-LINK TL-WR941ND v5 */
  252. + ATH79_MACH_TL_WR941ND_V6, /* TP-LINK TL-WR941ND v6 */
  253. @@ -285,7 +286,7 @@
  254. config ATH79_MACH_AP121
  255. bool "Atheros AP121 reference board"
  256. select SOC_AR933X
  257. -@@ -11,62 +84,1050 @@ config ATH79_MACH_AP121
  258. +@@ -11,62 +84,1051 @@ config ATH79_MACH_AP121
  259. select ATH79_DEV_M25P80
  260. select ATH79_DEV_USB
  261. select ATH79_DEV_WMAC
  262. @@ -1236,13 +1237,14 @@
  263. + select ATH79_DEV_WMAC
  264. +
  265. +config ATH79_MACH_TL_WR841N_V9
  266. -+ bool "TP-LINK TL-WR841N/ND v9 support"
  267. -+ select SOC_QCA953X
  268. -+ select ATH79_DEV_ETH
  269. -+ select ATH79_DEV_GPIO_BUTTONS
  270. -+ select ATH79_DEV_LEDS_GPIO
  271. -+ select ATH79_DEV_M25P80
  272. -+ select ATH79_DEV_WMAC
  273. ++ bool "TP-LINK TL-WR841N/ND v9/TL-WR842N/ND v3 support"
  274. ++ select SOC_QCA953X
  275. ++ select ATH79_DEV_ETH
  276. ++ select ATH79_DEV_GPIO_BUTTONS
  277. ++ select ATH79_DEV_LEDS_GPIO
  278. ++ select ATH79_DEV_M25P80
  279. ++ select ATH79_DEV_USB
  280. ++ select ATH79_DEV_WMAC
  281. +
  282. +config ATH79_MACH_TL_WR941ND
  283. + bool "TP-LINK TL-WR941ND support"
  284. @@ -1365,7 +1367,7 @@
  285. config ATH79_MACH_UBNT_XM
  286. bool "Ubiquiti Networks XM/UniFi boards"
  287. -@@ -83,6 +1144,117 @@ config ATH79_MACH_UBNT_XM
  288. +@@ -83,6 +1145,117 @@ config ATH79_MACH_UBNT_XM
  289. Say 'Y' here if you want your kernel to support the
  290. Ubiquiti Networks XM (rev 1.0) board.
  291. @@ -1483,7 +1485,7 @@
  292. endmenu
  293. config SOC_AR71XX
  294. -@@ -124,7 +1296,10 @@ config ATH79_DEV_DSA
  295. +@@ -124,7 +1297,10 @@ config ATH79_DEV_DSA
  296. config ATH79_DEV_ETH
  297. def_bool n
  298. @@ -1495,7 +1497,7 @@
  299. def_bool n
  300. config ATH79_DEV_GPIO_BUTTONS
  301. -@@ -154,6 +1329,11 @@ config ATH79_PCI_ATH9K_FIXUP
  302. +@@ -154,6 +1330,11 @@ config ATH79_PCI_ATH9K_FIXUP
  303. def_bool n
  304. config ATH79_ROUTERBOOT