intel-ixp42x-arcom-vulcan.dts 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. // SPDX-License-Identifier: ISC
  2. /*
  3. * Device Tree file for the Arcom/Eurotech Vulcan board.
  4. * This board is a single board computer in the PC/104 form factor based on
  5. * IXP425, and was released around 2005. It previously had the name "Mercury".
  6. */
  7. /dts-v1/;
  8. #include "intel-ixp42x.dtsi"
  9. #include <dt-bindings/input/input.h>
  10. / {
  11. model = "Arcom/Eurotech Vulcan";
  12. compatible = "arcom,vulcan", "intel,ixp42x";
  13. #address-cells = <1>;
  14. #size-cells = <1>;
  15. memory@0 {
  16. device_type = "memory";
  17. reg = <0x00000000 0x4000000>;
  18. };
  19. chosen {
  20. /* CHECKME: using a harddrive at /dev/sda1 as rootfs by default */
  21. bootargs = "console=ttyS0,115200n8 root=/dev/sda1 rw rootfstype=ext4 rootwait";
  22. stdout-path = "uart0:115200n8";
  23. };
  24. aliases {
  25. serial0 = &uart0;
  26. };
  27. onewire {
  28. compatible = "w1-gpio";
  29. gpios = <&gpio0 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  30. };
  31. soc {
  32. bus@c4000000 {
  33. flash@0,0 {
  34. compatible = "intel,ixp4xx-flash", "cfi-flash";
  35. bank-width = <2>;
  36. /*
  37. * 32 MB of Flash in 0x20000 byte blocks
  38. * mapped in at CS0 and CS1.
  39. *
  40. * The documentation mentions the existence
  41. * of a 16MB version, which we conveniently
  42. * ignore. Shout if you own one!
  43. */
  44. reg = <0 0x00000000 0x2000000>;
  45. /* Expansion bus settings */
  46. intel,ixp4xx-eb-t3 = <3>;
  47. intel,ixp4xx-eb-byte-access-on-halfword = <1>;
  48. intel,ixp4xx-eb-write-enable = <1>;
  49. partitions {
  50. compatible = "redboot-fis";
  51. fis-index-block = <0x1ff>;
  52. };
  53. };
  54. sram@2,0 {
  55. /* 256 KB SDRAM memory at CS2 */
  56. compatible = "shared-dma-pool";
  57. device_type = "memory";
  58. reg = <2 0x00000000 0x40000>;
  59. no-map;
  60. /* Expansion bus settings */
  61. intel,ixp4xx-eb-t3 = <1>;
  62. intel,ixp4xx-eb-t4 = <2>;
  63. intel,ixp4xx-eb-ahb-split-transfers = <1>;
  64. intel,ixp4xx-eb-write-enable = <1>;
  65. intel,ixp4xx-eb-byte-access = <1>;
  66. };
  67. serial@3,0 {
  68. /*
  69. * 8250-compatible Exar XR16L2551 2 x UART
  70. *
  71. * CHECKME: if special tweaks are needed, then fix the
  72. * operating system to handle it.
  73. */
  74. compatible = "exar,xr16l2551", "ns8250";
  75. reg = <3 0x00000000 0x10>;
  76. interrupt-parent = <&gpio0>;
  77. interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
  78. clock-frequency = <1843200>;
  79. /* Expansion bus settings */
  80. intel,ixp4xx-eb-t3 = <3>;
  81. intel,ixp4xx-eb-cycle-type = <1>; /* Motorola cycles */
  82. intel,ixp4xx-eb-write-enable = <1>;
  83. intel,ixp4xx-eb-byte-access = <1>;
  84. };
  85. gpio1: gpio@4,0 {
  86. /*
  87. * MMIO GPIO in one byte
  88. */
  89. compatible = "arcom,vulcan-gpio";
  90. reg = <4 0x00000000 0x1>;
  91. /* Expansion bus settings */
  92. intel,ixp4xx-eb-write-enable = <1>;
  93. intel,ixp4xx-eb-byte-access = <1>;
  94. };
  95. watchdog@5,0 {
  96. compatible = "maxim,max6369";
  97. reg = <5 0x00000000 0x1>;
  98. /* Expansion bus settings */
  99. intel,ixp4xx-eb-write-enable = <1>;
  100. intel,ixp4xx-eb-byte-access = <1>;
  101. };
  102. };
  103. pci@c0000000 {
  104. status = "ok";
  105. /*
  106. * Taken from Vulcan PCI boardfile.
  107. *
  108. * We have 2 slots (IDSEL) 1 and 2 with one dedicated interrupt
  109. * per slot. This interrupt is shared (OR:ed) by all four pins.
  110. */
  111. #interrupt-cells = <1>;
  112. interrupt-map-mask = <0xf800 0 0 7>;
  113. interrupt-map =
  114. /* IDSEL 1 */
  115. <0x0800 0 0 1 &gpio0 2 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 1 is irq 2 */
  116. <0x0800 0 0 2 &gpio0 2 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 1 is irq 2 */
  117. <0x0800 0 0 3 &gpio0 2 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 1 is irq 2 */
  118. <0x0800 0 0 4 &gpio0 2 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 1 is irq 2 */
  119. /* IDSEL 2 */
  120. <0x1000 0 0 1 &gpio0 3 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 2 is irq 3 */
  121. <0x1000 0 0 2 &gpio0 3 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 2 is irq 3 */
  122. <0x1000 0 0 3 &gpio0 3 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 2 is irq 3 */
  123. <0x1000 0 0 4 &gpio0 3 IRQ_TYPE_LEVEL_LOW>; /* INT D on slot 2 is irq 3 */
  124. };
  125. /* EthB */
  126. ethernet@c8009000 {
  127. status = "ok";
  128. queue-rx = <&qmgr 3>;
  129. queue-txready = <&qmgr 20>;
  130. phy-mode = "rgmii";
  131. phy-handle = <&phy0>;
  132. mdio {
  133. #address-cells = <1>;
  134. #size-cells = <0>;
  135. phy0: ethernet-phy@0 {
  136. reg = <0>;
  137. };
  138. phy1: ethernet-phy@1 {
  139. reg = <1>;
  140. };
  141. };
  142. };
  143. /* EthC */
  144. ethernet@c800a000 {
  145. status = "ok";
  146. queue-rx = <&qmgr 4>;
  147. queue-txready = <&qmgr 21>;
  148. phy-mode = "rgmii";
  149. phy-handle = <&phy1>;
  150. };
  151. };
  152. };