7-jdcloud_re-cs-05.patch 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. From 09d5ae78b47a9d893a570c1d5ef69cba5680565c Mon Sep 17 00:00:00 2001
  2. From: coolsnowwolf <[email protected]>
  3. Date: Thu, 16 Nov 2023 23:02:33 +0800
  4. Subject: [PATCH] mediatek: add support for JDCloud AX6000
  5. ---
  6. .../mediatek/dts/mt7986a-jdcloud-re-cs-05.dts | 281 ++++++++++++++++++
  7. .../filogic/base-files/etc/board.d/02_network | 6 +
  8. .../etc/hotplug.d/firmware/11-mt76-caldata | 3 +-
  9. .../base-files/lib/preinit/81_fix_eeprom | 3 +-
  10. .../base-files/lib/upgrade/platform.sh | 6 +-
  11. 5 files changed, 295 insertions(+), 4 deletions(-)
  12. create mode 100644 target/linux/mediatek/dts/mt7986a-jdcloud-re-cs-05.dts
  13. diff --git a/target/linux/mediatek/dts/mt7986a-jdcloud-re-cs-05.dts b/target/linux/mediatek/dts/mt7986a-jdcloud-re-cs-05.dts
  14. new file mode 100644
  15. index 0000000000000..00b4c79c6bf8f
  16. --- /dev/null
  17. +++ b/target/linux/mediatek/dts/mt7986a-jdcloud-re-cs-05.dts
  18. @@ -0,0 +1,275 @@
  19. +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
  20. +
  21. +/dts-v1/;
  22. +#include <dt-bindings/gpio/gpio.h>
  23. +#include <dt-bindings/input/input.h>
  24. +
  25. +#include "mt7986a.dtsi"
  26. +
  27. +/ {
  28. + model = "JDCloud RE-CS-05";
  29. + compatible = "jdcloud,re-cs-05", "mediatek,mt7986a";
  30. +
  31. + aliases {
  32. + serial0 = &uart0;
  33. + led-boot = &led_status_green;
  34. + led-failsafe = &led_status_red;
  35. + led-running = &led_status_blue;
  36. + led-upgrade = &led_status_red;
  37. + };
  38. +
  39. + chosen {
  40. + stdout-path = "serial0:115200n8";
  41. + bootargs = "console=ttyS0,115200n8 root=PARTLABEL=rootfs rootwait";
  42. + };
  43. +
  44. + keys {
  45. + compatible = "gpio-keys";
  46. +
  47. + reset {
  48. + label = "reset";
  49. + linux,code = <KEY_RESTART>;
  50. + gpios = <&pio 9 GPIO_ACTIVE_LOW>;
  51. + };
  52. +
  53. + wps {
  54. + label = "wps";
  55. + linux,code = <KEY_WPS_BUTTON>;
  56. + gpios = <&pio 10 GPIO_ACTIVE_LOW>;
  57. + };
  58. + };
  59. +
  60. + leds {
  61. + compatible = "gpio-leds";
  62. +
  63. + led_status_blue: blue {
  64. + label = "blue:status";
  65. + gpios = <&pio 7 GPIO_ACTIVE_HIGH>;
  66. + };
  67. +
  68. + led_status_red: red {
  69. + label = "red:status";
  70. + gpios = <&pio 11 GPIO_ACTIVE_HIGH>;
  71. + };
  72. +
  73. + led_status_green: green {
  74. + label = "green:status";
  75. + gpios = <&pio 12 GPIO_ACTIVE_LOW>;
  76. + };
  77. + };
  78. +
  79. + reg_1p8v: regulator-1p8v {
  80. + compatible = "regulator-fixed";
  81. + regulator-name = "fixed-1.8V";
  82. + regulator-min-microvolt = <1800000>;
  83. + regulator-max-microvolt = <1800000>;
  84. + regulator-boot-on;
  85. + regulator-always-on;
  86. + };
  87. +
  88. + reg_3p3v: regulator-3p3v {
  89. + compatible = "regulator-fixed";
  90. + regulator-name = "fixed-3.3V";
  91. + regulator-min-microvolt = <3300000>;
  92. + regulator-max-microvolt = <3300000>;
  93. + regulator-boot-on;
  94. + regulator-always-on;
  95. + };
  96. +};
  97. +
  98. +&crypto {
  99. + status = "okay";
  100. +};
  101. +
  102. +&eth {
  103. + status = "okay";
  104. +
  105. + gmac0: mac@0 {
  106. + compatible = "mediatek,eth-mac";
  107. + reg = <0>;
  108. + phy-mode = "2500base-x";
  109. +
  110. + fixed-link {
  111. + speed = <2500>;
  112. + full-duplex;
  113. + pause;
  114. + };
  115. + };
  116. +
  117. + gmac1: mac@1 {
  118. + compatible = "mediatek,eth-mac";
  119. + reg = <1>;
  120. + phy-handle = <&phy6>;
  121. + phy-mode = "2500base-x";
  122. + };
  123. +
  124. + mdio: mdio-bus {
  125. + #address-cells = <1>;
  126. + #size-cells = <0>;
  127. + };
  128. +};
  129. +
  130. +&mdio {
  131. + phy6: ethernet-phy@6 {
  132. + compatible = "ethernet-phy-ieee802.3-c45";
  133. + reg = <6>;
  134. + reset-assert-us = <100000>;
  135. + reset-deassert-us = <100000>;
  136. + reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
  137. + realtek,aldps-enable;
  138. + };
  139. +
  140. + switch: switch@0 {
  141. + compatible = "mediatek,mt7531";
  142. + reg = <31>;
  143. + reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
  144. + interrupt-controller;
  145. + #interrupt-cells = <1>;
  146. + interrupt-parent = <&pio>;
  147. + interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
  148. + };
  149. +};
  150. +
  151. +&switch {
  152. + ports {
  153. + #address-cells = <1>;
  154. + #size-cells = <0>;
  155. +
  156. + port@1 {
  157. + reg = <1>;
  158. + label = "lan1";
  159. + };
  160. +
  161. + port@2 {
  162. + reg = <2>;
  163. + label = "lan2";
  164. + };
  165. +
  166. + port@3 {
  167. + reg = <3>;
  168. + label = "lan3";
  169. + };
  170. +
  171. + port@4 {
  172. + reg = <4>;
  173. + label = "lan4";
  174. + };
  175. +
  176. + port@6 {
  177. + reg = <6>;
  178. + ethernet = <&gmac0>;
  179. + phy-mode = "2500base-x";
  180. +
  181. + fixed-link {
  182. + speed = <2500>;
  183. + full-duplex;
  184. + pause;
  185. + };
  186. + };
  187. + };
  188. +};
  189. +
  190. +&mmc0 {
  191. + pinctrl-names = "default", "state_uhs";
  192. + pinctrl-0 = <&mmc0_pins_default>;
  193. + pinctrl-1 = <&mmc0_pins_uhs>;
  194. + bus-width = <8>;
  195. + cap-mmc-highspeed;
  196. + hs400-ds-delay = <0x14014>;
  197. + max-frequency = <200000000>;
  198. + mmc-hs200-1_8v;
  199. + mmc-hs400-1_8v;
  200. + non-removable;
  201. + vmmc-supply = <&reg_3p3v>;
  202. + vqmmc-supply = <&reg_1p8v>;
  203. + status = "okay";
  204. +};
  205. +
  206. +&pio {
  207. + mmc0_pins_default: mmc0-pins {
  208. + mux {
  209. + function = "emmc";
  210. + groups = "emmc_51";
  211. + };
  212. + conf-cmd-dat {
  213. + pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
  214. + "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
  215. + "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
  216. + input-enable;
  217. + drive-strength = <4>;
  218. + mediatek,pull-up-adv = <1>; /* pull-up 10K */
  219. + };
  220. + conf-clk {
  221. + pins = "EMMC_CK";
  222. + drive-strength = <6>;
  223. + mediatek,pull-down-adv = <2>; /* pull-down 50K */
  224. + };
  225. + conf-ds {
  226. + pins = "EMMC_DSL";
  227. + mediatek,pull-down-adv = <2>; /* pull-down 50K */
  228. + };
  229. + conf-rst {
  230. + pins = "EMMC_RSTB";
  231. + drive-strength = <4>;
  232. + mediatek,pull-up-adv = <1>; /* pull-up 10K */
  233. + };
  234. + };
  235. +
  236. + mmc0_pins_uhs: mmc0-uhs-pins {
  237. + mux {
  238. + function = "emmc";
  239. + groups = "emmc_51";
  240. + };
  241. + conf-cmd-dat {
  242. + pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
  243. + "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
  244. + "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
  245. + input-enable;
  246. + drive-strength = <4>;
  247. + mediatek,pull-up-adv = <1>; /* pull-up 10K */
  248. + };
  249. + conf-clk {
  250. + pins = "EMMC_CK";
  251. + drive-strength = <6>;
  252. + mediatek,pull-down-adv = <2>; /* pull-down 50K */
  253. + };
  254. + conf-ds {
  255. + pins = "EMMC_DSL";
  256. + mediatek,pull-down-adv = <2>; /* pull-down 50K */
  257. + };
  258. + conf-rst {
  259. + pins = "EMMC_RSTB";
  260. + drive-strength = <4>;
  261. + mediatek,pull-up-adv = <1>; /* pull-up 10K */
  262. + };
  263. + };
  264. +
  265. + wf_2g_5g_pins: wf_2g_5g-pins {
  266. + mux {
  267. + function = "wifi";
  268. + groups = "wf_2g", "wf_5g";
  269. + };
  270. + conf {
  271. + pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
  272. + "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
  273. + "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
  274. + "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
  275. + "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
  276. + "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
  277. + "WF1_TOP_CLK", "WF1_TOP_DATA";
  278. + drive-strength = <4>;
  279. + };
  280. + };
  281. +};
  282. +
  283. +&trng {
  284. + status = "okay";
  285. +};
  286. +
  287. +&uart0 {
  288. + status = "okay";
  289. +};
  290. +
  291. +&watchdog {
  292. + status = "okay";
  293. +};
  294. diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
  295. index 2e978be6804bf..aac60c4ca509e 100644
  296. --- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
  297. +++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
  298. @@ -19,6 +19,7 @@ mediatek_setup_interfaces()
  299. confiabits,mt7981|\
  300. cudy,wr3000-v1|\
  301. jcg,q30-pro|\
  302. + jdcloud,re-cs-05|\
  303. qihoo,360t7|\
  304. routerich,ax3000)
  305. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" wan
  306. @@ -130,6 +131,11 @@ mediatek_setup_macs()
  307. lan_mac=$(mtd_get_mac_ascii u-boot-env mac)
  308. label_mac=$lan_mac
  309. ;;
  310. + jdcloud,re-cs-05)
  311. + wan_mac=$(mmc_get_mac_binary factory 0x24)
  312. + lan_mac=$(mmc_get_mac_binary factory 0x2a)
  313. + label_mac=$lan_mac
  314. + ;;
  315. qihoo,360t7)
  316. lan_mac=$(mtd_get_mac_ascii factory lanMac)
  317. wan_mac=$(macaddr_add "$lan_mac" 1)
  318. diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata
  319. index 8eda14f82b51d..82b1bb8f88ef6 100644
  320. --- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata
  321. +++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata
  322. @@ -55,7 +55,8 @@ case "$FIRMWARE" in
  323. ;;
  324. "mediatek/mt7986_eeprom_mt7976_dual.bin")
  325. case "$board" in
  326. - glinet,gl-mt6000)
  327. + glinet,gl-mt6000|\
  328. + jdcloud,re-cs-05)
  329. caldata_extract_mmc "factory" 0x0 0x1000
  330. ;;
  331. esac
  332. diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
  333. index e3b042c876d50..1a3f329f4cf66 100755
  334. --- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
  335. +++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
  336. @@ -109,7 +109,8 @@ platform_do_upgrade() {
  337. cudy,wr3000-v1)
  338. default_do_upgrade "$1"
  339. ;;
  340. - glinet,gl-mt6000)
  341. + glinet,gl-mt6000|\
  342. + jdcloud,re-cs-05)
  343. CI_KERNPART="kernel"
  344. CI_ROOTPART="rootfs"
  345. emmc_do_upgrade "$1"
  346. @@ -185,6 +186,7 @@ platform_copy_config() {
  347. esac
  348. ;;
  349. glinet,gl-mt6000|\
  350. + jdcloud,re-cs-05|\
  351. ubnt,unifi-6-plus)
  352. emmc_copy_config
  353. ;;
  354. --- a/target/linux/mediatek/image/filogic.mk
  355. +++ b/target/linux/mediatek/image/filogic.mk
  356. @@ -296,6 +296,21 @@
  357. endef
  358. TARGET_DEVICES += jcg_q30-pro
  359. +define Device/jdcloud_re-cs-05
  360. + DEVICE_VENDOR := JDCloud
  361. + DEVICE_MODEL := AX6000
  362. + DEVICE_DTS := mt7986a-jdcloud-re-cs-05
  363. + DEVICE_DTS_DIR := ../dts
  364. + DEVICE_PACKAGES := e2fsprogs f2fsck mkf2fs kmod-mt7986-firmware mt7986-wo-firmware
  365. + UBINIZE_OPTS := -E 5
  366. + BLOCKSIZE := 128k
  367. + PAGESIZE := 2048
  368. + IMAGES := sysupgrade.bin
  369. + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
  370. +endef
  371. +TARGET_DEVICES += jdcloud_re-cs-05
  372. +
  373. +
  374. define Device/netgear_wax220
  375. DEVICE_VENDOR := NETGEAR
  376. DEVICE_MODEL := WAX220