qcom-ipq8064-ea8500.dts 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. #include "qcom-ipq8064-v2.0.dtsi"
  2. #include <dt-bindings/input/input.h>
  3. / {
  4. model = "Linksys EA8500 WiFi Router";
  5. compatible = "linksys,ea8500", "qcom,ipq8064";
  6. memory@0 {
  7. reg = <0x42000000 0x1e000000>;
  8. device_type = "memory";
  9. };
  10. reserved-memory {
  11. #address-cells = <1>;
  12. #size-cells = <1>;
  13. ranges;
  14. rsvd@41200000 {
  15. reg = <0x41200000 0x300000>;
  16. no-map;
  17. };
  18. };
  19. aliases {
  20. mdio-gpio0 = &mdio0;
  21. led-boot = &power;
  22. led-failsafe = &power;
  23. led-running = &power;
  24. led-upgrade = &power;
  25. };
  26. chosen {
  27. bootargs = "console=ttyMSM0,115200n8";
  28. append-rootblock = "ubi.mtd="; /* append to bootargs adding the root deviceblock nbr from bootloader */
  29. };
  30. keys {
  31. compatible = "gpio-keys";
  32. pinctrl-0 = <&button_pins>;
  33. pinctrl-names = "default";
  34. wifi {
  35. label = "wifi";
  36. gpios = <&qcom_pinmux 67 GPIO_ACTIVE_LOW>;
  37. linux,code = <KEY_RFKILL>;
  38. };
  39. reset {
  40. label = "reset";
  41. gpios = <&qcom_pinmux 68 GPIO_ACTIVE_LOW>;
  42. linux,code = <KEY_RESTART >;
  43. };
  44. wps {
  45. label = "wps";
  46. gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>;
  47. linux,code = <KEY_WPS_BUTTON>;
  48. };
  49. };
  50. leds {
  51. compatible = "gpio-leds";
  52. pinctrl-0 = <&led_pins>;
  53. pinctrl-names = "default";
  54. wps {
  55. label = "ea8500:green:wps";
  56. gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
  57. };
  58. power: power {
  59. label = "ea8500:white:power";
  60. gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>;
  61. default-state = "keep";
  62. };
  63. wifi {
  64. label = "ea8500:green:wifi";
  65. gpios = <&qcom_pinmux 54 GPIO_ACTIVE_HIGH>;
  66. };
  67. };
  68. };
  69. &qcom_pinmux {
  70. button_pins: button_pins {
  71. mux {
  72. pins = "gpio65", "gpio67", "gpio68";
  73. function = "gpio";
  74. drive-strength = <2>;
  75. bias-pull-up;
  76. };
  77. };
  78. led_pins: led_pins {
  79. mux {
  80. pins = "gpio6", "gpio53", "gpio54";
  81. function = "gpio";
  82. drive-strength = <2>;
  83. bias-pull-up;
  84. };
  85. };
  86. };
  87. &gsbi4 {
  88. qcom,mode = <GSBI_PROT_I2C_UART>;
  89. status = "okay";
  90. serial@16340000 {
  91. status = "okay";
  92. };
  93. /*
  94. * The i2c device on gsbi4 should not be enabled.
  95. * On ipq806x designs gsbi4 i2c is meant for exclusive
  96. * RPM usage. Turning this on in kernel manifests as
  97. * i2c failure for the RPM.
  98. */
  99. };
  100. &sata_phy {
  101. status = "okay";
  102. };
  103. &sata {
  104. status = "okay";
  105. };
  106. &usb3_0 {
  107. status = "okay";
  108. };
  109. &usb3_1 {
  110. status = "okay";
  111. };
  112. &pcie0 {
  113. status = "okay";
  114. force_gen1 = <1>;
  115. };
  116. &pcie1 {
  117. status = "okay";
  118. };
  119. &pcie2 {
  120. status = "okay";
  121. };
  122. &nand_controller {
  123. status = "okay";
  124. pinctrl-0 = <&nand_pins>;
  125. pinctrl-names = "default";
  126. nand@0 {
  127. reg = <0>;
  128. compatible = "qcom,nandcs";
  129. nand-ecc-strength = <4>;
  130. nand-bus-width = <8>;
  131. nand-ecc-step-size = <512>;
  132. partitions {
  133. compatible = "fixed-partitions";
  134. #address-cells = <1>;
  135. #size-cells = <1>;
  136. SBL1@0 {
  137. label = "SBL1";
  138. reg = <0x0000000 0x0040000>;
  139. read-only;
  140. };
  141. MIBIB@40000 {
  142. label = "MIBIB";
  143. reg = <0x0040000 0x0140000>;
  144. read-only;
  145. };
  146. SBL2@180000 {
  147. label = "SBL2";
  148. reg = <0x0180000 0x0140000>;
  149. read-only;
  150. };
  151. SBL3@2c0000 {
  152. label = "SBL3";
  153. reg = <0x02c0000 0x0280000>;
  154. read-only;
  155. };
  156. DDRCONFIG@540000 {
  157. label = "DDRCONFIG";
  158. reg = <0x0540000 0x0120000>;
  159. read-only;
  160. };
  161. SSD@660000 {
  162. label = "SSD";
  163. reg = <0x0660000 0x0120000>;
  164. read-only;
  165. };
  166. TZ@780000 {
  167. label = "TZ";
  168. reg = <0x0780000 0x0280000>;
  169. read-only;
  170. };
  171. RPM@a00000 {
  172. label = "RPM";
  173. reg = <0x0a00000 0x0280000>;
  174. read-only;
  175. };
  176. art: art@c80000 {
  177. label = "art";
  178. reg = <0x0c80000 0x0140000>;
  179. read-only;
  180. };
  181. APPSBL@dc0000 {
  182. label = "APPSBL";
  183. reg = <0x0dc0000 0x0100000>;
  184. read-only;
  185. };
  186. u_env@ec0000 {
  187. label = "u_env";
  188. reg = <0x0ec0000 0x0040000>;
  189. };
  190. s_env@f00000 {
  191. label = "s_env";
  192. reg = <0x0f00000 0x0040000>;
  193. };
  194. devinfo@f40000 {
  195. label = "devinfo";
  196. reg = <0x0f40000 0x0040000>;
  197. };
  198. linux@f80000 {
  199. label = "kernel1";
  200. reg = <0x0f80000 0x2800000>; /* 3 MB spill to rootfs*/
  201. };
  202. rootfs@1280000 {
  203. label = "rootfs1";
  204. reg = <0x1280000 0x2500000>;
  205. };
  206. linux2@3780000 {
  207. label = "kernel2";
  208. reg = <0x3780000 0x2800000>;
  209. };
  210. rootfs2@3a80000 {
  211. label = "rootfs2";
  212. reg = <0x3a80000 0x2500000>;
  213. };
  214. syscfg@5f80000 {
  215. label = "syscfg";
  216. reg = <0x5f80000 0x2080000>;
  217. };
  218. };
  219. };
  220. };
  221. &mdio0 {
  222. status = "okay";
  223. pinctrl-0 = <&mdio0_pins>;
  224. pinctrl-names = "default";
  225. phy0: ethernet-phy@0 {
  226. reg = <0>;
  227. qca,ar8327-initvals = <
  228. 0x00004 0x7600000 /* PAD0_MODE */
  229. 0x00008 0x1000000 /* PAD5_MODE */
  230. 0x0000c 0x80 /* PAD6_MODE */
  231. 0x00010 0x2613a0 /* PWS_REG */
  232. 0x000e4 0x6a545 /* MAC_POWER_SEL */
  233. 0x000e0 0xc74164de /* SGMII_CTRL */
  234. 0x0007c 0x4e /* PORT0_STATUS */
  235. 0x00094 0x4e /* PORT6_STATUS */
  236. >;
  237. };
  238. phy4: ethernet-phy@4 {
  239. reg = <4>;
  240. };
  241. };
  242. &gmac1 {
  243. status = "okay";
  244. phy-mode = "rgmii";
  245. qcom,id = <1>;
  246. qcom,phy_mdio_addr = <4>;
  247. qcom,poll_required = <1>;
  248. qcom,rgmii_delay = <0>;
  249. qcom,emulation = <0>;
  250. pinctrl-0 = <&rgmii2_pins>;
  251. pinctrl-names = "default";
  252. fixed-link {
  253. speed = <1000>;
  254. full-duplex;
  255. };
  256. };
  257. /* LAN */
  258. &gmac2 {
  259. status = "okay";
  260. phy-mode = "sgmii";
  261. qcom,id = <2>;
  262. qcom,phy_mdio_addr = <0>; /* none */
  263. qcom,poll_required = <0>; /* no polling */
  264. qcom,rgmii_delay = <0>;
  265. qcom,emulation = <0>;
  266. fixed-link {
  267. speed = <1000>;
  268. full-duplex;
  269. };
  270. };
  271. &adm_dma {
  272. status = "okay";
  273. };