bcm7358.dtsi 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. / {
  2. #address-cells = <1>;
  3. #size-cells = <1>;
  4. compatible = "brcm,bcm7358";
  5. cpus {
  6. #address-cells = <1>;
  7. #size-cells = <0>;
  8. mips-hpt-frequency = <375000000>;
  9. cpu@0 {
  10. compatible = "brcm,bmips3300";
  11. device_type = "cpu";
  12. reg = <0>;
  13. };
  14. };
  15. aliases {
  16. uart0 = &uart0;
  17. };
  18. cpu_intc: interrupt-controller {
  19. #address-cells = <0>;
  20. compatible = "mti,cpu-interrupt-controller";
  21. interrupt-controller;
  22. #interrupt-cells = <1>;
  23. };
  24. clocks {
  25. uart_clk: uart_clk {
  26. compatible = "fixed-clock";
  27. #clock-cells = <0>;
  28. clock-frequency = <81000000>;
  29. };
  30. upg_clk: upg_clk {
  31. compatible = "fixed-clock";
  32. #clock-cells = <0>;
  33. clock-frequency = <27000000>;
  34. };
  35. };
  36. rdb {
  37. #address-cells = <1>;
  38. #size-cells = <1>;
  39. compatible = "simple-bus";
  40. ranges = <0 0x10000000 0x01000000>;
  41. periph_intc: interrupt-controller@411400 {
  42. compatible = "brcm,bcm7038-l1-intc";
  43. reg = <0x411400 0x30>;
  44. interrupt-controller;
  45. #interrupt-cells = <1>;
  46. interrupt-parent = <&cpu_intc>;
  47. interrupts = <2>;
  48. };
  49. sun_l2_intc: interrupt-controller@403000 {
  50. compatible = "brcm,l2-intc";
  51. reg = <0x403000 0x30>;
  52. interrupt-controller;
  53. #interrupt-cells = <1>;
  54. interrupt-parent = <&periph_intc>;
  55. interrupts = <48>;
  56. };
  57. gisb-arb@400000 {
  58. compatible = "brcm,bcm7400-gisb-arb";
  59. reg = <0x400000 0xdc>;
  60. native-endian;
  61. interrupt-parent = <&sun_l2_intc>;
  62. interrupts = <0>, <2>;
  63. brcm,gisb-arb-master-mask = <0x2f3>;
  64. brcm,gisb-arb-master-names = "ssp_0", "cpu_0", "bsp_0",
  65. "rdc_0", "raaga_0",
  66. "avd_0", "jtag_0";
  67. };
  68. upg_irq0_intc: interrupt-controller@406600 {
  69. compatible = "brcm,bcm7120-l2-intc";
  70. reg = <0x406600 0x8>;
  71. brcm,int-map-mask = <0x44>, <0x7000000>;
  72. brcm,int-fwd-mask = <0x70000>;
  73. interrupt-controller;
  74. #interrupt-cells = <1>;
  75. interrupt-parent = <&periph_intc>;
  76. interrupts = <56>, <54>;
  77. interrupt-names = "upg_main", "upg_bsc";
  78. };
  79. upg_aon_irq0_intc: interrupt-controller@408b80 {
  80. compatible = "brcm,bcm7120-l2-intc";
  81. reg = <0x408b80 0x8>;
  82. brcm,int-map-mask = <0x40>, <0x8000000>, <0x100000>;
  83. brcm,int-fwd-mask = <0>;
  84. brcm,irq-can-wake;
  85. interrupt-controller;
  86. #interrupt-cells = <1>;
  87. interrupt-parent = <&periph_intc>;
  88. interrupts = <57>, <55>, <59>;
  89. interrupt-names = "upg_main_aon", "upg_bsc_aon",
  90. "upg_spi";
  91. };
  92. sun_top_ctrl: syscon@404000 {
  93. compatible = "brcm,bcm7358-sun-top-ctrl", "syscon";
  94. reg = <0x404000 0x51c>;
  95. native-endian;
  96. };
  97. reboot {
  98. compatible = "brcm,brcmstb-reboot";
  99. syscon = <&sun_top_ctrl 0x304 0x308>;
  100. };
  101. uart0: serial@406800 {
  102. compatible = "ns16550a";
  103. reg = <0x406800 0x20>;
  104. reg-io-width = <0x4>;
  105. reg-shift = <0x2>;
  106. native-endian;
  107. interrupt-parent = <&periph_intc>;
  108. interrupts = <61>;
  109. clocks = <&uart_clk>;
  110. status = "disabled";
  111. };
  112. uart1: serial@406840 {
  113. compatible = "ns16550a";
  114. reg = <0x406840 0x20>;
  115. reg-io-width = <0x4>;
  116. reg-shift = <0x2>;
  117. native-endian;
  118. interrupt-parent = <&periph_intc>;
  119. interrupts = <62>;
  120. clocks = <&uart_clk>;
  121. status = "disabled";
  122. };
  123. uart2: serial@406880 {
  124. compatible = "ns16550a";
  125. reg = <0x406880 0x20>;
  126. reg-io-width = <0x4>;
  127. reg-shift = <0x2>;
  128. native-endian;
  129. interrupt-parent = <&periph_intc>;
  130. interrupts = <63>;
  131. clocks = <&uart_clk>;
  132. status = "disabled";
  133. };
  134. bsca: i2c@406200 {
  135. clock-frequency = <390000>;
  136. compatible = "brcm,brcmstb-i2c";
  137. interrupt-parent = <&upg_irq0_intc>;
  138. reg = <0x406200 0x58>;
  139. interrupts = <24>;
  140. interrupt-names = "upg_bsca";
  141. status = "disabled";
  142. };
  143. bscb: i2c@406280 {
  144. clock-frequency = <390000>;
  145. compatible = "brcm,brcmstb-i2c";
  146. interrupt-parent = <&upg_irq0_intc>;
  147. reg = <0x406280 0x58>;
  148. interrupts = <25>;
  149. interrupt-names = "upg_bscb";
  150. status = "disabled";
  151. };
  152. bscc: i2c@406300 {
  153. clock-frequency = <390000>;
  154. compatible = "brcm,brcmstb-i2c";
  155. interrupt-parent = <&upg_irq0_intc>;
  156. reg = <0x406300 0x58>;
  157. interrupts = <26>;
  158. interrupt-names = "upg_bscc";
  159. status = "disabled";
  160. };
  161. bscd: i2c@408980 {
  162. clock-frequency = <390000>;
  163. compatible = "brcm,brcmstb-i2c";
  164. interrupt-parent = <&upg_aon_irq0_intc>;
  165. reg = <0x408980 0x58>;
  166. interrupts = <27>;
  167. interrupt-names = "upg_bscd";
  168. status = "disabled";
  169. };
  170. pwma: pwm@406400 {
  171. compatible = "brcm,bcm7038-pwm";
  172. reg = <0x406400 0x28>;
  173. #pwm-cells = <2>;
  174. clocks = <&upg_clk>;
  175. status = "disabled";
  176. };
  177. pwmb: pwm@406700 {
  178. compatible = "brcm,bcm7038-pwm";
  179. reg = <0x406700 0x28>;
  180. #pwm-cells = <2>;
  181. clocks = <&upg_clk>;
  182. status = "disabled";
  183. };
  184. aon_pm_l2_intc: interrupt-controller@408240 {
  185. compatible = "brcm,l2-intc";
  186. reg = <0x408240 0x30>;
  187. interrupt-controller;
  188. #interrupt-cells = <1>;
  189. interrupt-parent = <&periph_intc>;
  190. interrupts = <50>;
  191. brcm,irq-can-wake;
  192. };
  193. upg_gio: gpio@406500 {
  194. compatible = "brcm,brcmstb-gpio";
  195. reg = <0x406500 0xa0>;
  196. #gpio-cells = <2>;
  197. #interrupt-cells = <2>;
  198. gpio-controller;
  199. interrupt-controller;
  200. interrupt-parent = <&upg_irq0_intc>;
  201. interrupts = <6>;
  202. brcm,gpio-bank-widths = <32 32 32 29 4>;
  203. };
  204. upg_gio_aon: gpio@408c00 {
  205. compatible = "brcm,brcmstb-gpio";
  206. reg = <0x408c00 0x60>;
  207. #gpio-cells = <2>;
  208. #interrupt-cells = <2>;
  209. gpio-controller;
  210. interrupt-controller;
  211. interrupt-parent = <&upg_aon_irq0_intc>;
  212. interrupts = <6>;
  213. interrupts-extended = <&upg_aon_irq0_intc 6>,
  214. <&aon_pm_l2_intc 5>;
  215. wakeup-source;
  216. brcm,gpio-bank-widths = <21 32 2>;
  217. };
  218. enet0: ethernet@430000 {
  219. phy-mode = "internal";
  220. phy-handle = <&phy1>;
  221. mac-address = [ 00 10 18 36 23 1a ];
  222. compatible = "brcm,genet-v2";
  223. #address-cells = <0x1>;
  224. #size-cells = <0x1>;
  225. reg = <0x430000 0x4c8c>;
  226. interrupts = <24>, <25>;
  227. interrupt-parent = <&periph_intc>;
  228. status = "disabled";
  229. mdio@e14 {
  230. compatible = "brcm,genet-mdio-v2";
  231. #address-cells = <0x1>;
  232. #size-cells = <0x0>;
  233. reg = <0xe14 0x8>;
  234. phy1: ethernet-phy@1 {
  235. max-speed = <100>;
  236. reg = <0x1>;
  237. compatible = "brcm,40nm-ephy",
  238. "ethernet-phy-ieee802.3-c22";
  239. };
  240. };
  241. };
  242. ehci0: usb@480300 {
  243. compatible = "brcm,bcm7358-ehci", "generic-ehci";
  244. reg = <0x480300 0x100>;
  245. native-endian;
  246. interrupt-parent = <&periph_intc>;
  247. interrupts = <65>;
  248. status = "disabled";
  249. };
  250. ohci0: usb@480400 {
  251. compatible = "brcm,bcm7358-ohci", "generic-ohci";
  252. reg = <0x480400 0x100>;
  253. native-endian;
  254. no-big-frame-no;
  255. interrupt-parent = <&periph_intc>;
  256. interrupts = <66>;
  257. status = "disabled";
  258. };
  259. hif_l2_intc: interrupt-controller@411000 {
  260. compatible = "brcm,l2-intc";
  261. reg = <0x411000 0x30>;
  262. interrupt-controller;
  263. #interrupt-cells = <1>;
  264. interrupt-parent = <&periph_intc>;
  265. interrupts = <30>;
  266. };
  267. nand: nand@412800 {
  268. compatible = "brcm,brcmnand-v5.0", "brcm,brcmnand";
  269. #address-cells = <1>;
  270. #size-cells = <0>;
  271. reg-names = "nand";
  272. reg = <0x412800 0x400>;
  273. interrupt-parent = <&hif_l2_intc>;
  274. interrupts = <24>;
  275. status = "disabled";
  276. };
  277. };
  278. };