cn9132-db.dtsi 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (C) 2020 Marvell International Ltd.
  4. *
  5. * Device tree for the CN9132-DB board.
  6. */
  7. #include "cn9131-db.dtsi"
  8. / {
  9. compatible = "marvell,cn9132", "marvell,cn9131", "marvell,cn9130",
  10. "marvell,armada-ap807-quad", "marvell,armada-ap807";
  11. aliases {
  12. gpio5 = &cp2_gpio1;
  13. gpio6 = &cp2_gpio2;
  14. ethernet5 = &cp2_eth0;
  15. };
  16. cp2_reg_usb3_vbus0: cp2_usb3_vbus@0 {
  17. compatible = "regulator-fixed";
  18. regulator-name = "cp2-xhci0-vbus";
  19. regulator-min-microvolt = <5000000>;
  20. regulator-max-microvolt = <5000000>;
  21. enable-active-high;
  22. gpio = <&cp2_gpio1 2 GPIO_ACTIVE_HIGH>;
  23. };
  24. cp2_usb3_0_phy0: cp2_usb3_phy0 {
  25. compatible = "usb-nop-xceiv";
  26. vcc-supply = <&cp2_reg_usb3_vbus0>;
  27. };
  28. cp2_reg_usb3_vbus1: cp2_usb3_vbus@1 {
  29. compatible = "regulator-fixed";
  30. regulator-name = "cp2-xhci1-vbus";
  31. regulator-min-microvolt = <5000000>;
  32. regulator-max-microvolt = <5000000>;
  33. enable-active-high;
  34. gpio = <&cp2_gpio1 3 GPIO_ACTIVE_HIGH>;
  35. };
  36. cp2_usb3_0_phy1: cp2_usb3_phy1 {
  37. compatible = "usb-nop-xceiv";
  38. vcc-supply = <&cp2_reg_usb3_vbus1>;
  39. };
  40. cp2_reg_sd_vccq: cp2_sd_vccq@0 {
  41. compatible = "regulator-gpio";
  42. regulator-name = "cp2_sd_vcc";
  43. regulator-min-microvolt = <1800000>;
  44. regulator-max-microvolt = <3300000>;
  45. gpios = <&cp2_gpio2 17 GPIO_ACTIVE_HIGH>;
  46. states = <1800000 0x1 3300000 0x0>;
  47. };
  48. cp2_sfp_eth0: sfp-eth0 {
  49. compatible = "sff,sfp";
  50. i2c-bus = <&cp2_sfpp0_i2c>;
  51. los-gpios = <&cp2_module_expander1 11 GPIO_ACTIVE_HIGH>;
  52. mod-def0-gpios = <&cp2_module_expander1 10 GPIO_ACTIVE_LOW>;
  53. tx-disable-gpios = <&cp2_module_expander1 9 GPIO_ACTIVE_HIGH>;
  54. tx-fault-gpios = <&cp2_module_expander1 8 GPIO_ACTIVE_HIGH>;
  55. /*
  56. * SFP cages are unconnected on early PCBs because of an the I2C
  57. * lanes not being connected. Prevent the port for being
  58. * unusable by disabling the SFP node.
  59. */
  60. status = "disabled";
  61. };
  62. };
  63. /*
  64. * Instantiate the second slave CP115
  65. */
  66. #define CP11X_NAME cp2
  67. #define CP11X_BASE f6000000
  68. #define CP11X_PCIEx_MEM_BASE(iface) (0xe5000000 + (iface * 0x1000000))
  69. #define CP11X_PCIEx_MEM_SIZE(iface) 0xf00000
  70. #define CP11X_PCIE0_BASE f6600000
  71. #define CP11X_PCIE1_BASE f6620000
  72. #define CP11X_PCIE2_BASE f6640000
  73. #include "armada-cp115.dtsi"
  74. #undef CP11X_NAME
  75. #undef CP11X_BASE
  76. #undef CP11X_PCIEx_MEM_BASE
  77. #undef CP11X_PCIEx_MEM_SIZE
  78. #undef CP11X_PCIE0_BASE
  79. #undef CP11X_PCIE1_BASE
  80. #undef CP11X_PCIE2_BASE
  81. &cp2_crypto {
  82. status = "disabled";
  83. };
  84. &cp2_ethernet {
  85. status = "okay";
  86. };
  87. /* SLM-1521-V2, CON9 */
  88. &cp2_eth0 {
  89. status = "disabled";
  90. phy-mode = "10gbase-r";
  91. /* Generic PHY, providing serdes lanes */
  92. phys = <&cp2_comphy4 0>;
  93. managed = "in-band-status";
  94. sfp = <&cp2_sfp_eth0>;
  95. };
  96. &cp2_gpio1 {
  97. status = "okay";
  98. };
  99. &cp2_gpio2 {
  100. status = "okay";
  101. };
  102. &cp2_i2c0 {
  103. clock-frequency = <100000>;
  104. /* SLM-1521-V2 - U3 */
  105. i2c-mux@72 {
  106. compatible = "nxp,pca9544";
  107. #address-cells = <1>;
  108. #size-cells = <0>;
  109. reg = <0x72>;
  110. cp2_sfpp0_i2c: i2c@0 {
  111. #address-cells = <1>;
  112. #size-cells = <0>;
  113. reg = <0>;
  114. };
  115. i2c@1 {
  116. #address-cells = <1>;
  117. #size-cells = <0>;
  118. reg = <1>;
  119. /* U12 */
  120. cp2_module_expander1: pca9555@21 {
  121. compatible = "nxp,pca9555";
  122. pinctrl-names = "default";
  123. gpio-controller;
  124. #gpio-cells = <2>;
  125. reg = <0x21>;
  126. };
  127. };
  128. };
  129. };
  130. /* SLM-1521-V2, CON6 */
  131. &cp2_pcie0 {
  132. status = "okay";
  133. num-lanes = <2>;
  134. num-viewport = <8>;
  135. /* Generic PHY, providing serdes lanes */
  136. phys = <&cp2_comphy0 0
  137. &cp2_comphy1 0>;
  138. };
  139. /* SLM-1521-V2, CON8 */
  140. &cp2_pcie2 {
  141. status = "okay";
  142. num-lanes = <1>;
  143. num-viewport = <8>;
  144. /* Generic PHY, providing serdes lanes */
  145. phys = <&cp2_comphy5 2>;
  146. };
  147. &cp2_sata0 {
  148. status = "okay";
  149. /* SLM-1521-V2, CON4 */
  150. sata-port@0 {
  151. /* Generic PHY, providing serdes lanes */
  152. phys = <&cp2_comphy2 0>;
  153. };
  154. };
  155. /* CON 2 on SLM-1683 - microSD */
  156. &cp2_sdhci0 {
  157. status = "okay";
  158. pinctrl-names = "default";
  159. pinctrl-0 = <&cp2_sdhci_pins>;
  160. bus-width = <4>;
  161. cd-gpios = <&cp2_gpio2 23 GPIO_ACTIVE_LOW>;
  162. vqmmc-supply = <&cp2_reg_sd_vccq>;
  163. };
  164. &cp2_syscon0 {
  165. cp2_pinctrl: pinctrl {
  166. compatible = "marvell,cp115-standalone-pinctrl";
  167. cp2_i2c0_pins: cp2-i2c-pins-0 {
  168. marvell,pins = "mpp37", "mpp38";
  169. marvell,function = "i2c0";
  170. };
  171. cp2_sdhci_pins: cp2-sdhi-pins-0 {
  172. marvell,pins = "mpp56", "mpp57", "mpp58",
  173. "mpp59", "mpp60", "mpp61";
  174. marvell,function = "sdio";
  175. };
  176. };
  177. };
  178. &cp2_utmi {
  179. status = "okay";
  180. };
  181. &cp2_usb3_0 {
  182. status = "okay";
  183. usb-phy = <&cp2_usb3_0_phy0>;
  184. phys = <&cp2_utmi0>;
  185. phy-names = "usb";
  186. dr_mode = "host";
  187. };
  188. /* SLM-1521-V2, CON11 */
  189. &cp2_usb3_1 {
  190. status = "okay";
  191. usb-phy = <&cp2_usb3_0_phy1>;
  192. /* Generic PHY, providing serdes lanes */
  193. phys = <&cp2_comphy3 1>, <&cp2_utmi1>;
  194. phy-names = "usb", "utmi";
  195. dr_mode = "host";
  196. };