qcom-ipq8068-mr52.dts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. // SPDX-License-Identifier: GPL-2.0 OR MIT
  2. #include "qcom-ipq8068-cryptid-common.dtsi"
  3. #include <dt-bindings/input/input.h>
  4. / {
  5. model = "Meraki MR52";
  6. compatible = "meraki,mr52", "qcom,ipq8064";
  7. aliases {
  8. serial1 = &gsbi1_serial;
  9. mdio-gpio0 = &mdio_gpio0;
  10. ethernet0 = &gmac2;
  11. ethernet1 = &gmac3;
  12. led-boot = &led_active;
  13. led-failsafe = &led_power;
  14. led-running = &led_active;
  15. led-upgrade = &led_active;
  16. };
  17. keys {
  18. compatible = "gpio-keys";
  19. pinctrl-0 = <&button_pins>;
  20. pinctrl-names = "default";
  21. reset {
  22. label = "reset";
  23. gpios = <&qcom_pinmux 25 GPIO_ACTIVE_LOW>;
  24. linux,code = <KEY_RESTART>;
  25. debounce-interval = <60>;
  26. wakeup-source;
  27. };
  28. };
  29. leds {
  30. compatible = "gpio-leds";
  31. pinctrl-0 = <&led_pins>;
  32. pinctrl-names = "default";
  33. led_power: power {
  34. label = "orange:power";
  35. gpios = <&qcom_pinmux 19 GPIO_ACTIVE_HIGH>;
  36. };
  37. lan2_green {
  38. label = "green:lan2";
  39. gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>;
  40. };
  41. lan1_green {
  42. label = "green:lan1";
  43. gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>;
  44. };
  45. led_active: active {
  46. label = "white:active";
  47. gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>;
  48. };
  49. lan2_orange {
  50. label = "orange:lan2";
  51. gpios = <&qcom_pinmux 60 GPIO_ACTIVE_HIGH>;
  52. };
  53. lan1_orange {
  54. label = "orange:lan1";
  55. gpios = <&qcom_pinmux 62 GPIO_ACTIVE_HIGH>;
  56. };
  57. };
  58. };
  59. &gmac2 {
  60. status = "okay";
  61. qcom,id = <2>;
  62. mdiobus = <&mdio0>;
  63. phy-mode = "sgmii";
  64. phy-handle = <&phy0>;
  65. nvmem-cells = <&mac_address>;
  66. nvmem-cell-names = "mac-address";
  67. };
  68. &gmac3 {
  69. status = "okay";
  70. qcom,id = <3>;
  71. mdiobus = <&mdio_gpio0>;
  72. phy-mode = "sgmii";
  73. phy-handle = <&phy4>;
  74. nvmem-cells = <&mac_address>;
  75. nvmem-cell-names = "mac-address";
  76. mac-address-increment = <1>;
  77. };
  78. &gsbi7 {
  79. status = "okay";
  80. qcom,mode = <GSBI_PROT_I2C>;
  81. };
  82. &gsbi7_i2c {
  83. status = "okay";
  84. pinctrl-0 = <&i2c_pins>;
  85. pinctrl-names = "default";
  86. ina2xx@45 {
  87. compatible = "ina219";
  88. shunt-resistor = <80000>;
  89. reg = <0x45>;
  90. };
  91. tlc591xx@49 {
  92. #address-cells = <1>;
  93. #size-cells = <0>;
  94. compatible = "ti,tlc59108";
  95. reg = <0x49>;
  96. red@0 {
  97. label = "red:user";
  98. reg = <0x0>;
  99. };
  100. green@1 {
  101. label = "green:user";
  102. reg = <0x1>;
  103. };
  104. blue@2 {
  105. label = "blue:user";
  106. reg = <0x2>;
  107. };
  108. };
  109. eeprom@52 {
  110. compatible = "atmel,24c64";
  111. pagesize = <32>;
  112. reg = <0x52>;
  113. read-only;
  114. #address-cells = <1>;
  115. #size-cells = <1>;
  116. mac_address: mac-address@66 {
  117. reg = <0x66 0x6>;
  118. };
  119. };
  120. };
  121. &qcom_pinmux {
  122. i2c_pins: i2c_pins {
  123. mux {
  124. pins = "gpio8", "gpio9";
  125. function = "gsbi7";
  126. drive-strength = <2>;
  127. bias-pull-up;
  128. input;
  129. };
  130. };
  131. led_pins: led_pins {
  132. mux {
  133. pins = "gpio19", "gpio26";
  134. function = "gpio";
  135. drive-strength = <12>;
  136. bias-pull-down;
  137. output-low;
  138. };
  139. };
  140. button_pins: button_pins {
  141. mux {
  142. pins = "gpio25";
  143. function = "gpio";
  144. drive-strength = <2>;
  145. bias-pull-up;
  146. input;
  147. };
  148. };
  149. };
  150. &soc {
  151. mdio_gpio0: mdio {
  152. compatible = "virtual,mdio-gpio";
  153. #address-cells = <1>;
  154. #size-cells = <0>;
  155. status = "okay";
  156. pinctrl-0 = <&mdio0_pins_active>, <&phy_active>;
  157. pinctrl-names = "default";
  158. gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH
  159. &qcom_pinmux 0 GPIO_ACTIVE_HIGH>;
  160. phy0: ethernet-phy0 {
  161. reg = <0>;
  162. reset-gpios = <&qcom_pinmux 7 GPIO_ACTIVE_LOW>;
  163. reset-assert-us = <24000>;
  164. };
  165. phy4: ethernet-phy4 {
  166. reg = <4>;
  167. reset-gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>;
  168. reset-assert-us = <24000>;
  169. };
  170. };
  171. };
  172. &wifi0 {
  173. nvmem-cells = <&mac_address>;
  174. nvmem-cell-names = "mac-address";
  175. mac-address-increment = <4>;
  176. };
  177. &wifi1 {
  178. nvmem-cells = <&mac_address>;
  179. nvmem-cell-names = "mac-address";
  180. mac-address-increment = <3>;
  181. };
  182. &wifi2 {
  183. nvmem-cells = <&mac_address>;
  184. nvmem-cell-names = "mac-address";
  185. mac-address-increment = <2>;
  186. };
  187. &hs_phy_0 {
  188. status = "okay";
  189. };
  190. &ss_phy_0 {
  191. status = "okay";
  192. };
  193. &usb3_0 {
  194. status = "okay";
  195. };
  196. &hs_phy_1 {
  197. status = "okay";
  198. };
  199. &ss_phy_1 {
  200. status = "okay";
  201. };
  202. &usb3_1 {
  203. status = "okay";
  204. };