kirkwood-linksys-viper.dts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * kirkwood-viper.dts - Device Tree file for Linksys viper (E4200v2 / EA4500)
  4. *
  5. * (c) 2013 Jonas Gorski <[email protected]>
  6. * (c) 2013 Deutsche Telekom Innovation Laboratories
  7. * (c) 2014 Luka Perkov <[email protected]>
  8. * (c) 2014 Randy C. Will <[email protected]>
  9. *
  10. */
  11. /dts-v1/;
  12. #include "kirkwood.dtsi"
  13. #include "kirkwood-6282.dtsi"
  14. / {
  15. model = "Linksys Viper (E4200v2 / EA4500)";
  16. compatible = "linksys,viper", "marvell,kirkwood-88f6282", "marvell,kirkwood";
  17. memory {
  18. device_type = "memory";
  19. reg = <0x00000000 0x8000000>;
  20. };
  21. aliases {
  22. serial0 = &uart0;
  23. };
  24. chosen {
  25. stdout-path = "serial0:115200n8";
  26. };
  27. gpio_keys {
  28. compatible = "gpio-keys";
  29. #address-cells = <1>;
  30. #size-cells = <0>;
  31. pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
  32. pinctrl-names = "default";
  33. wps {
  34. label = "WPS Button";
  35. linux,code = <KEY_WPS_BUTTON>;
  36. gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
  37. };
  38. reset {
  39. label = "Reset Button";
  40. linux,code = <KEY_RESTART>;
  41. gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
  42. };
  43. };
  44. gpio-leds {
  45. compatible = "gpio-leds";
  46. pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >;
  47. pinctrl-names = "default";
  48. white-health {
  49. label = "viper:white:health";
  50. gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
  51. };
  52. white-pulse {
  53. label = "viper:white:pulse";
  54. gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
  55. };
  56. };
  57. };
  58. &pinctrl {
  59. pmx_led_white_health: pmx-led-white-health {
  60. marvell,pins = "mpp7";
  61. marvell,function = "gpo";
  62. };
  63. pmx_led_white_pulse: pmx-led-white-pulse {
  64. marvell,pins = "mpp14";
  65. marvell,function = "gpio";
  66. };
  67. pmx_btn_wps: pmx-btn-wps {
  68. marvell,pins = "mpp47";
  69. marvell,function = "gpio";
  70. };
  71. pmx_btn_reset: pmx-btn-reset {
  72. marvell,pins = "mpp48";
  73. marvell,function = "gpio";
  74. };
  75. };
  76. &nand {
  77. status = "okay";
  78. pinctrl-0 = <&pmx_nand>;
  79. pinctrl-names = "default";
  80. partitions {
  81. compatible = "fixed-partitions";
  82. #address-cells = <1>;
  83. #size-cells = <1>;
  84. partition@0 {
  85. label = "u-boot";
  86. reg = <0x0 0x80000>;
  87. read-only;
  88. };
  89. partition@80000 {
  90. label = "u_env";
  91. reg = <0x80000 0x20000>;
  92. };
  93. partition@a0000 {
  94. label = "s_env";
  95. reg = <0xA0000 0x20000>;
  96. };
  97. partition@200000 {
  98. label = "kernel";
  99. reg = <0x200000 0x2A0000>;
  100. };
  101. partition@4a0000 {
  102. label = "rootfs";
  103. reg = <0x4A0000 0x1760000>;
  104. };
  105. partition@1c00000 {
  106. label = "alt_kernel";
  107. reg = <0x1C00000 0x2A0000>;
  108. };
  109. partition@1ea0000 {
  110. label = "alt_rootfs";
  111. reg = <0x1EA0000 0x1760000>;
  112. };
  113. partition@3600000 {
  114. label = "syscfg";
  115. reg = <0x3600000 0x4A00000>;
  116. };
  117. partition@c0000 {
  118. label = "unused";
  119. reg = <0xC0000 0x140000>;
  120. };
  121. };
  122. };
  123. &pciec {
  124. status = "okay";
  125. };
  126. &pcie0 {
  127. status = "okay";
  128. };
  129. &pcie1 {
  130. status = "okay";
  131. };
  132. &mdio {
  133. status = "okay";
  134. switch@10 {
  135. compatible = "marvell,mv88e6085";
  136. #address-cells = <1>;
  137. #size-cells = <0>;
  138. reg = <16>;
  139. ports {
  140. #address-cells = <1>;
  141. #size-cells = <0>;
  142. port@0 {
  143. reg = <0>;
  144. label = "ethernet1";
  145. };
  146. port@1 {
  147. reg = <1>;
  148. label = "ethernet2";
  149. };
  150. port@2 {
  151. reg = <2>;
  152. label = "ethernet3";
  153. };
  154. port@3 {
  155. reg = <3>;
  156. label = "ethernet4";
  157. };
  158. port@4 {
  159. reg = <4>;
  160. label = "internet";
  161. };
  162. port@5 {
  163. reg = <5>;
  164. label = "cpu";
  165. ethernet = <&eth0port>;
  166. fixed-link {
  167. speed = <1000>;
  168. full-duplex;
  169. };
  170. };
  171. };
  172. };
  173. };
  174. &uart0 {
  175. status = "okay";
  176. };
  177. /* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
  178. * fixed speed and duplex.
  179. */
  180. &eth0 {
  181. status = "okay";
  182. ethernet0-port@0 {
  183. speed = <1000>;
  184. duplex = <1>;
  185. };
  186. };
  187. /* eth1 is connected to the switch at port 6. However DSA only supports a
  188. * single CPU port. So leave this port disabled to avoid confusion.
  189. */
  190. &eth1 {
  191. status = "disabled";
  192. };
  193. /* There is no battery on the board, so the RTC does not keep
  194. * time when there is no power, making it useless.
  195. */
  196. &rtc {
  197. status = "disabled";
  198. };