integratorcp.dts 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. /*
  2. * Device Tree for the ARM Integrator/CP platform
  3. */
  4. /dts-v1/;
  5. /include/ "integrator.dtsi"
  6. / {
  7. model = "ARM Integrator/CP";
  8. compatible = "arm,integrator-cp";
  9. chosen {
  10. bootargs = "root=/dev/ram0 console=ttyAMA0,38400n8 earlyprintk";
  11. };
  12. /*
  13. * The Integrator/CP overall clocking architecture can be found in
  14. * ARM DUI 0184B page 7-28 "Integrator/CP922T system clocks" which
  15. * appear to illustrate the layout used in most configurations.
  16. */
  17. /* The codec chrystal operates at 24.576 MHz */
  18. xtal_codec: xtal24.576@24.576M {
  19. #clock-cells = <0>;
  20. compatible = "fixed-clock";
  21. clock-frequency = <24576000>;
  22. };
  23. /* The chrystal is divided by 2 by the codec for the AACI bit clock */
  24. aaci_bitclk: aaci_bitclk@12.288M {
  25. #clock-cells = <0>;
  26. compatible = "fixed-factor-clock";
  27. clock-div = <2>;
  28. clock-mult = <1>;
  29. clocks = <&xtal_codec>;
  30. };
  31. /* This is a 25MHz chrystal on the base board */
  32. xtal25mhz: xtal25mhz@25M {
  33. #clock-cells = <0>;
  34. compatible = "fixed-clock";
  35. clock-frequency = <25000000>;
  36. };
  37. /* The UART clock is 14.74 MHz divided from 25MHz by an ICS525 */
  38. uartclk: uartclk@14.74M {
  39. #clock-cells = <0>;
  40. compatible = "fixed-clock";
  41. clock-frequency = <14745600>;
  42. };
  43. /* Actually sysclk I think */
  44. pclk: pclk@0 {
  45. #clock-cells = <0>;
  46. compatible = "fixed-clock";
  47. clock-frequency = <0>;
  48. };
  49. core-module@10000000 {
  50. /* 24 MHz chrystal on the core module */
  51. xtal24mhz: xtal24mhz@24M {
  52. #clock-cells = <0>;
  53. compatible = "fixed-clock";
  54. clock-frequency = <24000000>;
  55. };
  56. /*
  57. * External oscillator on the core module, usually used
  58. * to drive video circuitry. Driven from the 24MHz clock.
  59. */
  60. auxosc: cm_aux_osc@25M {
  61. #clock-cells = <0>;
  62. compatible = "arm,integrator-cm-auxosc";
  63. clocks = <&xtal24mhz>;
  64. };
  65. /* The KMI clock is the 24 MHz oscillator divided to 8MHz */
  66. kmiclk: kmiclk@1M {
  67. #clock-cells = <0>;
  68. compatible = "fixed-factor-clock";
  69. clock-div = <3>;
  70. clock-mult = <1>;
  71. clocks = <&xtal24mhz>;
  72. };
  73. /* The timer clock is the 24 MHz oscillator divided to 1MHz */
  74. timclk: timclk@1M {
  75. #clock-cells = <0>;
  76. compatible = "fixed-factor-clock";
  77. clock-div = <24>;
  78. clock-mult = <1>;
  79. clocks = <&xtal24mhz>;
  80. };
  81. };
  82. syscon {
  83. compatible = "arm,integrator-cp-syscon";
  84. reg = <0xcb000000 0x100>;
  85. };
  86. timer0: timer@13000000 {
  87. /* TIMER0 runs directly on the 25MHz chrystal */
  88. compatible = "arm,integrator-cp-timer";
  89. clocks = <&xtal25mhz>;
  90. };
  91. timer1: timer@13000100 {
  92. /* TIMER1 runs @ 1MHz */
  93. compatible = "arm,integrator-cp-timer";
  94. clocks = <&timclk>;
  95. };
  96. timer2: timer@13000200 {
  97. /* TIMER2 runs @ 1MHz */
  98. compatible = "arm,integrator-cp-timer";
  99. clocks = <&timclk>;
  100. };
  101. pic: pic@14000000 {
  102. valid-mask = <0x1fc003ff>;
  103. };
  104. cic: cic@10000040 {
  105. compatible = "arm,versatile-fpga-irq";
  106. #interrupt-cells = <1>;
  107. interrupt-controller;
  108. reg = <0x10000040 0x100>;
  109. clear-mask = <0xffffffff>;
  110. valid-mask = <0x00000007>;
  111. };
  112. /* The SIC is cascaded off IRQ 26 on the PIC */
  113. sic: sic@ca000000 {
  114. compatible = "arm,versatile-fpga-irq";
  115. interrupt-parent = <&pic>;
  116. interrupts = <26>;
  117. #interrupt-cells = <1>;
  118. interrupt-controller;
  119. reg = <0xca000000 0x100>;
  120. clear-mask = <0x00000fff>;
  121. valid-mask = <0x00000fff>;
  122. };
  123. ethernet@c8000000 {
  124. compatible = "smsc,lan91c111";
  125. reg = <0xc8000000 0x10>;
  126. interrupt-parent = <&pic>;
  127. interrupts = <27>;
  128. };
  129. fpga {
  130. /*
  131. * These PrimeCells are at the same location and using
  132. * the same interrupts in all Integrators, but in the CP
  133. * slightly newer versions are deployed.
  134. */
  135. rtc@15000000 {
  136. compatible = "arm,pl031", "arm,primecell";
  137. clocks = <&pclk>;
  138. clock-names = "apb_pclk";
  139. };
  140. uart@16000000 {
  141. compatible = "arm,pl011", "arm,primecell";
  142. clocks = <&uartclk>, <&pclk>;
  143. clock-names = "uartclk", "apb_pclk";
  144. };
  145. uart@17000000 {
  146. compatible = "arm,pl011", "arm,primecell";
  147. clocks = <&uartclk>, <&pclk>;
  148. clock-names = "uartclk", "apb_pclk";
  149. };
  150. kmi@18000000 {
  151. compatible = "arm,pl050", "arm,primecell";
  152. clocks = <&kmiclk>, <&pclk>;
  153. clock-names = "KMIREFCLK", "apb_pclk";
  154. };
  155. kmi@19000000 {
  156. compatible = "arm,pl050", "arm,primecell";
  157. clocks = <&kmiclk>, <&pclk>;
  158. clock-names = "KMIREFCLK", "apb_pclk";
  159. };
  160. /*
  161. * These PrimeCells are only available on the Integrator/CP
  162. */
  163. mmc@1c000000 {
  164. compatible = "arm,pl180", "arm,primecell";
  165. reg = <0x1c000000 0x1000>;
  166. interrupts = <23 24>;
  167. max-frequency = <515633>;
  168. clocks = <&uartclk>, <&pclk>;
  169. clock-names = "mclk", "apb_pclk";
  170. };
  171. aaci@1d000000 {
  172. compatible = "arm,pl041", "arm,primecell";
  173. reg = <0x1d000000 0x1000>;
  174. interrupts = <25>;
  175. clocks = <&pclk>;
  176. clock-names = "apb_pclk";
  177. };
  178. clcd@c0000000 {
  179. compatible = "arm,pl110", "arm,primecell";
  180. reg = <0xC0000000 0x1000>;
  181. interrupts = <22>;
  182. clocks = <&auxosc>, <&pclk>;
  183. clock-names = "clcd", "apb_pclk";
  184. };
  185. };
  186. };