qcom-ipq4019-whw03.dts 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
  2. #include "qcom-ipq4019.dtsi"
  3. #include <dt-bindings/gpio/gpio.h>
  4. #include <dt-bindings/input/input.h>
  5. #include <dt-bindings/soc/qcom,tcsr.h>
  6. #include <dt-bindings/leds/common.h>
  7. / {
  8. model = "Linksys WHW03 (Velop)";
  9. compatible = "linksys,whw03", "qcom,ipq4019";
  10. aliases {
  11. led-boot = &led_blue;
  12. led-failsafe = &led_red;
  13. led-running = &led_blue;
  14. led-upgrade = &led_red;
  15. };
  16. // Default bootargs include rootfstype=ext4 and need to be overriden.
  17. chosen {
  18. bootargs-append = " rootfstype=squashfs";
  19. };
  20. soc {
  21. ess-tcsr@1953000 {
  22. compatible = "qcom,tcsr";
  23. reg = <0x1953000 0x1000>;
  24. qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
  25. };
  26. tcsr@1949000 {
  27. compatible = "qcom,tcsr";
  28. reg = <0x1949000 0x100>;
  29. qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
  30. };
  31. tcsr@194b000 {
  32. compatible = "qcom,tcsr";
  33. reg = <0x194b000 0x100>;
  34. qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
  35. };
  36. tcsr@1957000 {
  37. compatible = "qcom,tcsr";
  38. reg = <0x1957000 0x100>;
  39. qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
  40. };
  41. };
  42. keys {
  43. compatible = "gpio-keys";
  44. reset {
  45. label = "reset";
  46. gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
  47. linux,code = <KEY_RESTART>;
  48. };
  49. };
  50. };
  51. &tlmm {
  52. mdio_pins: mdio-pinmux {
  53. mux-1 {
  54. pins = "gpio6";
  55. function = "mdio";
  56. bias-pull-up;
  57. };
  58. mux-2 {
  59. pins = "gpio7";
  60. function = "mdc";
  61. bias-pull-up;
  62. };
  63. };
  64. sd_pins: sd-pinmux {
  65. pins = "gpio23", "gpio24", "gpio25", "gpio26",
  66. "gpio27", "gpio28", "gpio29", "gpio30",
  67. "gpio31", "gpio32";
  68. function = "sdio";
  69. };
  70. i2c_0_pins: i2c-0-pinmux {
  71. pins = "gpio58", "gpio59";
  72. function = "blsp_i2c0";
  73. bias-disable;
  74. };
  75. serial_0_pins: serial0-pinmux {
  76. pins = "gpio16", "gpio17";
  77. function = "blsp_uart0";
  78. bias-disable;
  79. };
  80. serial_1_pins: serial1-pinmux {
  81. pins = "gpio8", "gpio9", "gpio10", "gpio11";
  82. function = "blsp_uart1";
  83. bias-disable;
  84. };
  85. spi_0_pins: spi-0-pinmux {
  86. pins = "gpio12", "gpio13", "gpio14", "gpio15";
  87. function = "blsp_spi0";
  88. bias-disable;
  89. };
  90. spi_1_pins: spi-1-pinmux {
  91. mux-1 {
  92. pins = "gpio44", "gpio46", "gpio47";
  93. function = "blsp_spi1";
  94. bias-disable;
  95. };
  96. mux-2 {
  97. pins = "gpio45", "gpio49";
  98. function = "gpio";
  99. bias-pull-up;
  100. output-high;
  101. };
  102. host-interrupt {
  103. pins = "gpio42";
  104. function = "gpio";
  105. input;
  106. };
  107. };
  108. wifi_0_pins: wifi0-pinmux {
  109. pins = "gpio52";
  110. function = "gpio";
  111. drive-strength = <6>;
  112. bias-pull-up;
  113. output-high;
  114. };
  115. zigbee-0 {
  116. gpio-hog;
  117. gpios = <29 GPIO_ACTIVE_HIGH>;
  118. bias-disable;
  119. output-low;
  120. };
  121. zigbee-1 {
  122. gpio-hog;
  123. gpios = <50 GPIO_ACTIVE_HIGH>;
  124. bias-disable;
  125. input;
  126. };
  127. bluetooth-enable {
  128. gpio-hog;
  129. gpios = <32 GPIO_ACTIVE_HIGH>;
  130. output-high;
  131. };
  132. };
  133. &mdio {
  134. status = "okay";
  135. pinctrl-0 = <&mdio_pins>;
  136. pinctrl-names = "default";
  137. reset-gpios = <&tlmm 41 GPIO_ACTIVE_LOW>;
  138. };
  139. &ethphy0 {
  140. status = "disabled";
  141. };
  142. &ethphy1 {
  143. status = "disabled";
  144. };
  145. &ethphy2 {
  146. status = "disabled";
  147. };
  148. &watchdog {
  149. status = "okay";
  150. };
  151. &prng {
  152. status = "okay";
  153. };
  154. &blsp_dma {
  155. status = "okay";
  156. };
  157. &cryptobam {
  158. num-channels = <4>;
  159. qcom,num-ees = <2>;
  160. status = "okay";
  161. };
  162. &crypto {
  163. status = "okay";
  164. };
  165. &vqmmc {
  166. status = "okay";
  167. };
  168. &blsp1_uart1 {
  169. status = "okay";
  170. pinctrl-0 = <&serial_0_pins>;
  171. pinctrl-names = "default";
  172. };
  173. &blsp1_uart2 {
  174. status = "okay";
  175. pinctrl-0 = <&serial_1_pins>;
  176. pinctrl-names = "default";
  177. bluetooth {
  178. compatible = "csr,8811";
  179. enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
  180. };
  181. };
  182. &blsp1_spi2 {
  183. pinctrl-0 = <&spi_1_pins>;
  184. pinctrl-names = "default";
  185. status = "okay";
  186. cs-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
  187. zigbee@0 {
  188. #address-cells = <1>;
  189. #size-cells = <0>;
  190. compatible = "silabs,em3581";
  191. reg = <0>;
  192. spi-max-frequency = <12000000>;
  193. };
  194. };
  195. &blsp1_i2c3 {
  196. pinctrl-0 = <&i2c_0_pins>;
  197. pinctrl-names = "default";
  198. status = "okay";
  199. // RGB LEDs
  200. pca9633: led-controller@62 {
  201. compatible = "nxp,pca9633";
  202. nxp,hw-blink;
  203. reg = <0x62>;
  204. #address-cells = <1>;
  205. #size-cells = <0>;
  206. led_red: red@0 {
  207. color = <LED_COLOR_ID_RED>;
  208. function = LED_FUNCTION_INDICATOR;
  209. reg = <0>;
  210. };
  211. led_green: green@1 {
  212. color = <LED_COLOR_ID_GREEN>;
  213. function = LED_FUNCTION_INDICATOR;
  214. reg = <1>;
  215. };
  216. led_blue: blue@2 {
  217. color = <LED_COLOR_ID_BLUE>;
  218. function = LED_FUNCTION_INDICATOR;
  219. reg = <2>;
  220. };
  221. };
  222. };
  223. &sdhci {
  224. vqmmc-supply = <&vqmmc>;
  225. pinctrl-0 = <&sd_pins>;
  226. pinctrl-names = "default";
  227. cd-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
  228. sd-ldo-gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
  229. status = "okay";
  230. };
  231. &pcie0 {
  232. status = "okay";
  233. perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
  234. wake-gpios = <&tlmm 40 GPIO_ACTIVE_LOW>;
  235. clkreq-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
  236. bridge@0,0 {
  237. reg = <0x00000000 0 0 0 0>;
  238. #address-cells = <3>;
  239. #size-cells = <2>;
  240. ranges;
  241. wifi2: wifi@1,0 {
  242. compatible = "qcom,ath10k";
  243. reg = <0x00000000 0 0 0 0>;
  244. };
  245. };
  246. };
  247. &qpic_bam {
  248. status = "okay";
  249. };
  250. &gmac {
  251. status = "okay";
  252. };
  253. &switch {
  254. status = "okay";
  255. };
  256. &swport4 {
  257. status = "okay";
  258. label = "lan";
  259. };
  260. &swport5 {
  261. status = "okay";
  262. label = "wan";
  263. };
  264. &wifi0 {
  265. pinctrl-0 = <&wifi_0_pins>;
  266. pinctrl-names = "default";
  267. status = "okay";
  268. qcom,coexist-support = <1>;
  269. qcom,coexist-gpio-pin = <52>;
  270. qcom,ath10k-calibration-variant = "linksys-whw03";
  271. };
  272. &wifi1 {
  273. status = "okay";
  274. ieee80211-freq-limit = <5170000 5330000>;
  275. qcom,ath10k-calibration-variant = "linksys-whw03";
  276. };
  277. &wifi2 {
  278. status = "okay";
  279. ieee80211-freq-limit = <5490000 5835000>;
  280. qcom,ath10k-calibration-variant = "linksys-whw03";
  281. };