bcm2835.dtsi 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. /include/ "skeleton.dtsi"
  2. / {
  3. compatible = "brcm,bcm2835";
  4. model = "BCM2835";
  5. interrupt-parent = <&intc>;
  6. chosen {
  7. bootargs = "earlyprintk console=ttyAMA0";
  8. };
  9. soc {
  10. compatible = "simple-bus";
  11. #address-cells = <1>;
  12. #size-cells = <1>;
  13. ranges = <0x7e000000 0x20000000 0x02000000>;
  14. timer@7e003000 {
  15. compatible = "brcm,bcm2835-system-timer";
  16. reg = <0x7e003000 0x1000>;
  17. interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
  18. clock-frequency = <1000000>;
  19. };
  20. dma: dma@7e007000 {
  21. compatible = "brcm,bcm2835-dma";
  22. reg = <0x7e007000 0xf00>;
  23. interrupts = <1 16>,
  24. <1 17>,
  25. <1 18>,
  26. <1 19>,
  27. <1 20>,
  28. <1 21>,
  29. <1 22>,
  30. <1 23>,
  31. <1 24>,
  32. <1 25>,
  33. <1 26>,
  34. <1 27>,
  35. <1 28>;
  36. #dma-cells = <1>;
  37. brcm,dma-channel-mask = <0x7f35>;
  38. };
  39. intc: interrupt-controller@7e00b200 {
  40. compatible = "brcm,bcm2835-armctrl-ic";
  41. reg = <0x7e00b200 0x200>;
  42. interrupt-controller;
  43. #interrupt-cells = <2>;
  44. };
  45. watchdog@7e100000 {
  46. compatible = "brcm,bcm2835-pm-wdt";
  47. reg = <0x7e100000 0x28>;
  48. };
  49. rng@7e104000 {
  50. compatible = "brcm,bcm2835-rng";
  51. reg = <0x7e104000 0x10>;
  52. };
  53. gpio: gpio@7e200000 {
  54. compatible = "brcm,bcm2835-gpio";
  55. reg = <0x7e200000 0xb4>;
  56. /*
  57. * The GPIO IP block is designed for 3 banks of GPIOs.
  58. * Each bank has a GPIO interrupt for itself.
  59. * There is an overall "any bank" interrupt.
  60. * In order, these are GIC interrupts 17, 18, 19, 20.
  61. * Since the BCM2835 only has 2 banks, the 2nd bank
  62. * interrupt output appears to be mirrored onto the
  63. * 3rd bank's interrupt signal.
  64. * So, a bank0 interrupt shows up on 17, 20, and
  65. * a bank1 interrupt shows up on 18, 19, 20!
  66. */
  67. interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
  68. gpio-controller;
  69. #gpio-cells = <2>;
  70. interrupt-controller;
  71. #interrupt-cells = <2>;
  72. };
  73. uart@7e201000 {
  74. compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
  75. reg = <0x7e201000 0x1000>;
  76. interrupts = <2 25>;
  77. clock-frequency = <3000000>;
  78. arm,primecell-periphid = <0x00241011>;
  79. };
  80. i2s: i2s@7e203000 {
  81. compatible = "brcm,bcm2835-i2s";
  82. reg = <0x7e203000 0x20>,
  83. <0x7e101098 0x02>;
  84. dmas = <&dma 2>,
  85. <&dma 3>;
  86. dma-names = "tx", "rx";
  87. status = "disabled";
  88. };
  89. spi: spi@7e204000 {
  90. compatible = "brcm,bcm2835-spi";
  91. reg = <0x7e204000 0x1000>;
  92. interrupts = <2 22>;
  93. clocks = <&clk_spi>;
  94. #address-cells = <1>;
  95. #size-cells = <0>;
  96. status = "disabled";
  97. };
  98. i2c0: i2c@20205000 {
  99. compatible = "brcm,bcm2835-i2c";
  100. reg = <0x7e205000 0x1000>;
  101. interrupts = <2 21>;
  102. clocks = <&clk_i2c>;
  103. #address-cells = <1>;
  104. #size-cells = <0>;
  105. status = "disabled";
  106. };
  107. sdhci: sdhci@7e300000 {
  108. compatible = "brcm,bcm2835-sdhci";
  109. reg = <0x7e300000 0x100>;
  110. interrupts = <2 30>;
  111. clocks = <&clk_mmc>;
  112. status = "disabled";
  113. };
  114. i2c1: i2c@7e804000 {
  115. compatible = "brcm,bcm2835-i2c";
  116. reg = <0x7e804000 0x1000>;
  117. interrupts = <2 21>;
  118. clocks = <&clk_i2c>;
  119. #address-cells = <1>;
  120. #size-cells = <0>;
  121. status = "disabled";
  122. };
  123. usb@7e980000 {
  124. compatible = "brcm,bcm2835-usb";
  125. reg = <0x7e980000 0x10000>;
  126. interrupts = <1 9>;
  127. };
  128. arm-pmu {
  129. compatible = "arm,arm1176-pmu";
  130. };
  131. };
  132. clocks {
  133. compatible = "simple-bus";
  134. #address-cells = <1>;
  135. #size-cells = <0>;
  136. clk_mmc: clock@0 {
  137. compatible = "fixed-clock";
  138. reg = <0>;
  139. #clock-cells = <0>;
  140. clock-output-names = "mmc";
  141. clock-frequency = <100000000>;
  142. };
  143. clk_i2c: clock@1 {
  144. compatible = "fixed-clock";
  145. reg = <1>;
  146. #clock-cells = <0>;
  147. clock-output-names = "i2c";
  148. clock-frequency = <250000000>;
  149. };
  150. clk_spi: clock@2 {
  151. compatible = "fixed-clock";
  152. reg = <2>;
  153. #clock-cells = <0>;
  154. clock-output-names = "spi";
  155. clock-frequency = <250000000>;
  156. };
  157. };
  158. };