bcm2835.dtsi 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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 {
  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. intc: interrupt-controller {
  21. compatible = "brcm,bcm2835-armctrl-ic";
  22. reg = <0x7e00b200 0x200>;
  23. interrupt-controller;
  24. #interrupt-cells = <2>;
  25. };
  26. watchdog {
  27. compatible = "brcm,bcm2835-pm-wdt";
  28. reg = <0x7e100000 0x28>;
  29. };
  30. uart@20201000 {
  31. compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
  32. reg = <0x7e201000 0x1000>;
  33. interrupts = <2 25>;
  34. clock-frequency = <3000000>;
  35. };
  36. gpio: gpio {
  37. compatible = "brcm,bcm2835-gpio";
  38. reg = <0x7e200000 0xb4>;
  39. /*
  40. * The GPIO IP block is designed for 3 banks of GPIOs.
  41. * Each bank has a GPIO interrupt for itself.
  42. * There is an overall "any bank" interrupt.
  43. * In order, these are GIC interrupts 17, 18, 19, 20.
  44. * Since the BCM2835 only has 2 banks, the 2nd bank
  45. * interrupt output appears to be mirrored onto the
  46. * 3rd bank's interrupt signal.
  47. * So, a bank0 interrupt shows up on 17, 20, and
  48. * a bank1 interrupt shows up on 18, 19, 20!
  49. */
  50. interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
  51. gpio-controller;
  52. #gpio-cells = <2>;
  53. interrupt-controller;
  54. #interrupt-cells = <2>;
  55. };
  56. i2c0: i2c@20205000 {
  57. compatible = "brcm,bcm2835-i2c";
  58. reg = <0x7e205000 0x1000>;
  59. interrupts = <2 21>;
  60. clocks = <&clk_i2c>;
  61. status = "disabled";
  62. };
  63. i2c1: i2c@20804000 {
  64. compatible = "brcm,bcm2835-i2c";
  65. reg = <0x7e804000 0x1000>;
  66. interrupts = <2 21>;
  67. clocks = <&clk_i2c>;
  68. status = "disabled";
  69. };
  70. sdhci: sdhci {
  71. compatible = "brcm,bcm2835-sdhci";
  72. reg = <0x7e300000 0x100>;
  73. interrupts = <2 30>;
  74. clocks = <&clk_mmc>;
  75. status = "disabled";
  76. };
  77. };
  78. clocks {
  79. compatible = "simple-bus";
  80. #address-cells = <1>;
  81. #size-cells = <0>;
  82. clk_mmc: mmc {
  83. compatible = "fixed-clock";
  84. reg = <0>;
  85. #clock-cells = <0>;
  86. clock-frequency = <100000000>;
  87. };
  88. clk_i2c: i2c {
  89. compatible = "fixed-clock";
  90. reg = <1>;
  91. #clock-cells = <0>;
  92. clock-frequency = <150000000>;
  93. };
  94. };
  95. };