juno-base.dtsi 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. /*
  2. * Devices shared by all Juno boards
  3. */
  4. memtimer: timer@2a810000 {
  5. compatible = "arm,armv7-timer-mem";
  6. reg = <0x0 0x2a810000 0x0 0x10000>;
  7. clock-frequency = <50000000>;
  8. #address-cells = <2>;
  9. #size-cells = <2>;
  10. ranges;
  11. status = "disabled";
  12. frame@2a830000 {
  13. frame-number = <1>;
  14. interrupts = <0 60 4>;
  15. reg = <0x0 0x2a830000 0x0 0x10000>;
  16. };
  17. };
  18. mailbox: mhu@2b1f0000 {
  19. compatible = "arm,mhu", "arm,primecell";
  20. reg = <0x0 0x2b1f0000 0x0 0x1000>;
  21. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
  22. <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  23. interrupt-names = "mhu_lpri_rx",
  24. "mhu_hpri_rx";
  25. #mbox-cells = <1>;
  26. clocks = <&soc_refclk100mhz>;
  27. clock-names = "apb_pclk";
  28. };
  29. gic: interrupt-controller@2c010000 {
  30. compatible = "arm,gic-400", "arm,cortex-a15-gic";
  31. reg = <0x0 0x2c010000 0 0x1000>,
  32. <0x0 0x2c02f000 0 0x2000>,
  33. <0x0 0x2c04f000 0 0x2000>,
  34. <0x0 0x2c06f000 0 0x2000>;
  35. #address-cells = <2>;
  36. #interrupt-cells = <3>;
  37. #size-cells = <2>;
  38. interrupt-controller;
  39. interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
  40. ranges = <0 0 0 0x2c1c0000 0 0x40000>;
  41. v2m_0: v2m@0 {
  42. compatible = "arm,gic-v2m-frame";
  43. msi-controller;
  44. reg = <0 0 0 0x1000>;
  45. };
  46. };
  47. timer {
  48. compatible = "arm,armv8-timer";
  49. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
  50. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
  51. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
  52. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
  53. };
  54. sram: sram@2e000000 {
  55. compatible = "arm,juno-sram-ns", "mmio-sram";
  56. reg = <0x0 0x2e000000 0x0 0x8000>;
  57. #address-cells = <1>;
  58. #size-cells = <1>;
  59. ranges = <0 0x0 0x2e000000 0x8000>;
  60. cpu_scp_lpri: scp-shmem@0 {
  61. compatible = "arm,juno-scp-shmem";
  62. reg = <0x0 0x200>;
  63. };
  64. cpu_scp_hpri: scp-shmem@200 {
  65. compatible = "arm,juno-scp-shmem";
  66. reg = <0x200 0x200>;
  67. };
  68. };
  69. scpi {
  70. compatible = "arm,scpi";
  71. mboxes = <&mailbox 1>;
  72. shmem = <&cpu_scp_hpri>;
  73. clocks {
  74. compatible = "arm,scpi-clocks";
  75. scpi_dvfs: scpi_clocks@0 {
  76. compatible = "arm,scpi-dvfs-clocks";
  77. #clock-cells = <1>;
  78. clock-indices = <0>, <1>, <2>;
  79. clock-output-names = "atlclk", "aplclk","gpuclk";
  80. };
  81. scpi_clk: scpi_clocks@3 {
  82. compatible = "arm,scpi-variable-clocks";
  83. #clock-cells = <1>;
  84. clock-indices = <3>, <4>;
  85. clock-output-names = "pxlclk0", "pxlclk1";
  86. };
  87. };
  88. scpi_sensors0: sensors {
  89. compatible = "arm,scpi-sensors";
  90. #thermal-sensor-cells = <1>;
  91. };
  92. };
  93. /include/ "juno-clocks.dtsi"
  94. dma@7ff00000 {
  95. compatible = "arm,pl330", "arm,primecell";
  96. reg = <0x0 0x7ff00000 0 0x1000>;
  97. #dma-cells = <1>;
  98. #dma-channels = <8>;
  99. #dma-requests = <32>;
  100. interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
  101. <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
  102. <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
  103. <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
  104. <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
  105. <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
  106. <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
  107. <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
  108. clocks = <&soc_faxiclk>;
  109. clock-names = "apb_pclk";
  110. };
  111. soc_uart0: uart@7ff80000 {
  112. compatible = "arm,pl011", "arm,primecell";
  113. reg = <0x0 0x7ff80000 0x0 0x1000>;
  114. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  115. clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
  116. clock-names = "uartclk", "apb_pclk";
  117. };
  118. i2c@7ffa0000 {
  119. compatible = "snps,designware-i2c";
  120. reg = <0x0 0x7ffa0000 0x0 0x1000>;
  121. #address-cells = <1>;
  122. #size-cells = <0>;
  123. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
  124. clock-frequency = <400000>;
  125. i2c-sda-hold-time-ns = <500>;
  126. clocks = <&soc_smc50mhz>;
  127. dvi0: dvi-transmitter@70 {
  128. compatible = "nxp,tda998x";
  129. reg = <0x70>;
  130. };
  131. dvi1: dvi-transmitter@71 {
  132. compatible = "nxp,tda998x";
  133. reg = <0x71>;
  134. };
  135. };
  136. ohci@7ffb0000 {
  137. compatible = "generic-ohci";
  138. reg = <0x0 0x7ffb0000 0x0 0x10000>;
  139. interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
  140. clocks = <&soc_usb48mhz>;
  141. };
  142. ehci@7ffc0000 {
  143. compatible = "generic-ehci";
  144. reg = <0x0 0x7ffc0000 0x0 0x10000>;
  145. interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
  146. clocks = <&soc_usb48mhz>;
  147. };
  148. memory-controller@7ffd0000 {
  149. compatible = "arm,pl354", "arm,primecell";
  150. reg = <0 0x7ffd0000 0 0x1000>;
  151. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
  152. <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
  153. clocks = <&soc_smc50mhz>;
  154. clock-names = "apb_pclk";
  155. };
  156. memory@80000000 {
  157. device_type = "memory";
  158. /* last 16MB of the first memory area is reserved for secure world use by firmware */
  159. reg = <0x00000000 0x80000000 0x0 0x7f000000>,
  160. <0x00000008 0x80000000 0x1 0x80000000>;
  161. };
  162. smb {
  163. compatible = "simple-bus";
  164. #address-cells = <2>;
  165. #size-cells = <1>;
  166. ranges = <0 0 0 0x08000000 0x04000000>,
  167. <1 0 0 0x14000000 0x04000000>,
  168. <2 0 0 0x18000000 0x04000000>,
  169. <3 0 0 0x1c000000 0x04000000>,
  170. <4 0 0 0x0c000000 0x04000000>,
  171. <5 0 0 0x10000000 0x04000000>;
  172. #interrupt-cells = <1>;
  173. interrupt-map-mask = <0 0 15>;
  174. interrupt-map = <0 0 0 &gic 0 0 0 68 IRQ_TYPE_LEVEL_HIGH>,
  175. <0 0 1 &gic 0 0 0 69 IRQ_TYPE_LEVEL_HIGH>,
  176. <0 0 2 &gic 0 0 0 70 IRQ_TYPE_LEVEL_HIGH>,
  177. <0 0 3 &gic 0 0 0 160 IRQ_TYPE_LEVEL_HIGH>,
  178. <0 0 4 &gic 0 0 0 161 IRQ_TYPE_LEVEL_HIGH>,
  179. <0 0 5 &gic 0 0 0 162 IRQ_TYPE_LEVEL_HIGH>,
  180. <0 0 6 &gic 0 0 0 163 IRQ_TYPE_LEVEL_HIGH>,
  181. <0 0 7 &gic 0 0 0 164 IRQ_TYPE_LEVEL_HIGH>,
  182. <0 0 8 &gic 0 0 0 165 IRQ_TYPE_LEVEL_HIGH>,
  183. <0 0 9 &gic 0 0 0 166 IRQ_TYPE_LEVEL_HIGH>,
  184. <0 0 10 &gic 0 0 0 167 IRQ_TYPE_LEVEL_HIGH>,
  185. <0 0 11 &gic 0 0 0 168 IRQ_TYPE_LEVEL_HIGH>,
  186. <0 0 12 &gic 0 0 0 169 IRQ_TYPE_LEVEL_HIGH>;
  187. /include/ "juno-motherboard.dtsi"
  188. };