bcm7360.dtsi 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. / {
  2. #address-cells = <1>;
  3. #size-cells = <1>;
  4. compatible = "brcm,bcm7360";
  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,bcm7360-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. aon_pm_l2_intc: interrupt-controller@408440 {
  178. compatible = "brcm,l2-intc";
  179. reg = <0x408440 0x30>;
  180. interrupt-controller;
  181. #interrupt-cells = <1>;
  182. interrupt-parent = <&periph_intc>;
  183. interrupts = <50>;
  184. brcm,irq-can-wake;
  185. };
  186. upg_gio: gpio@406500 {
  187. compatible = "brcm,brcmstb-gpio";
  188. reg = <0x406500 0xa0>;
  189. #gpio-cells = <2>;
  190. #interrupt-cells = <2>;
  191. gpio-controller;
  192. interrupt-controller;
  193. interrupt-parent = <&upg_irq0_intc>;
  194. interrupts = <6>;
  195. brcm,gpio-bank-widths = <32 32 32 29 4>;
  196. };
  197. upg_gio_aon: gpio@408c00 {
  198. compatible = "brcm,brcmstb-gpio";
  199. reg = <0x408c00 0x60>;
  200. #gpio-cells = <2>;
  201. #interrupt-cells = <2>;
  202. gpio-controller;
  203. interrupt-controller;
  204. interrupt-parent = <&upg_aon_irq0_intc>;
  205. interrupts = <6>;
  206. interrupts-extended = <&upg_aon_irq0_intc 6>,
  207. <&aon_pm_l2_intc 5>;
  208. wakeup-source;
  209. brcm,gpio-bank-widths = <21 32 2>;
  210. };
  211. enet0: ethernet@430000 {
  212. phy-mode = "internal";
  213. phy-handle = <&phy1>;
  214. mac-address = [ 00 10 18 36 23 1a ];
  215. compatible = "brcm,genet-v2";
  216. #address-cells = <0x1>;
  217. #size-cells = <0x1>;
  218. reg = <0x430000 0x4c8c>;
  219. interrupts = <24>, <25>;
  220. interrupt-parent = <&periph_intc>;
  221. status = "disabled";
  222. mdio@e14 {
  223. compatible = "brcm,genet-mdio-v2";
  224. #address-cells = <0x1>;
  225. #size-cells = <0x0>;
  226. reg = <0xe14 0x8>;
  227. phy1: ethernet-phy@1 {
  228. max-speed = <100>;
  229. reg = <0x1>;
  230. compatible = "brcm,40nm-ephy",
  231. "ethernet-phy-ieee802.3-c22";
  232. };
  233. };
  234. };
  235. ehci0: usb@480300 {
  236. compatible = "brcm,bcm7360-ehci", "generic-ehci";
  237. reg = <0x480300 0x100>;
  238. native-endian;
  239. interrupt-parent = <&periph_intc>;
  240. interrupts = <65>;
  241. status = "disabled";
  242. };
  243. ohci0: usb@480400 {
  244. compatible = "brcm,bcm7360-ohci", "generic-ohci";
  245. reg = <0x480400 0x100>;
  246. native-endian;
  247. no-big-frame-no;
  248. interrupt-parent = <&periph_intc>;
  249. interrupts = <66>;
  250. status = "disabled";
  251. };
  252. hif_l2_intc: interrupt-controller@411000 {
  253. compatible = "brcm,l2-intc";
  254. reg = <0x411000 0x30>;
  255. interrupt-controller;
  256. #interrupt-cells = <1>;
  257. interrupt-parent = <&periph_intc>;
  258. interrupts = <30>;
  259. };
  260. nand: nand@412800 {
  261. compatible = "brcm,brcmnand-v5.0", "brcm,brcmnand";
  262. #address-cells = <1>;
  263. #size-cells = <0>;
  264. reg-names = "nand";
  265. reg = <0x412800 0x400>;
  266. interrupt-parent = <&hif_l2_intc>;
  267. interrupts = <24>;
  268. status = "disabled";
  269. };
  270. sata: sata@181000 {
  271. compatible = "brcm,bcm7425-ahci", "brcm,sata3-ahci";
  272. reg-names = "ahci", "top-ctrl";
  273. reg = <0x181000 0xa9c>, <0x180020 0x1c>;
  274. interrupt-parent = <&periph_intc>;
  275. interrupts = <86>;
  276. #address-cells = <1>;
  277. #size-cells = <0>;
  278. status = "disabled";
  279. sata0: sata-port@0 {
  280. reg = <0>;
  281. phys = <&sata_phy0>;
  282. };
  283. sata1: sata-port@1 {
  284. reg = <1>;
  285. phys = <&sata_phy1>;
  286. };
  287. };
  288. sata_phy: sata-phy@180100 {
  289. compatible = "brcm,bcm7425-sata-phy", "brcm,phy-sata3";
  290. reg = <0x180100 0x0eff>;
  291. reg-names = "phy";
  292. #address-cells = <1>;
  293. #size-cells = <0>;
  294. status = "disabled";
  295. sata_phy0: sata-phy@0 {
  296. reg = <0>;
  297. #phy-cells = <0>;
  298. };
  299. sata_phy1: sata-phy@1 {
  300. reg = <1>;
  301. #phy-cells = <0>;
  302. };
  303. };
  304. sdhci0: sdhci@410000 {
  305. compatible = "brcm,bcm7425-sdhci";
  306. reg = <0x410000 0x100>;
  307. interrupt-parent = <&periph_intc>;
  308. interrupts = <82>;
  309. status = "disabled";
  310. };
  311. };
  312. };