03-tplink_tl-er2260t.patch 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738
  1. diff --git a/target/linux/ipq807x/base-files/etc/board.d/01_leds b/target/linux/ipq807x/base-files/etc/board.d/01_leds
  2. index e63ef959caff..fd998f0b3c21 100644
  3. --- a/target/linux/ipq807x/base-files/etc/board.d/01_leds
  4. +++ b/target/linux/ipq807x/base-files/etc/board.d/01_leds
  5. @@ -11,6 +11,10 @@ xiaomi,ax3600|\
  6. redmi,ax6)
  7. ucidef_set_led_netdev "wan" "WAN" "blue:network" "eth0"
  8. ;;
  9. +tplink,tl-er2260t)
  10. + ucidef_set_led_netdev "SFP1_active" "SFP1_ACTIVE" "green:sfp1" "eth5"
  11. + ucidef_set_led_netdev "SFP2_active" "SFP2_ACTIVE" "green:sfp2" "eth4"
  12. + ;;
  13. qnap,301w)
  14. ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "eth0"
  15. ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "eth1"
  16. diff --git a/target/linux/ipq807x/base-files/etc/board.d/02_network b/target/linux/ipq807x/base-files/etc/board.d/02_network
  17. index 40c2d1de1a34..99745cdf4933 100644
  18. --- a/target/linux/ipq807x/base-files/etc/board.d/02_network
  19. +++ b/target/linux/ipq807x/base-files/etc/board.d/02_network
  20. @@ -21,6 +21,9 @@ ipq807x_setup_interfaces()
  21. zte,mf269)
  22. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  23. ;;
  24. + tplink,tl-er2260t)
  25. + ucidef_set_interfaces_lan_wan "eth0 eth1 eth2 eth3 eth5" "eth4"
  26. + ;;
  27. tplink,xtr10890)
  28. ucidef_set_interfaces_lan_wan "eth0 eth1 eth2 eth3 eth4" "eth5"
  29. ;;
  30. diff --git a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
  31. index 09b243a2dde8..ea2e8becf10c 100644
  32. --- a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
  33. +++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
  34. @@ -46,6 +46,7 @@ platform_do_upgrade() {
  35. zte,mf269)
  36. nand_do_upgrade "$1"
  37. ;;
  38. + tplink,tl-er2260t|\
  39. tplink,xtr10890)
  40. nand_do_upgrade "$1"
  41. ;;
  42. diff --git a/target/linux/ipq807x/files-5.15/arch/arm64/boot/dts/qcom/ipq8070-tl-er2260t.dts b/target/linux/ipq807x/files-5.15/arch/arm64/boot/dts/qcom/ipq8070-tl-er2260t.dts
  43. new file mode 100644
  44. index 000000000000..fb6d4b831473
  45. --- /dev/null
  46. +++ b/target/linux/ipq807x/files-5.15/arch/arm64/boot/dts/qcom/ipq8070-tl-er2260t.dts
  47. @@ -0,0 +1,666 @@
  48. +// SPDX-License-Identifier: GPL-2.0-only
  49. +/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
  50. + */
  51. +
  52. +/dts-v1/;
  53. +
  54. +#include "ipq8074.dtsi"
  55. +#include "ipq8074-ess.dtsi"
  56. +#include "ipq8074-hk-cpu.dtsi"
  57. +#include <dt-bindings/gpio/gpio.h>
  58. +#include <dt-bindings/input/input.h>
  59. +#include <dt-bindings/leds/common.h>
  60. +/ {
  61. + #address-cells = <0x2>;
  62. + #size-cells = <0x2>;
  63. + model = "TP-Link TL-ER2260T";
  64. + compatible = "tplink,tl-er2260t", "qcom,ipq8074";
  65. + qcom,msm-id = <0x143 0x0>;
  66. + interrupt-parent = <&intc>;
  67. +
  68. + aliases {
  69. + led-boot = &led_sys;
  70. + led-failsafe = &led_sys;
  71. + led-running = &led_sys;
  72. + led-upgrade = &led_sys;
  73. + serial0 = &blsp1_uart5;
  74. +
  75. + ethernet0 = "/soc/dp1";
  76. + ethernet1 = "/soc/dp2";
  77. + ethernet2 = "/soc/dp3";
  78. + ethernet3 = "/soc/dp4";
  79. + ethernet4 = "/soc/dp5";
  80. + ethernet5 = "/soc/dp6";
  81. + };
  82. +
  83. + chosen {
  84. + stdout-path = "serial0";
  85. + bootargs-append = " root=/dev/ubiblock0_1";
  86. + };
  87. +
  88. + gpio_keys {
  89. + compatible = "gpio-keys";
  90. + pinctrl-0 = <&button_pins>;
  91. + pinctrl-names = "default";
  92. +
  93. + reset {
  94. + label = "reset";
  95. + linux,code = <KEY_RESTART>;
  96. + gpios = <&tlmm 50 GPIO_ACTIVE_LOW>;
  97. + linux,input-type = <1>;
  98. + debounce-interval = <60>;
  99. + };
  100. + };
  101. +
  102. + leds {
  103. + compatible = "gpio-leds";
  104. + pinctrl-0 = <&leds_pins>;
  105. + pinctrl-names = "default";
  106. +
  107. + led_sys: sys {
  108. + label = "green:sys";
  109. + gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
  110. + };
  111. +
  112. + usb {
  113. + label = "green:usb";
  114. + gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>;
  115. + linux,default-trigger = "usbport";
  116. + };
  117. +
  118. + sfp1-green {
  119. + label = "green:sfp1";
  120. + gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
  121. + };
  122. +
  123. + sfp2-green {
  124. + label = "green:sfp2";
  125. + gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
  126. + };
  127. + };
  128. +
  129. + spi@78b5000 {
  130. + status = "ok";
  131. + pinctrl-0 = <&spi_0_pins>;
  132. + pinctrl-names = "default";
  133. + cs-select = <0>;
  134. +
  135. + m25p80@0 {
  136. + compatible = "n25q128a11";
  137. + #address-cells = <1>;
  138. + #size-cells = <1>;
  139. + reg = <0>;
  140. + spi-max-frequency = <50000000>;
  141. + };
  142. + };
  143. +};
  144. +
  145. +&tlmm {
  146. + mdio_pins: mdio_pinmux {
  147. + mux_0 {
  148. + pins = "gpio68";
  149. + function = "mdc";
  150. + drive-strength = <8>;
  151. + bias-pull-up;
  152. + };
  153. + mux_1 {
  154. + pins = "gpio69";
  155. + function = "mdio";
  156. + drive-strength = <8>;
  157. + bias-pull-up;
  158. + };
  159. + mux_2 {
  160. + pins = "gpio44";
  161. + function = "gpio";
  162. + bias-pull-up;
  163. + };
  164. + };
  165. +
  166. + i2c_1_pins: i2c_1_pins {
  167. + pins = "gpio46", "gpio47";
  168. + function = "blsp2_i2c";
  169. + drive-strength = <8>;
  170. + bias-disable;
  171. + };
  172. +
  173. + button_pins: button_pins {
  174. + reset {
  175. + pins = "gpio50";
  176. + function = "gpio";
  177. + drive-strength = <8>;
  178. + bias-pull-up;
  179. + };
  180. + };
  181. +
  182. + uniphy_pins: uniphy_pinmux {
  183. + mux {
  184. + pins = "gpio60";
  185. + function = "rx2";
  186. + bias-disable;
  187. + };
  188. + sfp_tx {
  189. + pins = "gpio59";
  190. + function = "gpio";
  191. + drive-strength = <8>;
  192. + bias-pull-down;
  193. + output-high;
  194. + };
  195. + };
  196. +
  197. + leds_pins: leds_pinmux {
  198. + mux {
  199. + pins = "gpio21", "gpio22", "gpio65";
  200. + function = "gpio";
  201. + drive-strength = <8>;
  202. + bias-pull-down;
  203. + };
  204. + led_sfp1_active {
  205. + pins = "gpio51";
  206. + function = "gpio";
  207. + drive-strength = <8>;
  208. + bias-pull-down;
  209. + };
  210. + led_sfp2_active {
  211. + pins = "gpio55";
  212. + function = "gpio";
  213. + drive-strength = <8>;
  214. + bias-pull-down;
  215. + };
  216. + };
  217. +};
  218. +
  219. +&mdio {
  220. + status = "okay";
  221. + pinctrl-0 = <&mdio_pins>;
  222. + pinctrl-names = "default";
  223. + reset-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
  224. +
  225. + phy0:ethernet-phy@0 {
  226. + compatible = "ethernet-phy-ieee802.3-c22";
  227. + reg = <0>;
  228. + };
  229. + phy1:ethernet-phy@1 {
  230. + compatible = "ethernet-phy-ieee802.3-c22";
  231. + reg = <1>;
  232. + };
  233. + phy2:ethernet-phy@2 {
  234. + compatible = "ethernet-phy-ieee802.3-c22";
  235. + reg = <2>;
  236. + };
  237. + phy3:ethernet-phy@3 {
  238. + compatible = "ethernet-phy-ieee802.3-c22";
  239. + reg = <3>;
  240. + };
  241. + phy4: ethernet-phy@29 {
  242. + reg = <29>;
  243. + };
  244. + phy5: ethernet-phy@30 {
  245. + reg = <30>;
  246. + };
  247. +};
  248. +
  249. +&switch {
  250. + status = "okay";
  251. + switch_cpu_bmp = <0x1>; /* cpu port bitmap */
  252. + switch_lan_bmp = <0x3e>; /* lan port bitmap */
  253. + switch_wan_bmp = <0x40>; /* wan port bitmap */
  254. + switch_mac_mode = <0xb>; /* mac mode for uniphy instance0*/
  255. + switch_mac_mode1 = <0xe>; /* mac mode for uniphy instance1*/ //use 10g_baser mode for default
  256. + switch_mac_mode2 = <0xe>; /* mac mode for uniphy instance2*/ //use 10g_baser mode for default
  257. + bm_tick_mode = <0>; /* bm tick mode */
  258. + tm_tick_mode = <0>; /* tm tick mode */
  259. + cmnblk_clk = "external_50MHz";
  260. +
  261. + qcom,port_phyinfo {
  262. + port@0 {
  263. + port_id = <1>;
  264. + phy_address = <0>;
  265. + };
  266. + port@1 {
  267. + port_id = <2>;
  268. + phy_address = <1>;
  269. + };
  270. + port@2 {
  271. + port_id = <3>;
  272. + phy_address = <2>;
  273. + };
  274. + port@3 {
  275. + port_id = <4>;
  276. + phy_address = <3>;
  277. + };
  278. + port@4 {
  279. + port_id = <5>;
  280. + phy_address = <29>;//29
  281. + phy_i2c_address = <29>;//29
  282. + phy-i2c-mode; /*i2c access phy */
  283. + media-type = "sfp"; /* fiber mode */
  284. + };
  285. + port@5 {
  286. + port_id = <6>;
  287. + phy_address = <30>;//30
  288. + phy_i2c_address = <30>;//30
  289. + phy-i2c-mode; /*i2c access phy */
  290. + media-type = "sfp"; /* fiber mode */
  291. + };
  292. + };
  293. + port_scheduler_resource {
  294. + port@0 {
  295. + port_id = <0>;
  296. + ucast_queue = <0 143>;
  297. + mcast_queue = <256 271>;
  298. + l0sp = <0 35>;
  299. + l0cdrr = <0 47>;
  300. + l0edrr = <0 47>;
  301. + l1cdrr = <0 7>;
  302. + l1edrr = <0 7>;
  303. + };
  304. + port@1 {
  305. + port_id = <1>;
  306. + ucast_queue = <144 159>;
  307. + mcast_queue = <272 275>;
  308. + l0sp = <36 39>;
  309. + l0cdrr = <48 63>;
  310. + l0edrr = <48 63>;
  311. + l1cdrr = <8 11>;
  312. + l1edrr = <8 11>;
  313. + };
  314. + port@2 {
  315. + port_id = <2>;
  316. + ucast_queue = <160 175>;
  317. + mcast_queue = <276 279>;
  318. + l0sp = <40 43>;
  319. + l0cdrr = <64 79>;
  320. + l0edrr = <64 79>;
  321. + l1cdrr = <12 15>;
  322. + l1edrr = <12 15>;
  323. + };
  324. + port@3 {
  325. + port_id = <3>;
  326. + ucast_queue = <176 191>;
  327. + mcast_queue = <280 283>;
  328. + l0sp = <44 47>;
  329. + l0cdrr = <80 95>;
  330. + l0edrr = <80 95>;
  331. + l1cdrr = <16 19>;
  332. + l1edrr = <16 19>;
  333. + };
  334. + port@4 {
  335. + port_id = <4>;
  336. + ucast_queue = <192 207>;
  337. + mcast_queue = <284 287>;
  338. + l0sp = <48 51>;
  339. + l0cdrr = <96 111>;
  340. + l0edrr = <96 111>;
  341. + l1cdrr = <20 23>;
  342. + l1edrr = <20 23>;
  343. + };
  344. + port@5 {
  345. + port_id = <5>;
  346. + ucast_queue = <208 223>;
  347. + mcast_queue = <288 291>;
  348. + l0sp = <52 55>;
  349. + l0cdrr = <112 127>;
  350. + l0edrr = <112 127>;
  351. + l1cdrr = <24 27>;
  352. + l1edrr = <24 27>;
  353. + };
  354. + port@6 {
  355. + port_id = <6>;
  356. + ucast_queue = <224 239>;
  357. + mcast_queue = <292 295>;
  358. + l0sp = <56 59>;
  359. + l0cdrr = <128 143>;
  360. + l0edrr = <128 143>;
  361. + l1cdrr = <28 31>;
  362. + l1edrr = <28 31>;
  363. + };
  364. + port@7 {
  365. + port_id = <7>;
  366. + ucast_queue = <240 255>;
  367. + mcast_queue = <296 299>;
  368. + l0sp = <60 63>;
  369. + l0cdrr = <144 159>;
  370. + l0edrr = <144 159>;
  371. + l1cdrr = <32 35>;
  372. + l1edrr = <32 35>;
  373. + };
  374. + };
  375. + port_scheduler_config {
  376. + port@0 {
  377. + port_id = <0>;
  378. + l1scheduler {
  379. + group@0 {
  380. + sp = <0 1>; /*L0 SPs*/
  381. + /*cpri cdrr epri edrr*/
  382. + cfg = <0 0 0 0>;
  383. + };
  384. + };
  385. + l0scheduler {
  386. + group@0 {
  387. + /*unicast queues*/
  388. + ucast_queue = <0 4 8>;
  389. + /*multicast queues*/
  390. + mcast_queue = <256 260>;
  391. + /*sp cpri cdrr epri edrr*/
  392. + cfg = <0 0 0 0 0>;
  393. + };
  394. + group@1 {
  395. + ucast_queue = <1 5 9>;
  396. + mcast_queue = <257 261>;
  397. + cfg = <0 1 1 1 1>;
  398. + };
  399. + group@2 {
  400. + ucast_queue = <2 6 10>;
  401. + mcast_queue = <258 262>;
  402. + cfg = <0 2 2 2 2>;
  403. + };
  404. + group@3 {
  405. + ucast_queue = <3 7 11>;
  406. + mcast_queue = <259 263>;
  407. + cfg = <0 3 3 3 3>;
  408. + };
  409. + };
  410. + };
  411. + port@1 {
  412. + port_id = <1>;
  413. + l1scheduler {
  414. + group@0 {
  415. + sp = <36>;
  416. + cfg = <0 8 0 8>;
  417. + };
  418. + group@1 {
  419. + sp = <37>;
  420. + cfg = <1 9 1 9>;
  421. + };
  422. + };
  423. + l0scheduler {
  424. + group@0 {
  425. + ucast_queue = <144>;
  426. + ucast_loop_pri = <16>;
  427. + mcast_queue = <272>;
  428. + mcast_loop_pri = <4>;
  429. + cfg = <36 0 48 0 48>;
  430. + };
  431. + };
  432. + };
  433. + port@2 {
  434. + port_id = <2>;
  435. + l1scheduler {
  436. + group@0 {
  437. + sp = <40>;
  438. + cfg = <0 12 0 12>;
  439. + };
  440. + group@1 {
  441. + sp = <41>;
  442. + cfg = <1 13 1 13>;
  443. + };
  444. + };
  445. + l0scheduler {
  446. + group@0 {
  447. + ucast_queue = <160>;
  448. + ucast_loop_pri = <16>;
  449. + mcast_queue = <276>;
  450. + mcast_loop_pri = <4>;
  451. + cfg = <40 0 64 0 64>;
  452. + };
  453. + };
  454. + };
  455. + port@3 {
  456. + port_id = <3>;
  457. + l1scheduler {
  458. + group@0 {
  459. + sp = <44>;
  460. + cfg = <0 16 0 16>;
  461. + };
  462. + group@1 {
  463. + sp = <45>;
  464. + cfg = <1 17 1 17>;
  465. + };
  466. + };
  467. + l0scheduler {
  468. + group@0 {
  469. + ucast_queue = <176>;
  470. + ucast_loop_pri = <16>;
  471. + mcast_queue = <280>;
  472. + mcast_loop_pri = <4>;
  473. + cfg = <44 0 80 0 80>;
  474. + };
  475. + };
  476. + };
  477. + port@4 {
  478. + port_id = <4>;
  479. + l1scheduler {
  480. + group@0 {
  481. + sp = <48>;
  482. + cfg = <0 20 0 20>;
  483. + };
  484. + group@1 {
  485. + sp = <49>;
  486. + cfg = <1 21 1 21>;
  487. + };
  488. + };
  489. + l0scheduler {
  490. + group@0 {
  491. + ucast_queue = <192>;
  492. + ucast_loop_pri = <16>;
  493. + mcast_queue = <284>;
  494. + mcast_loop_pri = <4>;
  495. + cfg = <48 0 96 0 96>;
  496. + };
  497. + };
  498. + };
  499. + port@5 {
  500. + port_id = <5>;
  501. + l1scheduler {
  502. + group@0 {
  503. + sp = <52>;
  504. + cfg = <0 24 0 24>;
  505. + };
  506. + group@1 {
  507. + sp = <53>;
  508. + cfg = <1 25 1 25>;
  509. + };
  510. + };
  511. + l0scheduler {
  512. + group@0 {
  513. + ucast_queue = <208>;
  514. + ucast_loop_pri = <16>;
  515. + mcast_queue = <288>;
  516. + mcast_loop_pri = <4>;
  517. + cfg = <52 0 112 0 112>;
  518. + };
  519. + };
  520. + };
  521. + port@6 {
  522. + port_id = <6>;
  523. + l1scheduler {
  524. + group@0 {
  525. + sp = <56>;
  526. + cfg = <0 28 0 28>;
  527. + };
  528. + group@1 {
  529. + sp = <57>;
  530. + cfg = <1 29 1 29>;
  531. + };
  532. + };
  533. + l0scheduler {
  534. + group@0 {
  535. + ucast_queue = <224>;
  536. + ucast_loop_pri = <16>;
  537. + mcast_queue = <292>;
  538. + mcast_loop_pri = <4>;
  539. + cfg = <56 0 128 0 128>;
  540. + };
  541. + };
  542. + };
  543. + port@7 {
  544. + port_id = <7>;
  545. + l1scheduler {
  546. + group@0 {
  547. + sp = <60>;
  548. + cfg = <0 32 0 32>;
  549. + };
  550. + group@1 {
  551. + sp = <61>;
  552. + cfg = <1 33 1 33>;
  553. + };
  554. + };
  555. + l0scheduler {
  556. + group@0 {
  557. + ucast_queue = <240>;
  558. + ucast_loop_pri = <16>;
  559. + mcast_queue = <296>;
  560. + cfg = <60 0 144 0 144>;
  561. + };
  562. + };
  563. + };
  564. + };
  565. +};
  566. +
  567. +&soc {
  568. + dp1: dp1 {
  569. + device_type = "network";
  570. + compatible = "qcom,nss-dp";
  571. + qcom,id = <1>;
  572. + reg = <0x3a001000 0x200>;
  573. + qcom,mactype = <0>;
  574. + local-mac-address = [000000000000];
  575. + qcom,link-poll = <1>;
  576. + qcom,phy-mdio-addr = <0>;
  577. + phy-mode = "sgmii";
  578. + mdio-bus = <&mdio>;
  579. + };
  580. + dp2: dp2 {
  581. + device_type = "network";
  582. + compatible = "qcom,nss-dp";
  583. + qcom,id = <2>;
  584. + reg = <0x3a001200 0x200>;
  585. + qcom,mactype = <0>;
  586. + local-mac-address = [000000000000];
  587. + qcom,link-poll = <1>;
  588. + qcom,phy-mdio-addr = <1>;
  589. + phy-mode = "sgmii";
  590. + mdio-bus = <&mdio>;
  591. + };
  592. + dp3: dp3 {
  593. + device_type = "network";
  594. + compatible = "qcom,nss-dp";
  595. + qcom,id = <3>;
  596. + reg = <0x3a001400 0x200>;
  597. + qcom,mactype = <0>;
  598. + local-mac-address = [000000000000];
  599. + qcom,link-poll = <1>;
  600. + qcom,phy-mdio-addr = <2>;
  601. + phy-mode = "sgmii";
  602. + mdio-bus = <&mdio>;
  603. + };
  604. + dp4: dp4 {
  605. + device_type = "network";
  606. + compatible = "qcom,nss-dp";
  607. + qcom,id = <4>;
  608. + reg = <0x3a001600 0x200>;
  609. + qcom,mactype = <0>;
  610. + local-mac-address = [000000000000];
  611. + qcom,link-poll = <1>;
  612. + qcom,phy-mdio-addr = <3>;
  613. + phy-mode = "sgmii";
  614. + mdio-bus = <&mdio>;
  615. + };
  616. + dp5: dp5 {
  617. + device_type = "network";
  618. + compatible = "qcom,nss-dp";
  619. + qcom,id = <5>;
  620. + reg = <0x3a001800 0x200>;
  621. + qcom,mactype = <1>;
  622. + local-mac-address = [000000000000];
  623. + qcom,link-poll = <1>;
  624. + qcom,phy-mdio-addr = <29>;
  625. + phy-mode = "sgmii";
  626. + mdio-bus = <&mdio>;
  627. + };
  628. + dp6: dp6 {
  629. + device_type = "network";
  630. + compatible = "qcom,nss-dp";
  631. + qcom,id = <6>;
  632. + reg = <0x3a007000 0x3fff>;
  633. + qcom,mactype = <1>;
  634. + local-mac-address = [000000000000];
  635. + qcom,link-poll = <1>;
  636. + qcom,phy-mdio-addr = <30>;
  637. + phy-mode = "sgmii";
  638. + mdio-bus = <&mdio>;
  639. + };
  640. +
  641. + nss-macsec1 {
  642. + compatible = "qcom,nss-macsec";
  643. + phy_addr = <0x1c>;
  644. + phy_access_mode = <0x00>;
  645. + mdiobus = <&mdio>;
  646. + };
  647. +
  648. + watchdog@b017000 {
  649. + compatible = "qcom,kpss-wdt-ipq807x";
  650. + reg = <0xb017000 0x1000>;
  651. + reg-names = "kpss_wdt";
  652. + interrupt-names = "bark_irq";
  653. + interrupts = <0x00 0x03 0x00>;
  654. + clocks = <&sleep_clk>;
  655. + timeout-sec = <0x0a>;
  656. + wdt-max-timeout = <0x20>;
  657. + };
  658. +};
  659. +
  660. +&blsp1_i2c2 {
  661. + status = "okay";
  662. +};
  663. +
  664. +&blsp1_i2c3 {
  665. + pinctrl-0 = <&i2c_1_pins>;
  666. + pinctrl-names = "default";
  667. + status = "okay";
  668. +};
  669. +
  670. +&blsp1_uart5 {
  671. + status = "okay";
  672. +};
  673. +
  674. +&cryptobam {
  675. + status = "okay";
  676. +};
  677. +
  678. +&crypto {
  679. + status = "okay";
  680. +};
  681. +
  682. +&qpic_bam {
  683. + status = "okay";
  684. +};
  685. +
  686. +&qpic_nand {
  687. + status = "okay";
  688. +
  689. + nand@0 {
  690. + reg = <0>;
  691. + #address-cells = <1>;
  692. + #size-cells = <1>;
  693. + nand-ecc-strength = <4>;
  694. + nand-ecc-step-size = <512>;
  695. + nand-bus-width = <8>;
  696. +
  697. + partitions {
  698. + compatible = "qcom,smem-part";
  699. + };
  700. + };
  701. +};
  702. +
  703. +&qusb_phy_0 {
  704. + status = "okay";
  705. +};
  706. +
  707. +&ssphy_0 {
  708. + status = "okay";
  709. +};
  710. +
  711. +&usb_0 {
  712. + status = "okay";
  713. +};
  714. diff --git a/target/linux/ipq807x/image/generic.mk b/target/linux/ipq807x/image/generic.mk
  715. index b853ae4338d0..8cbf99f7586e 100644
  716. --- a/target/linux/ipq807x/image/generic.mk
  717. +++ b/target/linux/ipq807x/image/generic.mk
  718. @@ -45,6 +45,19 @@ define Device/zte_mf269
  719. endef
  720. TARGET_DEVICES += zte_mf269
  721. +define Device/tplink_tl-er2260t
  722. + $(call Device/FitImage)
  723. + $(call Device/UbiFit)
  724. + DEVICE_DTS := ipq8070-tl-er2260t
  725. + DEVICE_DTS_CONFIG := config@hk07
  726. + BLOCKSIZE := 128k
  727. + PAGESIZE := 2048
  728. + BOARD_NAME := tplink,tl-er2260t
  729. + DEVICE_TITLE := TPLINK TL-ER2260T
  730. + DEVICE_PACKAGES := qca-ssdk-shell
  731. +endef
  732. +TARGET_DEVICES += tplink_tl-er2260t
  733. +
  734. define Device/tplink_xtr10890
  735. $(call Device/FitImage)
  736. $(call Device/UbiFit)