as370.dtsi 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. // SPDX-License-Identifier: (GPL-2.0 OR MIT)
  2. /*
  3. * Copyright (C) 2018 Synaptics Incorporated
  4. *
  5. * Author: Jisheng Zhang <jszhang@kernel.org>
  6. */
  7. #include <dt-bindings/interrupt-controller/arm-gic.h>
  8. / {
  9. compatible = "syna,as370";
  10. interrupt-parent = <&gic>;
  11. #address-cells = <2>;
  12. #size-cells = <2>;
  13. psci {
  14. compatible = "arm,psci-1.0";
  15. method = "smc";
  16. };
  17. cpus {
  18. #address-cells = <1>;
  19. #size-cells = <0>;
  20. cpu0: cpu@0 {
  21. compatible = "arm,cortex-a53", "arm,armv8";
  22. device_type = "cpu";
  23. reg = <0x0>;
  24. enable-method = "psci";
  25. next-level-cache = <&l2>;
  26. cpu-idle-states = <&CPU_SLEEP_0>;
  27. };
  28. cpu1: cpu@1 {
  29. compatible = "arm,cortex-a53", "arm,armv8";
  30. device_type = "cpu";
  31. reg = <0x1>;
  32. enable-method = "psci";
  33. next-level-cache = <&l2>;
  34. cpu-idle-states = <&CPU_SLEEP_0>;
  35. };
  36. cpu2: cpu@2 {
  37. compatible = "arm,cortex-a53", "arm,armv8";
  38. device_type = "cpu";
  39. reg = <0x2>;
  40. enable-method = "psci";
  41. next-level-cache = <&l2>;
  42. cpu-idle-states = <&CPU_SLEEP_0>;
  43. };
  44. cpu3: cpu@3 {
  45. compatible = "arm,cortex-a53", "arm,armv8";
  46. device_type = "cpu";
  47. reg = <0x3>;
  48. enable-method = "psci";
  49. next-level-cache = <&l2>;
  50. cpu-idle-states = <&CPU_SLEEP_0>;
  51. };
  52. l2: cache {
  53. compatible = "cache";
  54. };
  55. idle-states {
  56. entry-method = "psci";
  57. CPU_SLEEP_0: cpu-sleep-0 {
  58. compatible = "arm,idle-state";
  59. local-timer-stop;
  60. arm,psci-suspend-param = <0x0010000>;
  61. entry-latency-us = <75>;
  62. exit-latency-us = <155>;
  63. min-residency-us = <1000>;
  64. };
  65. };
  66. };
  67. osc: osc {
  68. compatible = "fixed-clock";
  69. #clock-cells = <0>;
  70. clock-frequency = <25000000>;
  71. };
  72. pmu {
  73. compatible = "arm,cortex-a53-pmu";
  74. interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
  75. <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
  76. <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
  77. <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  78. interrupt-affinity = <&cpu0>,
  79. <&cpu1>,
  80. <&cpu2>,
  81. <&cpu3>;
  82. };
  83. timer {
  84. compatible = "arm,armv8-timer";
  85. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  86. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  87. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  88. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  89. };
  90. soc@f7000000 {
  91. compatible = "simple-bus";
  92. #address-cells = <1>;
  93. #size-cells = <1>;
  94. ranges = <0 0 0xf7000000 0x1000000>;
  95. gic: interrupt-controller@901000 {
  96. compatible = "arm,gic-400";
  97. #interrupt-cells = <3>;
  98. interrupt-controller;
  99. reg = <0x901000 0x1000>,
  100. <0x902000 0x2000>,
  101. <0x904000 0x2000>,
  102. <0x906000 0x2000>;
  103. interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  104. };
  105. apb@e80000 {
  106. compatible = "simple-bus";
  107. #address-cells = <1>;
  108. #size-cells = <1>;
  109. ranges = <0 0xe80000 0x10000>;
  110. uart0: serial@c00 {
  111. compatible = "snps,dw-apb-uart";
  112. reg = <0xc00 0x100>;
  113. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  114. clocks = <&osc>;
  115. reg-shift = <2>;
  116. status = "disabled";
  117. };
  118. gpio0: gpio@1800 {
  119. compatible = "snps,dw-apb-gpio";
  120. reg = <0x1800 0x400>;
  121. #address-cells = <1>;
  122. #size-cells = <0>;
  123. porta: gpio-port@0 {
  124. compatible = "snps,dw-apb-gpio-port";
  125. gpio-controller;
  126. #gpio-cells = <2>;
  127. snps,nr-gpios = <32>;
  128. reg = <0>;
  129. interrupt-controller;
  130. #interrupt-cells = <2>;
  131. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
  132. };
  133. };
  134. gpio1: gpio@2000 {
  135. compatible = "snps,dw-apb-gpio";
  136. reg = <0x2000 0x400>;
  137. #address-cells = <1>;
  138. #size-cells = <0>;
  139. portb: gpio-port@1 {
  140. compatible = "snps,dw-apb-gpio-port";
  141. gpio-controller;
  142. #gpio-cells = <2>;
  143. snps,nr-gpios = <32>;
  144. reg = <0>;
  145. interrupt-controller;
  146. #interrupt-cells = <2>;
  147. interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
  148. };
  149. };
  150. };
  151. };
  152. };