qcom-ipq8068-mr42.dts 3.4 KB

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