efm32gg.dtsi 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. /*
  2. * Device tree for Energy Micro EFM32 Giant Gecko SoC.
  3. *
  4. * Documentation available from
  5. * http://www.silabs.com/Support%20Documents/TechnicalDocs/EFM32GG-RM.pdf
  6. */
  7. #include "armv7-m.dtsi"
  8. #include "dt-bindings/clock/efm32-cmu.h"
  9. / {
  10. aliases {
  11. i2c0 = &i2c0;
  12. i2c1 = &i2c1;
  13. serial0 = &uart0;
  14. serial1 = &uart1;
  15. serial2 = &uart2;
  16. serial3 = &uart3;
  17. serial4 = &uart4;
  18. spi0 = &spi0;
  19. spi1 = &spi1;
  20. spi2 = &spi2;
  21. };
  22. soc {
  23. adc: adc@40002000 {
  24. compatible = "efm32,adc";
  25. reg = <0x40002000 0x400>;
  26. interrupts = <7>;
  27. clocks = <&cmu clk_HFPERCLKADC0>;
  28. status = "disabled";
  29. };
  30. gpio: gpio@40006000 {
  31. compatible = "efm32,gpio";
  32. reg = <0x40006000 0x1000>;
  33. interrupts = <1 11>;
  34. gpio-controller;
  35. #gpio-cells = <2>;
  36. interrupt-controller;
  37. #interrupt-cells = <1>;
  38. clocks = <&cmu clk_HFPERCLKGPIO>;
  39. status = "ok";
  40. };
  41. i2c0: i2c@4000a000 {
  42. #address-cells = <1>;
  43. #size-cells = <0>;
  44. compatible = "efm32,i2c";
  45. reg = <0x4000a000 0x400>;
  46. interrupts = <9>;
  47. clocks = <&cmu clk_HFPERCLKI2C0>;
  48. clock-frequency = <100000>;
  49. status = "disabled";
  50. };
  51. i2c1: i2c@4000a400 {
  52. #address-cells = <1>;
  53. #size-cells = <0>;
  54. compatible = "efm32,i2c";
  55. reg = <0x4000a400 0x400>;
  56. interrupts = <10>;
  57. clocks = <&cmu clk_HFPERCLKI2C1>;
  58. clock-frequency = <100000>;
  59. status = "disabled";
  60. };
  61. spi0: spi@4000c000 { /* USART0 */
  62. #address-cells = <1>;
  63. #size-cells = <0>;
  64. compatible = "efm32,spi";
  65. reg = <0x4000c000 0x400>;
  66. interrupts = <3 4>;
  67. clocks = <&cmu clk_HFPERCLKUSART0>;
  68. status = "disabled";
  69. };
  70. spi1: spi@4000c400 { /* USART1 */
  71. #address-cells = <1>;
  72. #size-cells = <0>;
  73. compatible = "efm32,spi";
  74. reg = <0x4000c400 0x400>;
  75. interrupts = <15 16>;
  76. clocks = <&cmu clk_HFPERCLKUSART1>;
  77. status = "disabled";
  78. };
  79. spi2: spi@4000c800 { /* USART2 */
  80. #address-cells = <1>;
  81. #size-cells = <0>;
  82. compatible = "efm32,spi";
  83. reg = <0x4000c800 0x400>;
  84. interrupts = <18 19>;
  85. clocks = <&cmu clk_HFPERCLKUSART2>;
  86. status = "disabled";
  87. };
  88. uart0: uart@4000c000 { /* USART0 */
  89. compatible = "efm32,uart";
  90. reg = <0x4000c000 0x400>;
  91. interrupts = <3 4>;
  92. clocks = <&cmu clk_HFPERCLKUSART0>;
  93. status = "disabled";
  94. };
  95. uart1: uart@4000c400 { /* USART1 */
  96. compatible = "efm32,uart";
  97. reg = <0x4000c400 0x400>;
  98. interrupts = <15 16>;
  99. clocks = <&cmu clk_HFPERCLKUSART1>;
  100. status = "disabled";
  101. };
  102. uart2: uart@4000c800 { /* USART2 */
  103. compatible = "efm32,uart";
  104. reg = <0x4000c800 0x400>;
  105. interrupts = <18 19>;
  106. clocks = <&cmu clk_HFPERCLKUSART2>;
  107. status = "disabled";
  108. };
  109. uart3: uart@4000e000 { /* UART0 */
  110. compatible = "efm32,uart";
  111. reg = <0x4000e000 0x400>;
  112. interrupts = <20 21>;
  113. clocks = <&cmu clk_HFPERCLKUART0>;
  114. status = "disabled";
  115. };
  116. uart4: uart@4000e400 { /* UART1 */
  117. compatible = "efm32,uart";
  118. reg = <0x4000e400 0x400>;
  119. interrupts = <22 23>;
  120. clocks = <&cmu clk_HFPERCLKUART1>;
  121. status = "disabled";
  122. };
  123. timer0: timer@40010000 {
  124. compatible = "efm32,timer";
  125. reg = <0x40010000 0x400>;
  126. interrupts = <2>;
  127. clocks = <&cmu clk_HFPERCLKTIMER0>;
  128. };
  129. timer1: timer@40010400 {
  130. compatible = "efm32,timer";
  131. reg = <0x40010400 0x400>;
  132. interrupts = <12>;
  133. clocks = <&cmu clk_HFPERCLKTIMER1>;
  134. };
  135. timer2: timer@40010800 {
  136. compatible = "efm32,timer";
  137. reg = <0x40010800 0x400>;
  138. interrupts = <13>;
  139. clocks = <&cmu clk_HFPERCLKTIMER2>;
  140. };
  141. timer3: timer@40010c00 {
  142. compatible = "efm32,timer";
  143. reg = <0x40010c00 0x400>;
  144. interrupts = <14>;
  145. clocks = <&cmu clk_HFPERCLKTIMER3>;
  146. };
  147. cmu: cmu@400c8000 {
  148. compatible = "efm32gg,cmu";
  149. reg = <0x400c8000 0x400>;
  150. interrupts = <32>;
  151. #clock-cells = <1>;
  152. };
  153. };
  154. };