ipq6000-mr7350.dts 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  1. // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
  2. /dts-v1/;
  3. #include "ipq6018.dtsi"
  4. #include "ipq6018-cp-cpu.dtsi"
  5. #include "ipq6018-ess.dtsi"
  6. #include <dt-bindings/gpio/gpio.h>
  7. #include <dt-bindings/input/input.h>
  8. #include <dt-bindings/leds/common.h>
  9. / {
  10. model = "Linksys MR7350";
  11. compatible = "linksys,mr7350", "qcom,ipq6018";
  12. aliases {
  13. serial0 = &blsp1_uart3;
  14. serial1 = &blsp1_uart2;
  15. led-boot = &led_system_blue;
  16. led-running = &led_system_blue;
  17. led-failsafe = &led_system_red;
  18. led-upgrade = &led_system_green;
  19. };
  20. chosen {
  21. stdout-path = "serial0:115200n8";
  22. bootargs-append = " root=/dev/ubiblock0_0";
  23. };
  24. keys {
  25. compatible = "gpio-keys";
  26. wps-button {
  27. label = "wps";
  28. linux,code = <KEY_WPS_BUTTON>;
  29. gpios = <&tlmm 56 GPIO_ACTIVE_LOW>;
  30. };
  31. reset-button {
  32. label = "reset";
  33. linux,code = <KEY_RESTART>;
  34. gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
  35. };
  36. };
  37. leds {
  38. compatible = "gpio-leds";
  39. usb {
  40. color = <LED_COLOR_ID_BLUE>;
  41. function = LED_FUNCTION_USB;
  42. gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
  43. trigger-sources = <&usb3_port1>, <&usb3_port2>;
  44. linux,default-trigger = "usbport";
  45. };
  46. };
  47. reg_usb_vbus: regulator-usb-vbus {
  48. compatible = "regulator-fixed";
  49. regulator-name = "usb_vbus";
  50. regulator-min-microvolt = <5000000>;
  51. regulator-max-microvolt = <5000000>;
  52. gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
  53. regulator-boot-on;
  54. };
  55. };
  56. &tlmm {
  57. hsuart_pins: hsuart-pins {
  58. mux {
  59. pins = "gpio69", "gpio70",
  60. "gpio71", "gpio72";
  61. function = "blsp1_uart";
  62. drive-strength = <8>;
  63. bias-disable;
  64. };
  65. };
  66. i2c_pins: i2c-pins {
  67. mux {
  68. pins = "gpio42", "gpio43";
  69. function = "blsp2_i2c";
  70. drive-strength = <8>;
  71. bias-pull-down;
  72. };
  73. };
  74. mdio_pins: mdio-state {
  75. mdc-pins {
  76. pins = "gpio64";
  77. function = "mdc";
  78. drive-strength = <8>;
  79. bias-pull-up;
  80. };
  81. mdio-pins {
  82. pins = "gpio65";
  83. function = "mdio";
  84. drive-strength = <8>;
  85. bias-pull-up;
  86. };
  87. };
  88. };
  89. &blsp1_i2c3 {
  90. pinctrl-0 = <&i2c_pins>;
  91. pinctrl-names = "default";
  92. status = "okay";
  93. led-controller@62 {
  94. compatible = "nxp,pca9633";
  95. #address-cells = <1>;
  96. #size-cells = <0>;
  97. reg = <0x62>;
  98. led_system_red: led@0 {
  99. reg = <0>;
  100. color = <LED_COLOR_ID_RED>;
  101. function = LED_FUNCTION_STATUS;
  102. };
  103. led_system_green: led@1 {
  104. reg = <1>;
  105. color = <LED_COLOR_ID_GREEN>;
  106. function = LED_FUNCTION_STATUS;
  107. };
  108. led_system_blue: led@2 {
  109. reg = <2>;
  110. color = <LED_COLOR_ID_BLUE>;
  111. function = LED_FUNCTION_STATUS;
  112. };
  113. };
  114. };
  115. &blsp1_uart2 {
  116. pinctrl-0 = <&hsuart_pins>;
  117. pinctrl-names = "default";
  118. status = "okay";
  119. };
  120. &blsp1_uart3 {
  121. pinctrl-0 = <&serial_3_pins>;
  122. pinctrl-names = "default";
  123. status = "okay";
  124. };
  125. &dwc_0 {
  126. #address-cells = <1>;
  127. #size-cells = <0>;
  128. usb3_port1: port@1 {
  129. reg = <1>;
  130. #trigger-source-cells = <0>;
  131. };
  132. usb3_port2: port@2 {
  133. reg = <2>;
  134. #trigger-source-cells = <0>;
  135. };
  136. };
  137. &qpic_bam {
  138. status = "okay";
  139. };
  140. &qpic_nand {
  141. status = "okay";
  142. nand@0 {
  143. reg = <0>;
  144. nand-ecc-strength = <4>;
  145. nand-ecc-step-size = <512>;
  146. nand-bus-width = <8>;
  147. partitions {
  148. compatible = "qcom,smem-part";
  149. #address-cells = <1>;
  150. #size-cells = <1>;
  151. partition-0-devinfo {
  152. label = "devinfo";
  153. read-only;
  154. #address-cells = <1>;
  155. #size-cells = <1>;
  156. nvmem-layout {
  157. compatible = "ascii-eq-delim-env";
  158. #address-cells = <1>;
  159. #size-cells = <1>;
  160. hw_mac_addr: hw_mac_addr {
  161. compatible = "mac-base";
  162. #nvmem-cell-cells = <1>;
  163. };
  164. };
  165. };
  166. };
  167. };
  168. };
  169. &qusb_phy_0 {
  170. status = "okay";
  171. vdd-supply = <&reg_usb_vbus>;
  172. };
  173. &ssphy_0 {
  174. status = "okay";
  175. };
  176. &usb3 {
  177. vbus-supply = <&reg_usb_vbus>;
  178. status = "okay";
  179. };
  180. &mdio {
  181. status = "okay";
  182. pinctrl-0 = <&mdio_pins>;
  183. pinctrl-names = "default";
  184. reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
  185. ethernet-phy-package@0 {
  186. compatible = "qcom,qca8075-package";
  187. #address-cells = <1>;
  188. #size-cells = <0>;
  189. reg = <0>;
  190. qca8075_0: ethernet-phy@0 {
  191. compatible = "ethernet-phy-ieee802.3-c22";
  192. reg = <0>;
  193. leds {
  194. #address-cells = <1>;
  195. #size-cells = <0>;
  196. led@0 {
  197. reg = <0>;
  198. color = <LED_COLOR_ID_ORANGE>;
  199. function = LED_FUNCTION_LAN;
  200. default-state = "keep";
  201. };
  202. led@1 {
  203. reg = <1>;
  204. color = <LED_COLOR_ID_GREEN>;
  205. function = LED_FUNCTION_LAN;
  206. default-state = "keep";
  207. };
  208. };
  209. };
  210. qca8075_1: ethernet-phy@1 {
  211. compatible = "ethernet-phy-ieee802.3-c22";
  212. reg = <1>;
  213. leds {
  214. #address-cells = <1>;
  215. #size-cells = <0>;
  216. led@0 {
  217. reg = <0>;
  218. color = <LED_COLOR_ID_ORANGE>;
  219. function = LED_FUNCTION_LAN;
  220. default-state = "keep";
  221. };
  222. led@1 {
  223. reg = <1>;
  224. color = <LED_COLOR_ID_GREEN>;
  225. function = LED_FUNCTION_LAN;
  226. default-state = "keep";
  227. };
  228. };
  229. };
  230. qca8075_2: ethernet-phy@2 {
  231. compatible = "ethernet-phy-ieee802.3-c22";
  232. reg = <2>;
  233. leds {
  234. #address-cells = <1>;
  235. #size-cells = <0>;
  236. led@0 {
  237. reg = <0>;
  238. color = <LED_COLOR_ID_ORANGE>;
  239. function = LED_FUNCTION_LAN;
  240. default-state = "keep";
  241. };
  242. led@1 {
  243. reg = <1>;
  244. color = <LED_COLOR_ID_GREEN>;
  245. function = LED_FUNCTION_LAN;
  246. default-state = "keep";
  247. };
  248. };
  249. };
  250. qca8075_3: ethernet-phy@3 {
  251. compatible = "ethernet-phy-ieee802.3-c22";
  252. reg = <3>;
  253. leds {
  254. #address-cells = <1>;
  255. #size-cells = <0>;
  256. led@0 {
  257. reg = <0>;
  258. color = <LED_COLOR_ID_ORANGE>;
  259. function = LED_FUNCTION_LAN;
  260. default-state = "keep";
  261. };
  262. led@1 {
  263. reg = <1>;
  264. color = <LED_COLOR_ID_GREEN>;
  265. function = LED_FUNCTION_LAN;
  266. default-state = "keep";
  267. };
  268. };
  269. };
  270. qca8075_4: ethernet-phy@4 {
  271. compatible = "ethernet-phy-ieee802.3-c22";
  272. reg = <4>;
  273. leds {
  274. #address-cells = <1>;
  275. #size-cells = <0>;
  276. led@0 {
  277. reg = <0>;
  278. color = <LED_COLOR_ID_ORANGE>;
  279. function = LED_FUNCTION_WAN;
  280. default-state = "keep";
  281. };
  282. led@1 {
  283. reg = <1>;
  284. color = <LED_COLOR_ID_GREEN>;
  285. function = LED_FUNCTION_WAN;
  286. default-state = "keep";
  287. };
  288. };
  289. };
  290. };
  291. };
  292. &switch {
  293. status = "okay";
  294. switch_lan_bmp = <(ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4)>;
  295. switch_wan_bmp = <ESS_PORT5>;
  296. switch_mac_mode = <MAC_MODE_PSGMII>;
  297. qcom,port_phyinfo {
  298. port@1 {
  299. port_id = <1>;
  300. phy_address = <0>;
  301. };
  302. port@2 {
  303. port_id = <2>;
  304. phy_address = <1>;
  305. };
  306. port@3 {
  307. port_id = <3>;
  308. phy_address = <2>;
  309. };
  310. port@4 {
  311. port_id = <4>;
  312. phy_address = <3>;
  313. };
  314. port@5 {
  315. port_id = <5>;
  316. phy_address = <4>;
  317. };
  318. };
  319. };
  320. &edma {
  321. status = "okay";
  322. };
  323. &dp1 {
  324. status = "okay";
  325. phy-handle = <&qca8075_0>;
  326. label = "lan1";
  327. nvmem-cells = <&hw_mac_addr 1>;
  328. nvmem-cell-names = "mac-address";
  329. };
  330. &dp2 {
  331. status = "okay";
  332. phy-handle = <&qca8075_1>;
  333. label = "lan2";
  334. nvmem-cells = <&hw_mac_addr 1>;
  335. nvmem-cell-names = "mac-address";
  336. };
  337. &dp3 {
  338. status = "okay";
  339. phy-handle = <&qca8075_2>;
  340. label = "lan3";
  341. nvmem-cells = <&hw_mac_addr 1>;
  342. nvmem-cell-names = "mac-address";
  343. };
  344. &dp4 {
  345. status = "okay";
  346. phy-handle = <&qca8075_3>;
  347. label = "lan4";
  348. nvmem-cells = <&hw_mac_addr 1>;
  349. nvmem-cell-names = "mac-address";
  350. };
  351. &dp5 {
  352. status = "okay";
  353. phy-handle = <&qca8075_4>;
  354. label = "wan";
  355. nvmem-cells = <&hw_mac_addr 0>;
  356. nvmem-cell-names = "mac-address";
  357. };
  358. &wifi {
  359. status = "okay";
  360. qcom,ath11k-calibration-variant = "Linksys-MR7350";
  361. qcom,ath11k-fw-memory-mode = <1>;
  362. };