integratorap.dts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. /*
  2. * Device Tree for the ARM Integrator/AP platform
  3. */
  4. /dts-v1/;
  5. /include/ "integrator.dtsi"
  6. / {
  7. model = "ARM Integrator/AP";
  8. compatible = "arm,integrator-ap";
  9. dma-ranges = <0x80000000 0x0 0x80000000>;
  10. aliases {
  11. arm,timer-primary = &timer2;
  12. arm,timer-secondary = &timer1;
  13. };
  14. chosen {
  15. bootargs = "root=/dev/ram0 console=ttyAM0,38400n8 earlyprintk";
  16. };
  17. /* 24 MHz chrystal on the core module */
  18. xtal24mhz: xtal24mhz@24M {
  19. #clock-cells = <0>;
  20. compatible = "fixed-clock";
  21. clock-frequency = <24000000>;
  22. };
  23. pclk: pclk@0 {
  24. #clock-cells = <0>;
  25. compatible = "fixed-factor-clock";
  26. clock-div = <1>;
  27. clock-mult = <1>;
  28. clocks = <&xtal24mhz>;
  29. };
  30. /* The UART clock is 14.74 MHz divided by an ICS525 */
  31. uartclk: uartclk@14.74M {
  32. #clock-cells = <0>;
  33. compatible = "fixed-clock";
  34. clock-frequency = <14745600>;
  35. };
  36. syscon {
  37. compatible = "arm,integrator-ap-syscon";
  38. reg = <0x11000000 0x100>;
  39. interrupt-parent = <&pic>;
  40. /* These are the logical module IRQs */
  41. interrupts = <9>, <10>, <11>, <12>;
  42. };
  43. timer0: timer@13000000 {
  44. compatible = "arm,integrator-timer";
  45. clocks = <&xtal24mhz>;
  46. };
  47. timer1: timer@13000100 {
  48. compatible = "arm,integrator-timer";
  49. clocks = <&xtal24mhz>;
  50. };
  51. timer2: timer@13000200 {
  52. compatible = "arm,integrator-timer";
  53. clocks = <&xtal24mhz>;
  54. };
  55. pic: pic@14000000 {
  56. valid-mask = <0x003fffff>;
  57. };
  58. pci: pciv3@62000000 {
  59. compatible = "v3,v360epc-pci";
  60. #interrupt-cells = <1>;
  61. #size-cells = <2>;
  62. #address-cells = <3>;
  63. reg = <0x62000000 0x10000>;
  64. interrupt-parent = <&pic>;
  65. interrupts = <17>; /* Bus error IRQ */
  66. ranges = <0x00000000 0 0x61000000 /* config space */
  67. 0x61000000 0 0x00100000 /* 16 MiB @ 61000000 */
  68. 0x01000000 0 0x0 /* I/O space */
  69. 0x60000000 0 0x00100000 /* 16 MiB @ 60000000 */
  70. 0x02000000 0 0x00000000 /* non-prefectable memory */
  71. 0x40000000 0 0x10000000 /* 256 MiB @ 40000000 */
  72. 0x42000000 0 0x10000000 /* prefetchable memory */
  73. 0x50000000 0 0x10000000>; /* 256 MiB @ 50000000 */
  74. interrupt-map-mask = <0xf800 0 0 0x7>;
  75. interrupt-map = <
  76. /* IDSEL 9 */
  77. 0x4800 0 0 1 &pic 13 /* INT A on slot 9 is irq 13 */
  78. 0x4800 0 0 2 &pic 14 /* INT B on slot 9 is irq 14 */
  79. 0x4800 0 0 3 &pic 15 /* INT C on slot 9 is irq 15 */
  80. 0x4800 0 0 4 &pic 16 /* INT D on slot 9 is irq 16 */
  81. /* IDSEL 10 */
  82. 0x5000 0 0 1 &pic 14 /* INT A on slot 10 is irq 14 */
  83. 0x5000 0 0 2 &pic 15 /* INT B on slot 10 is irq 15 */
  84. 0x5000 0 0 3 &pic 16 /* INT C on slot 10 is irq 16 */
  85. 0x5000 0 0 4 &pic 13 /* INT D on slot 10 is irq 13 */
  86. /* IDSEL 11 */
  87. 0x5800 0 0 1 &pic 15 /* INT A on slot 11 is irq 15 */
  88. 0x5800 0 0 2 &pic 16 /* INT B on slot 11 is irq 16 */
  89. 0x5800 0 0 3 &pic 13 /* INT C on slot 11 is irq 13 */
  90. 0x5800 0 0 4 &pic 14 /* INT D on slot 11 is irq 14 */
  91. /* IDSEL 12 */
  92. 0x6000 0 0 1 &pic 16 /* INT A on slot 12 is irq 16 */
  93. 0x6000 0 0 2 &pic 13 /* INT B on slot 12 is irq 13 */
  94. 0x6000 0 0 3 &pic 14 /* INT C on slot 12 is irq 14 */
  95. 0x6000 0 0 4 &pic 15 /* INT D on slot 12 is irq 15 */
  96. >;
  97. };
  98. fpga {
  99. /*
  100. * The Integator/AP predates the idea to have magic numbers
  101. * identifying the PrimeCell in hardware, thus we have to
  102. * supply these from the device tree.
  103. */
  104. rtc: rtc@15000000 {
  105. compatible = "arm,pl030", "arm,primecell";
  106. arm,primecell-periphid = <0x00041030>;
  107. clocks = <&pclk>;
  108. clock-names = "apb_pclk";
  109. };
  110. uart0: uart@16000000 {
  111. compatible = "arm,pl010", "arm,primecell";
  112. arm,primecell-periphid = <0x00041010>;
  113. clocks = <&uartclk>, <&pclk>;
  114. clock-names = "uartclk", "apb_pclk";
  115. };
  116. uart1: uart@17000000 {
  117. compatible = "arm,pl010", "arm,primecell";
  118. arm,primecell-periphid = <0x00041010>;
  119. clocks = <&uartclk>, <&pclk>;
  120. clock-names = "uartclk", "apb_pclk";
  121. };
  122. kmi0: kmi@18000000 {
  123. compatible = "arm,pl050", "arm,primecell";
  124. arm,primecell-periphid = <0x00041050>;
  125. clocks = <&xtal24mhz>, <&pclk>;
  126. clock-names = "KMIREFCLK", "apb_pclk";
  127. };
  128. kmi1: kmi@19000000 {
  129. compatible = "arm,pl050", "arm,primecell";
  130. arm,primecell-periphid = <0x00041050>;
  131. clocks = <&xtal24mhz>, <&pclk>;
  132. clock-names = "KMIREFCLK", "apb_pclk";
  133. };
  134. };
  135. };