en7523.dtsi 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. #include <dt-bindings/interrupt-controller/irq.h>
  3. #include <dt-bindings/interrupt-controller/arm-gic.h>
  4. #include <dt-bindings/gpio/gpio.h>
  5. #include <dt-bindings/clock/en7523-clk.h>
  6. / {
  7. interrupt-parent = <&gic>;
  8. #address-cells = <1>;
  9. #size-cells = <1>;
  10. reserved-memory {
  11. #address-cells = <1>;
  12. #size-cells = <1>;
  13. ranges;
  14. npu_binary@84000000 {
  15. no-map;
  16. reg = <0x84000000 0xA00000>;
  17. };
  18. npu_flag@84B0000 {
  19. no-map;
  20. reg = <0x84B00000 0x100000>;
  21. };
  22. npu_pkt@85000000 {
  23. no-map;
  24. reg = <0x85000000 0x1A00000>;
  25. };
  26. npu_phyaddr@86B00000 {
  27. no-map;
  28. reg = <0x86B00000 0x100000>;
  29. };
  30. npu_rxdesc@86D00000 {
  31. no-map;
  32. reg = <0x86D00000 0x100000>;
  33. };
  34. };
  35. psci {
  36. compatible = "arm,psci-0.2";
  37. method = "smc";
  38. };
  39. cpus {
  40. #address-cells = <1>;
  41. #size-cells = <0>;
  42. cpu-map {
  43. cluster0 {
  44. core0 {
  45. cpu = <&cpu0>;
  46. };
  47. core1 {
  48. cpu = <&cpu1>;
  49. };
  50. };
  51. };
  52. cpu0: cpu@0 {
  53. device_type = "cpu";
  54. compatible = "arm,cortex-a53";
  55. reg = <0x0>;
  56. enable-method = "psci";
  57. clock-frequency = <80000000>;
  58. next-level-cache = <&L2_0>;
  59. };
  60. cpu1: cpu@1 {
  61. device_type = "cpu";
  62. compatible = "arm,cortex-a53";
  63. reg = <0x1>;
  64. enable-method = "psci";
  65. clock-frequency = <80000000>;
  66. next-level-cache = <&L2_0>;
  67. };
  68. L2_0: l2-cache0 {
  69. compatible = "cache";
  70. };
  71. };
  72. scu: system-controller@1fa20000 {
  73. compatible = "airoha,en7523-scu";
  74. reg = <0x1fa20000 0x400>,
  75. <0x1fb00000 0x1000>;
  76. #clock-cells = <1>;
  77. };
  78. gic: interrupt-controller@9000000 {
  79. compatible = "arm,gic-v3";
  80. interrupt-controller;
  81. #interrupt-cells = <3>;
  82. #address-cells = <1>;
  83. #size-cells = <1>;
  84. reg = <0x09000000 0x20000>,
  85. <0x09080000 0x80000>,
  86. <0x09400000 0x2000>,
  87. <0x09500000 0x2000>,
  88. <0x09600000 0x20000>;
  89. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
  90. };
  91. timer {
  92. compatible = "arm,armv8-timer";
  93. interrupt-parent = <&gic>;
  94. interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
  95. <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
  96. <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
  97. <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
  98. };
  99. uart1: serial@1fbf0000 {
  100. compatible = "ns16550";
  101. reg = <0x1fbf0000 0x30>;
  102. reg-io-width = <4>;
  103. reg-shift = <2>;
  104. interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
  105. clock-frequency = <1843200>;
  106. status = "okay";
  107. };
  108. gpio0: gpio@1fbf0200 {
  109. compatible = "airoha,en7523-gpio";
  110. reg = <0x1fbf0204 0x4>,
  111. <0x1fbf0200 0x4>,
  112. <0x1fbf0220 0x4>,
  113. <0x1fbf0214 0x4>;
  114. gpio-controller;
  115. #gpio-cells = <2>;
  116. };
  117. gpio1: gpio@1fbf0270 {
  118. compatible = "airoha,en7523-gpio";
  119. reg = <0x1fbf0270 0x4>,
  120. <0x1fbf0260 0x4>,
  121. <0x1fbf0264 0x4>,
  122. <0x1fbf0278 0x4>;
  123. gpio-controller;
  124. #gpio-cells = <2>;
  125. };
  126. pcie0: pcie@1fa91000 {
  127. compatible = "airoha,en7523-pcie", "mediatek,mt7622-pcie";
  128. device_type = "pci";
  129. reg = <0x1fa91000 0x1000>;
  130. reg-names = "port0";
  131. linux,pci-domain = <0>;
  132. #address-cells = <3>;
  133. #size-cells = <2>;
  134. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  135. interrupt-names = "pcie_irq";
  136. clocks = <&scu EN7523_CLK_PCIE>;
  137. clock-names = "sys_ck0";
  138. bus-range = <0x00 0xff>;
  139. ranges = <0x82000000 0 0x20000000 0x20000000 0 0x8000000>;
  140. status = "disabled";
  141. #interrupt-cells = <1>;
  142. interrupt-map-mask = <0 0 0 7>;
  143. interrupt-map = <0 0 0 1 &pcie_intc0 0>,
  144. <0 0 0 2 &pcie_intc0 1>,
  145. <0 0 0 3 &pcie_intc0 2>,
  146. <0 0 0 4 &pcie_intc0 3>;
  147. pcie_intc0: interrupt-controller {
  148. interrupt-controller;
  149. #address-cells = <0>;
  150. #interrupt-cells = <1>;
  151. };
  152. };
  153. pcie1: pcie@1fa92000 {
  154. compatible = "airoha,en7523-pcie", "mediatek,mt7622-pcie";
  155. device_type = "pci";
  156. reg = <0x1fa92000 0x1000>;
  157. reg-names = "port1";
  158. linux,pci-domain = <1>;
  159. #address-cells = <3>;
  160. #size-cells = <2>;
  161. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
  162. interrupt-names = "pcie_irq";
  163. clocks = <&scu EN7523_CLK_PCIE>;
  164. clock-names = "sys_ck1";
  165. bus-range = <0x00 0xff>;
  166. ranges = <0x82000000 0 0x28000000 0x28000000 0 0x8000000>;
  167. status = "disabled";
  168. #interrupt-cells = <1>;
  169. interrupt-map-mask = <0 0 0 7>;
  170. interrupt-map = <0 0 0 1 &pcie_intc1 0>,
  171. <0 0 0 2 &pcie_intc1 1>,
  172. <0 0 0 3 &pcie_intc1 2>,
  173. <0 0 0 4 &pcie_intc1 3>;
  174. pcie_intc1: interrupt-controller {
  175. interrupt-controller;
  176. #address-cells = <0>;
  177. #interrupt-cells = <1>;
  178. };
  179. };
  180. };