cn9131-db.dtsi 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (C) 2020 Marvell International Ltd.
  4. *
  5. * Device tree for the CN9131-DB board.
  6. */
  7. #include "cn9130-db.dtsi"
  8. / {
  9. compatible = "marvell,cn9131", "marvell,cn9130",
  10. "marvell,armada-ap807-quad", "marvell,armada-ap807";
  11. aliases {
  12. gpio3 = &cp1_gpio1;
  13. gpio4 = &cp1_gpio2;
  14. ethernet3 = &cp1_eth0;
  15. ethernet4 = &cp1_eth1;
  16. };
  17. cp1_reg_usb3_vbus0: cp1_usb3_vbus@0 {
  18. compatible = "regulator-fixed";
  19. pinctrl-names = "default";
  20. pinctrl-0 = <&cp1_xhci0_vbus_pins>;
  21. regulator-name = "cp1-xhci0-vbus";
  22. regulator-min-microvolt = <5000000>;
  23. regulator-max-microvolt = <5000000>;
  24. enable-active-high;
  25. gpio = <&cp1_gpio1 3 GPIO_ACTIVE_HIGH>;
  26. };
  27. cp1_usb3_0_phy0: cp1_usb3_phy0 {
  28. compatible = "usb-nop-xceiv";
  29. vcc-supply = <&cp1_reg_usb3_vbus0>;
  30. };
  31. cp1_sfp_eth1: sfp-eth1 {
  32. compatible = "sff,sfp";
  33. i2c-bus = <&cp1_i2c0>;
  34. los-gpios = <&cp1_gpio1 11 GPIO_ACTIVE_HIGH>;
  35. mod-def0-gpios = <&cp1_gpio1 10 GPIO_ACTIVE_LOW>;
  36. tx-disable-gpios = <&cp1_gpio1 9 GPIO_ACTIVE_HIGH>;
  37. tx-fault-gpios = <&cp1_gpio1 8 GPIO_ACTIVE_HIGH>;
  38. pinctrl-names = "default";
  39. pinctrl-0 = <&cp1_sfp_pins>;
  40. /*
  41. * SFP cages are unconnected on early PCBs because of an the I2C
  42. * lanes not being connected. Prevent the port for being
  43. * unusable by disabling the SFP node.
  44. */
  45. status = "disabled";
  46. };
  47. };
  48. /*
  49. * Instantiate the first slave CP115
  50. */
  51. #define CP11X_NAME cp1
  52. #define CP11X_BASE f4000000
  53. #define CP11X_PCIEx_MEM_BASE(iface) (0xe2000000 + (iface * 0x1000000))
  54. #define CP11X_PCIEx_MEM_SIZE(iface) 0xf00000
  55. #define CP11X_PCIE0_BASE f4600000
  56. #define CP11X_PCIE1_BASE f4620000
  57. #define CP11X_PCIE2_BASE f4640000
  58. #include "armada-cp115.dtsi"
  59. #undef CP11X_NAME
  60. #undef CP11X_BASE
  61. #undef CP11X_PCIEx_MEM_BASE
  62. #undef CP11X_PCIEx_MEM_SIZE
  63. #undef CP11X_PCIE0_BASE
  64. #undef CP11X_PCIE1_BASE
  65. #undef CP11X_PCIE2_BASE
  66. &cp1_crypto {
  67. status = "disabled";
  68. };
  69. &cp1_ethernet {
  70. status = "okay";
  71. };
  72. /* CON50 */
  73. &cp1_eth0 {
  74. status = "okay";
  75. phy-mode = "10gbase-r";
  76. /* Generic PHY, providing serdes lanes */
  77. phys = <&cp1_comphy4 0>;
  78. managed = "in-band-status";
  79. sfp = <&cp1_sfp_eth1>;
  80. };
  81. &cp1_gpio1 {
  82. status = "okay";
  83. };
  84. &cp1_gpio2 {
  85. status = "okay";
  86. };
  87. &cp1_i2c0 {
  88. status = "okay";
  89. pinctrl-names = "default";
  90. pinctrl-0 = <&cp1_i2c0_pins>;
  91. clock-frequency = <100000>;
  92. };
  93. /* CON40 */
  94. &cp1_pcie0 {
  95. pinctrl-names = "default";
  96. pinctrl-0 = <&cp1_pcie_reset_pins>;
  97. num-lanes = <2>;
  98. num-viewport = <8>;
  99. marvell,reset-gpio = <&cp1_gpio1 0 GPIO_ACTIVE_HIGH>;
  100. status = "okay";
  101. /* Generic PHY, providing serdes lanes */
  102. phys = <&cp1_comphy0 0
  103. &cp1_comphy1 0>;
  104. };
  105. &cp1_sata0 {
  106. status = "okay";
  107. /* CON32 */
  108. sata-port@1 {
  109. /* Generic PHY, providing serdes lanes */
  110. phys = <&cp1_comphy5 1>;
  111. };
  112. };
  113. /* U24 */
  114. &cp1_spi1 {
  115. status = "okay";
  116. pinctrl-names = "default";
  117. pinctrl-0 = <&cp1_spi0_pins>;
  118. reg = <0x700680 0x50>;
  119. flash@0 {
  120. #address-cells = <0x1>;
  121. #size-cells = <0x1>;
  122. compatible = "jedec,spi-nor";
  123. reg = <0x0>;
  124. /* On-board MUX does not allow higher frequencies */
  125. spi-max-frequency = <40000000>;
  126. partitions {
  127. compatible = "fixed-partitions";
  128. #address-cells = <1>;
  129. #size-cells = <1>;
  130. partition@0 {
  131. label = "U-Boot-1";
  132. reg = <0x0 0x200000>;
  133. };
  134. partition@400000 {
  135. label = "Filesystem-1";
  136. reg = <0x200000 0xe00000>;
  137. };
  138. };
  139. };
  140. };
  141. &cp1_syscon0 {
  142. cp1_pinctrl: pinctrl {
  143. compatible = "marvell,cp115-standalone-pinctrl";
  144. cp1_i2c0_pins: cp1-i2c-pins-0 {
  145. marvell,pins = "mpp37", "mpp38";
  146. marvell,function = "i2c0";
  147. };
  148. cp1_spi0_pins: cp1-spi-pins-0 {
  149. marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
  150. marvell,function = "spi1";
  151. };
  152. cp1_xhci0_vbus_pins: cp1-xhci0-vbus-pins {
  153. marvell,pins = "mpp3";
  154. marvell,function = "gpio";
  155. };
  156. cp1_sfp_pins: sfp-pins {
  157. marvell,pins = "mpp8", "mpp9", "mpp10", "mpp11";
  158. marvell,function = "gpio";
  159. };
  160. cp1_pcie_reset_pins: cp1-pcie-reset-pins {
  161. marvell,pins = "mpp0";
  162. marvell,function = "gpio";
  163. };
  164. };
  165. };
  166. /* CON58 */
  167. &cp1_utmi {
  168. status = "okay";
  169. };
  170. &cp1_usb3_1 {
  171. status = "okay";
  172. usb-phy = <&cp1_usb3_0_phy0>;
  173. /* Generic PHY, providing serdes lanes */
  174. phys = <&cp1_comphy3 1>, <&cp1_utmi1>;
  175. phy-names = "usb", "utmi";
  176. dr_mode = "host";
  177. };