thunder2-99xx.dtsi 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * dtsi file for Cavium ThunderX2 CN99XX processor
  4. *
  5. * Copyright (c) 2017 Cavium Inc.
  6. * Copyright (c) 2013-2016 Broadcom
  7. * Author: Zi Shen Lim <[email protected]>
  8. */
  9. #include <dt-bindings/interrupt-controller/arm-gic.h>
  10. / {
  11. model = "Cavium ThunderX2 CN99XX";
  12. compatible = "cavium,thunderx2-cn9900", "brcm,vulcan-soc";
  13. interrupt-parent = <&gic>;
  14. #address-cells = <2>;
  15. #size-cells = <2>;
  16. /* just 4 cpus now, 128 needed in full config */
  17. cpus {
  18. #address-cells = <0x2>;
  19. #size-cells = <0x0>;
  20. cpu@0 {
  21. device_type = "cpu";
  22. compatible = "cavium,thunder2", "brcm,vulcan";
  23. reg = <0x0 0x0>;
  24. enable-method = "psci";
  25. };
  26. cpu@1 {
  27. device_type = "cpu";
  28. compatible = "cavium,thunder2", "brcm,vulcan";
  29. reg = <0x0 0x1>;
  30. enable-method = "psci";
  31. };
  32. cpu@2 {
  33. device_type = "cpu";
  34. compatible = "cavium,thunder2", "brcm,vulcan";
  35. reg = <0x0 0x2>;
  36. enable-method = "psci";
  37. };
  38. cpu@3 {
  39. device_type = "cpu";
  40. compatible = "cavium,thunder2", "brcm,vulcan";
  41. reg = <0x0 0x3>;
  42. enable-method = "psci";
  43. };
  44. };
  45. psci {
  46. compatible = "arm,psci-0.2";
  47. method = "smc";
  48. };
  49. gic: interrupt-controller@400080000 {
  50. compatible = "arm,gic-v3";
  51. #interrupt-cells = <3>;
  52. #address-cells = <2>;
  53. #size-cells = <2>;
  54. ranges;
  55. interrupt-controller;
  56. #redistributor-regions = <1>;
  57. reg = <0x04 0x00080000 0x0 0x20000>, /* GICD */
  58. <0x04 0x01000000 0x0 0x1000000>; /* GICR */
  59. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
  60. gicits: gic-its@40010000 {
  61. compatible = "arm,gic-v3-its";
  62. msi-controller;
  63. reg = <0x04 0x00100000 0x0 0x20000>; /* GIC ITS */
  64. };
  65. };
  66. timer {
  67. compatible = "arm,armv8-timer";
  68. interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
  69. <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
  70. <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
  71. <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
  72. };
  73. pmu {
  74. compatible = "brcm,vulcan-pmu", "arm,armv8-pmuv3";
  75. interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; /* PMU overflow */
  76. };
  77. clk125mhz: uart_clk125mhz {
  78. compatible = "fixed-clock";
  79. #clock-cells = <0>;
  80. clock-frequency = <125000000>;
  81. clock-output-names = "clk125mhz";
  82. };
  83. pcie@30000000 {
  84. compatible = "pci-host-ecam-generic";
  85. device_type = "pci";
  86. #interrupt-cells = <1>;
  87. #address-cells = <3>;
  88. #size-cells = <2>;
  89. /* ECAM at 0x3000_0000 - 0x4000_0000 */
  90. reg = <0x0 0x30000000 0x0 0x10000000>;
  91. reg-names = "PCI ECAM";
  92. /*
  93. * PCI ranges:
  94. * IO no supported
  95. * MEM 0x4000_0000 - 0x6000_0000
  96. * MEM64 pref 0x40_0000_0000 - 0x60_0000_0000
  97. */
  98. ranges =
  99. <0x02000000 0 0x40000000 0 0x40000000 0 0x20000000
  100. 0x43000000 0x40 0x00000000 0x40 0x00000000 0x20 0x00000000>;
  101. bus-range = <0 0xff>;
  102. interrupt-map-mask = <0 0 0 7>;
  103. interrupt-map =
  104. /* addr pin ic icaddr icintr */
  105. <0 0 0 1 &gic 0 0 GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH
  106. 0 0 0 2 &gic 0 0 GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH
  107. 0 0 0 3 &gic 0 0 GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH
  108. 0 0 0 4 &gic 0 0 GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
  109. msi-parent = <&gicits>;
  110. dma-coherent;
  111. };
  112. soc {
  113. compatible = "simple-bus";
  114. #address-cells = <2>;
  115. #size-cells = <2>;
  116. ranges;
  117. uart0: serial@402020000 {
  118. compatible = "arm,pl011", "arm,primecell";
  119. reg = <0x04 0x02020000 0x0 0x1000>;
  120. interrupt-parent = <&gic>;
  121. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
  122. clocks = <&clk125mhz>;
  123. clock-names = "apb_pclk";
  124. };
  125. };
  126. };