elba.dtsi 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. /*
  3. * Copyright 2020-2022 Advanced Micro Devices, Inc.
  4. */
  5. #include <dt-bindings/gpio/gpio.h>
  6. #include "dt-bindings/interrupt-controller/arm-gic.h"
  7. / {
  8. model = "Elba ASIC Board";
  9. compatible = "amd,pensando-elba";
  10. interrupt-parent = <&gic>;
  11. #address-cells = <2>;
  12. #size-cells = <2>;
  13. dma-coherent;
  14. ahb_clk: oscillator0 {
  15. compatible = "fixed-clock";
  16. #clock-cells = <0>;
  17. };
  18. emmc_clk: oscillator2 {
  19. compatible = "fixed-clock";
  20. #clock-cells = <0>;
  21. };
  22. flash_clk: oscillator3 {
  23. compatible = "fixed-clock";
  24. #clock-cells = <0>;
  25. };
  26. ref_clk: oscillator4 {
  27. compatible = "fixed-clock";
  28. #clock-cells = <0>;
  29. };
  30. psci {
  31. compatible = "arm,psci-0.2";
  32. method = "smc";
  33. };
  34. timer {
  35. compatible = "arm,armv8-timer";
  36. interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
  37. <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
  38. <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
  39. <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
  40. };
  41. pmu {
  42. compatible = "arm,cortex-a72-pmu";
  43. interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
  44. };
  45. soc: soc {
  46. compatible = "simple-bus";
  47. #address-cells = <2>;
  48. #size-cells = <2>;
  49. ranges;
  50. i2c0: i2c@400 {
  51. compatible = "snps,designware-i2c";
  52. reg = <0x0 0x400 0x0 0x100>;
  53. clocks = <&ahb_clk>;
  54. #address-cells = <1>;
  55. #size-cells = <0>;
  56. i2c-sda-hold-time-ns = <480>;
  57. interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
  58. status = "disabled";
  59. };
  60. wdt0: watchdog@1400 {
  61. compatible = "snps,dw-wdt";
  62. reg = <0x0 0x1400 0x0 0x100>;
  63. clocks = <&ahb_clk>;
  64. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  65. status = "disabled";
  66. };
  67. qspi: spi@2400 {
  68. compatible = "amd,pensando-elba-qspi", "cdns,qspi-nor";
  69. reg = <0x0 0x2400 0x0 0x400>,
  70. <0x0 0x7fff0000 0x0 0x1000>;
  71. #address-cells = <1>;
  72. #size-cells = <0>;
  73. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
  74. clocks = <&flash_clk>;
  75. cdns,fifo-depth = <1024>;
  76. cdns,fifo-width = <4>;
  77. cdns,trigger-address = <0x7fff0000>;
  78. status = "disabled";
  79. };
  80. spi0: spi@2800 {
  81. compatible = "amd,pensando-elba-spi";
  82. reg = <0x0 0x2800 0x0 0x100>;
  83. #address-cells = <1>;
  84. #size-cells = <0>;
  85. amd,pensando-elba-syscon = <&syscon>;
  86. clocks = <&ahb_clk>;
  87. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  88. num-cs = <2>;
  89. status = "disabled";
  90. };
  91. gpio0: gpio@4000 {
  92. compatible = "snps,dw-apb-gpio";
  93. reg = <0x0 0x4000 0x0 0x78>;
  94. #address-cells = <1>;
  95. #size-cells = <0>;
  96. status = "disabled";
  97. porta: gpio-port@0 {
  98. compatible = "snps,dw-apb-gpio-port";
  99. reg = <0>;
  100. gpio-controller;
  101. #gpio-cells = <2>;
  102. ngpios = <8>;
  103. interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
  104. interrupt-controller;
  105. interrupt-parent = <&gic>;
  106. #interrupt-cells = <2>;
  107. };
  108. portb: gpio-port@1 {
  109. compatible = "snps,dw-apb-gpio-port";
  110. reg = <1>;
  111. gpio-controller;
  112. #gpio-cells = <2>;
  113. ngpios = <8>;
  114. };
  115. };
  116. uart0: serial@4800 {
  117. compatible = "ns16550a";
  118. reg = <0x0 0x4800 0x0 0x100>;
  119. clocks = <&ref_clk>;
  120. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  121. reg-shift = <2>;
  122. reg-io-width = <4>;
  123. };
  124. gic: interrupt-controller@800000 {
  125. compatible = "arm,gic-v3";
  126. reg = <0x0 0x800000 0x0 0x200000>, /* GICD */
  127. <0x0 0xa00000 0x0 0x200000>, /* GICR */
  128. <0x0 0x60000000 0x0 0x2000>, /* GICC */
  129. <0x0 0x60010000 0x0 0x1000>, /* GICH */
  130. <0x0 0x60020000 0x0 0x2000>; /* GICV */
  131. #address-cells = <2>;
  132. #size-cells = <2>;
  133. #interrupt-cells = <3>;
  134. ranges;
  135. interrupt-controller;
  136. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
  137. /*
  138. * Elba specific pre-ITS is enabled using the
  139. * existing property socionext,synquacer-pre-its
  140. */
  141. gic_its: msi-controller@820000 {
  142. compatible = "arm,gic-v3-its";
  143. reg = <0x0 0x820000 0x0 0x10000>;
  144. msi-controller;
  145. #msi-cells = <1>;
  146. socionext,synquacer-pre-its =
  147. <0xc00000 0x1000000>;
  148. };
  149. };
  150. emmc: mmc@30440000 {
  151. compatible = "amd,pensando-elba-sd4hc", "cdns,sd4hc";
  152. reg = <0x0 0x30440000 0x0 0x10000>,
  153. <0x0 0x30480044 0x0 0x4>; /* byte-lane ctrl */
  154. clocks = <&emmc_clk>;
  155. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  156. cdns,phy-input-delay-sd-highspeed = <0x4>;
  157. cdns,phy-input-delay-legacy = <0x4>;
  158. cdns,phy-input-delay-sd-uhs-sdr50 = <0x6>;
  159. cdns,phy-input-delay-sd-uhs-ddr50 = <0x16>;
  160. mmc-ddr-1_8v;
  161. status = "disabled";
  162. };
  163. syscon: syscon@307c0000 {
  164. compatible = "amd,pensando-elba-syscon", "syscon";
  165. reg = <0x0 0x307c0000 0x0 0x3000>;
  166. };
  167. };
  168. };