omap3.dtsi 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592
  1. /*
  2. * Device Tree Source for OMAP3 SoC
  3. *
  4. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
  5. *
  6. * This file is licensed under the terms of the GNU General Public License
  7. * version 2. This program is licensed "as is" without any warranty of any
  8. * kind, whether express or implied.
  9. */
  10. #include <dt-bindings/gpio/gpio.h>
  11. #include <dt-bindings/interrupt-controller/irq.h>
  12. #include <dt-bindings/pinctrl/omap.h>
  13. #include "skeleton.dtsi"
  14. / {
  15. compatible = "ti,omap3430", "ti,omap3";
  16. interrupt-parent = <&intc>;
  17. aliases {
  18. i2c0 = &i2c1;
  19. i2c1 = &i2c2;
  20. i2c2 = &i2c3;
  21. serial0 = &uart1;
  22. serial1 = &uart2;
  23. serial2 = &uart3;
  24. };
  25. cpus {
  26. #address-cells = <1>;
  27. #size-cells = <0>;
  28. cpu@0 {
  29. compatible = "arm,cortex-a8";
  30. device_type = "cpu";
  31. reg = <0x0>;
  32. };
  33. };
  34. pmu {
  35. compatible = "arm,cortex-a8-pmu";
  36. reg = <0x54000000 0x800000>;
  37. interrupts = <3>;
  38. ti,hwmods = "debugss";
  39. };
  40. /*
  41. * The soc node represents the soc top level view. It is used for IPs
  42. * that are not memory mapped in the MPU view or for the MPU itself.
  43. */
  44. soc {
  45. compatible = "ti,omap-infra";
  46. mpu {
  47. compatible = "ti,omap3-mpu";
  48. ti,hwmods = "mpu";
  49. };
  50. iva {
  51. compatible = "ti,iva2.2";
  52. ti,hwmods = "iva";
  53. dsp {
  54. compatible = "ti,omap3-c64";
  55. };
  56. };
  57. };
  58. /*
  59. * XXX: Use a flat representation of the OMAP3 interconnect.
  60. * The real OMAP interconnect network is quite complex.
  61. * Since that will not bring real advantage to represent that in DT for
  62. * the moment, just use a fake OCP bus entry to represent the whole bus
  63. * hierarchy.
  64. */
  65. ocp {
  66. compatible = "simple-bus";
  67. reg = <0x68000000 0x10000>;
  68. interrupts = <9 10>;
  69. #address-cells = <1>;
  70. #size-cells = <1>;
  71. ranges;
  72. ti,hwmods = "l3_main";
  73. counter32k: counter@48320000 {
  74. compatible = "ti,omap-counter32k";
  75. reg = <0x48320000 0x20>;
  76. ti,hwmods = "counter_32k";
  77. };
  78. intc: interrupt-controller@48200000 {
  79. compatible = "ti,omap2-intc";
  80. interrupt-controller;
  81. #interrupt-cells = <1>;
  82. ti,intc-size = <96>;
  83. reg = <0x48200000 0x1000>;
  84. };
  85. sdma: dma-controller@48056000 {
  86. compatible = "ti,omap3630-sdma", "ti,omap3430-sdma";
  87. reg = <0x48056000 0x1000>;
  88. interrupts = <12>,
  89. <13>,
  90. <14>,
  91. <15>;
  92. #dma-cells = <1>;
  93. #dma-channels = <32>;
  94. #dma-requests = <96>;
  95. };
  96. omap3_pmx_core: pinmux@48002030 {
  97. compatible = "ti,omap3-padconf", "pinctrl-single";
  98. reg = <0x48002030 0x05cc>;
  99. #address-cells = <1>;
  100. #size-cells = <0>;
  101. #interrupt-cells = <1>;
  102. interrupt-controller;
  103. pinctrl-single,register-width = <16>;
  104. pinctrl-single,function-mask = <0xff1f>;
  105. };
  106. omap3_pmx_wkup: pinmux@48002a00 {
  107. compatible = "ti,omap3-padconf", "pinctrl-single";
  108. reg = <0x48002a00 0x5c>;
  109. #address-cells = <1>;
  110. #size-cells = <0>;
  111. #interrupt-cells = <1>;
  112. interrupt-controller;
  113. pinctrl-single,register-width = <16>;
  114. pinctrl-single,function-mask = <0xff1f>;
  115. };
  116. gpio1: gpio@48310000 {
  117. compatible = "ti,omap3-gpio";
  118. reg = <0x48310000 0x200>;
  119. interrupts = <29>;
  120. ti,hwmods = "gpio1";
  121. ti,gpio-always-on;
  122. gpio-controller;
  123. #gpio-cells = <2>;
  124. interrupt-controller;
  125. #interrupt-cells = <2>;
  126. };
  127. gpio2: gpio@49050000 {
  128. compatible = "ti,omap3-gpio";
  129. reg = <0x49050000 0x200>;
  130. interrupts = <30>;
  131. ti,hwmods = "gpio2";
  132. gpio-controller;
  133. #gpio-cells = <2>;
  134. interrupt-controller;
  135. #interrupt-cells = <2>;
  136. };
  137. gpio3: gpio@49052000 {
  138. compatible = "ti,omap3-gpio";
  139. reg = <0x49052000 0x200>;
  140. interrupts = <31>;
  141. ti,hwmods = "gpio3";
  142. gpio-controller;
  143. #gpio-cells = <2>;
  144. interrupt-controller;
  145. #interrupt-cells = <2>;
  146. };
  147. gpio4: gpio@49054000 {
  148. compatible = "ti,omap3-gpio";
  149. reg = <0x49054000 0x200>;
  150. interrupts = <32>;
  151. ti,hwmods = "gpio4";
  152. gpio-controller;
  153. #gpio-cells = <2>;
  154. interrupt-controller;
  155. #interrupt-cells = <2>;
  156. };
  157. gpio5: gpio@49056000 {
  158. compatible = "ti,omap3-gpio";
  159. reg = <0x49056000 0x200>;
  160. interrupts = <33>;
  161. ti,hwmods = "gpio5";
  162. gpio-controller;
  163. #gpio-cells = <2>;
  164. interrupt-controller;
  165. #interrupt-cells = <2>;
  166. };
  167. gpio6: gpio@49058000 {
  168. compatible = "ti,omap3-gpio";
  169. reg = <0x49058000 0x200>;
  170. interrupts = <34>;
  171. ti,hwmods = "gpio6";
  172. gpio-controller;
  173. #gpio-cells = <2>;
  174. interrupt-controller;
  175. #interrupt-cells = <2>;
  176. };
  177. uart1: serial@4806a000 {
  178. compatible = "ti,omap3-uart";
  179. reg = <0x4806a000 0x2000>;
  180. interrupts = <72>;
  181. dmas = <&sdma 49 &sdma 50>;
  182. dma-names = "tx", "rx";
  183. ti,hwmods = "uart1";
  184. clock-frequency = <48000000>;
  185. };
  186. uart2: serial@4806c000 {
  187. compatible = "ti,omap3-uart";
  188. reg = <0x4806c000 0x400>;
  189. interrupts = <73>;
  190. dmas = <&sdma 51 &sdma 52>;
  191. dma-names = "tx", "rx";
  192. ti,hwmods = "uart2";
  193. clock-frequency = <48000000>;
  194. };
  195. uart3: serial@49020000 {
  196. compatible = "ti,omap3-uart";
  197. reg = <0x49020000 0x400>;
  198. interrupts = <74>;
  199. dmas = <&sdma 53 &sdma 54>;
  200. dma-names = "tx", "rx";
  201. ti,hwmods = "uart3";
  202. clock-frequency = <48000000>;
  203. };
  204. i2c1: i2c@48070000 {
  205. compatible = "ti,omap3-i2c";
  206. reg = <0x48070000 0x80>;
  207. interrupts = <56>;
  208. dmas = <&sdma 27 &sdma 28>;
  209. dma-names = "tx", "rx";
  210. #address-cells = <1>;
  211. #size-cells = <0>;
  212. ti,hwmods = "i2c1";
  213. };
  214. i2c2: i2c@48072000 {
  215. compatible = "ti,omap3-i2c";
  216. reg = <0x48072000 0x80>;
  217. interrupts = <57>;
  218. dmas = <&sdma 29 &sdma 30>;
  219. dma-names = "tx", "rx";
  220. #address-cells = <1>;
  221. #size-cells = <0>;
  222. ti,hwmods = "i2c2";
  223. };
  224. i2c3: i2c@48060000 {
  225. compatible = "ti,omap3-i2c";
  226. reg = <0x48060000 0x80>;
  227. interrupts = <61>;
  228. dmas = <&sdma 25 &sdma 26>;
  229. dma-names = "tx", "rx";
  230. #address-cells = <1>;
  231. #size-cells = <0>;
  232. ti,hwmods = "i2c3";
  233. };
  234. mcspi1: spi@48098000 {
  235. compatible = "ti,omap2-mcspi";
  236. reg = <0x48098000 0x100>;
  237. interrupts = <65>;
  238. #address-cells = <1>;
  239. #size-cells = <0>;
  240. ti,hwmods = "mcspi1";
  241. ti,spi-num-cs = <4>;
  242. dmas = <&sdma 35>,
  243. <&sdma 36>,
  244. <&sdma 37>,
  245. <&sdma 38>,
  246. <&sdma 39>,
  247. <&sdma 40>,
  248. <&sdma 41>,
  249. <&sdma 42>;
  250. dma-names = "tx0", "rx0", "tx1", "rx1",
  251. "tx2", "rx2", "tx3", "rx3";
  252. };
  253. mcspi2: spi@4809a000 {
  254. compatible = "ti,omap2-mcspi";
  255. reg = <0x4809a000 0x100>;
  256. interrupts = <66>;
  257. #address-cells = <1>;
  258. #size-cells = <0>;
  259. ti,hwmods = "mcspi2";
  260. ti,spi-num-cs = <2>;
  261. dmas = <&sdma 43>,
  262. <&sdma 44>,
  263. <&sdma 45>,
  264. <&sdma 46>;
  265. dma-names = "tx0", "rx0", "tx1", "rx1";
  266. };
  267. mcspi3: spi@480b8000 {
  268. compatible = "ti,omap2-mcspi";
  269. reg = <0x480b8000 0x100>;
  270. interrupts = <91>;
  271. #address-cells = <1>;
  272. #size-cells = <0>;
  273. ti,hwmods = "mcspi3";
  274. ti,spi-num-cs = <2>;
  275. dmas = <&sdma 15>,
  276. <&sdma 16>,
  277. <&sdma 23>,
  278. <&sdma 24>;
  279. dma-names = "tx0", "rx0", "tx1", "rx1";
  280. };
  281. mcspi4: spi@480ba000 {
  282. compatible = "ti,omap2-mcspi";
  283. reg = <0x480ba000 0x100>;
  284. interrupts = <48>;
  285. #address-cells = <1>;
  286. #size-cells = <0>;
  287. ti,hwmods = "mcspi4";
  288. ti,spi-num-cs = <1>;
  289. dmas = <&sdma 70>, <&sdma 71>;
  290. dma-names = "tx0", "rx0";
  291. };
  292. hdqw1w: 1w@480b2000 {
  293. compatible = "ti,omap3-1w";
  294. reg = <0x480b2000 0x1000>;
  295. interrupts = <58>;
  296. ti,hwmods = "hdq1w";
  297. };
  298. mmc1: mmc@4809c000 {
  299. compatible = "ti,omap3-hsmmc";
  300. reg = <0x4809c000 0x200>;
  301. interrupts = <83>;
  302. ti,hwmods = "mmc1";
  303. ti,dual-volt;
  304. dmas = <&sdma 61>, <&sdma 62>;
  305. dma-names = "tx", "rx";
  306. };
  307. mmc2: mmc@480b4000 {
  308. compatible = "ti,omap3-hsmmc";
  309. reg = <0x480b4000 0x200>;
  310. interrupts = <86>;
  311. ti,hwmods = "mmc2";
  312. dmas = <&sdma 47>, <&sdma 48>;
  313. dma-names = "tx", "rx";
  314. };
  315. mmc3: mmc@480ad000 {
  316. compatible = "ti,omap3-hsmmc";
  317. reg = <0x480ad000 0x200>;
  318. interrupts = <94>;
  319. ti,hwmods = "mmc3";
  320. dmas = <&sdma 77>, <&sdma 78>;
  321. dma-names = "tx", "rx";
  322. };
  323. wdt2: wdt@48314000 {
  324. compatible = "ti,omap3-wdt";
  325. reg = <0x48314000 0x80>;
  326. ti,hwmods = "wd_timer2";
  327. };
  328. mcbsp1: mcbsp@48074000 {
  329. compatible = "ti,omap3-mcbsp";
  330. reg = <0x48074000 0xff>;
  331. reg-names = "mpu";
  332. interrupts = <16>, /* OCP compliant interrupt */
  333. <59>, /* TX interrupt */
  334. <60>; /* RX interrupt */
  335. interrupt-names = "common", "tx", "rx";
  336. ti,buffer-size = <128>;
  337. ti,hwmods = "mcbsp1";
  338. dmas = <&sdma 31>,
  339. <&sdma 32>;
  340. dma-names = "tx", "rx";
  341. };
  342. mcbsp2: mcbsp@49022000 {
  343. compatible = "ti,omap3-mcbsp";
  344. reg = <0x49022000 0xff>,
  345. <0x49028000 0xff>;
  346. reg-names = "mpu", "sidetone";
  347. interrupts = <17>, /* OCP compliant interrupt */
  348. <62>, /* TX interrupt */
  349. <63>, /* RX interrupt */
  350. <4>; /* Sidetone */
  351. interrupt-names = "common", "tx", "rx", "sidetone";
  352. ti,buffer-size = <1280>;
  353. ti,hwmods = "mcbsp2", "mcbsp2_sidetone";
  354. dmas = <&sdma 33>,
  355. <&sdma 34>;
  356. dma-names = "tx", "rx";
  357. };
  358. mcbsp3: mcbsp@49024000 {
  359. compatible = "ti,omap3-mcbsp";
  360. reg = <0x49024000 0xff>,
  361. <0x4902a000 0xff>;
  362. reg-names = "mpu", "sidetone";
  363. interrupts = <22>, /* OCP compliant interrupt */
  364. <89>, /* TX interrupt */
  365. <90>, /* RX interrupt */
  366. <5>; /* Sidetone */
  367. interrupt-names = "common", "tx", "rx", "sidetone";
  368. ti,buffer-size = <128>;
  369. ti,hwmods = "mcbsp3", "mcbsp3_sidetone";
  370. dmas = <&sdma 17>,
  371. <&sdma 18>;
  372. dma-names = "tx", "rx";
  373. };
  374. mcbsp4: mcbsp@49026000 {
  375. compatible = "ti,omap3-mcbsp";
  376. reg = <0x49026000 0xff>;
  377. reg-names = "mpu";
  378. interrupts = <23>, /* OCP compliant interrupt */
  379. <54>, /* TX interrupt */
  380. <55>; /* RX interrupt */
  381. interrupt-names = "common", "tx", "rx";
  382. ti,buffer-size = <128>;
  383. ti,hwmods = "mcbsp4";
  384. dmas = <&sdma 19>,
  385. <&sdma 20>;
  386. dma-names = "tx", "rx";
  387. };
  388. mcbsp5: mcbsp@48096000 {
  389. compatible = "ti,omap3-mcbsp";
  390. reg = <0x48096000 0xff>;
  391. reg-names = "mpu";
  392. interrupts = <27>, /* OCP compliant interrupt */
  393. <81>, /* TX interrupt */
  394. <82>; /* RX interrupt */
  395. interrupt-names = "common", "tx", "rx";
  396. ti,buffer-size = <128>;
  397. ti,hwmods = "mcbsp5";
  398. dmas = <&sdma 21>,
  399. <&sdma 22>;
  400. dma-names = "tx", "rx";
  401. };
  402. timer1: timer@48318000 {
  403. compatible = "ti,omap3430-timer";
  404. reg = <0x48318000 0x400>;
  405. interrupts = <37>;
  406. ti,hwmods = "timer1";
  407. ti,timer-alwon;
  408. };
  409. timer2: timer@49032000 {
  410. compatible = "ti,omap3430-timer";
  411. reg = <0x49032000 0x400>;
  412. interrupts = <38>;
  413. ti,hwmods = "timer2";
  414. };
  415. timer3: timer@49034000 {
  416. compatible = "ti,omap3430-timer";
  417. reg = <0x49034000 0x400>;
  418. interrupts = <39>;
  419. ti,hwmods = "timer3";
  420. };
  421. timer4: timer@49036000 {
  422. compatible = "ti,omap3430-timer";
  423. reg = <0x49036000 0x400>;
  424. interrupts = <40>;
  425. ti,hwmods = "timer4";
  426. };
  427. timer5: timer@49038000 {
  428. compatible = "ti,omap3430-timer";
  429. reg = <0x49038000 0x400>;
  430. interrupts = <41>;
  431. ti,hwmods = "timer5";
  432. ti,timer-dsp;
  433. };
  434. timer6: timer@4903a000 {
  435. compatible = "ti,omap3430-timer";
  436. reg = <0x4903a000 0x400>;
  437. interrupts = <42>;
  438. ti,hwmods = "timer6";
  439. ti,timer-dsp;
  440. };
  441. timer7: timer@4903c000 {
  442. compatible = "ti,omap3430-timer";
  443. reg = <0x4903c000 0x400>;
  444. interrupts = <43>;
  445. ti,hwmods = "timer7";
  446. ti,timer-dsp;
  447. };
  448. timer8: timer@4903e000 {
  449. compatible = "ti,omap3430-timer";
  450. reg = <0x4903e000 0x400>;
  451. interrupts = <44>;
  452. ti,hwmods = "timer8";
  453. ti,timer-pwm;
  454. ti,timer-dsp;
  455. };
  456. timer9: timer@49040000 {
  457. compatible = "ti,omap3430-timer";
  458. reg = <0x49040000 0x400>;
  459. interrupts = <45>;
  460. ti,hwmods = "timer9";
  461. ti,timer-pwm;
  462. };
  463. timer10: timer@48086000 {
  464. compatible = "ti,omap3430-timer";
  465. reg = <0x48086000 0x400>;
  466. interrupts = <46>;
  467. ti,hwmods = "timer10";
  468. ti,timer-pwm;
  469. };
  470. timer11: timer@48088000 {
  471. compatible = "ti,omap3430-timer";
  472. reg = <0x48088000 0x400>;
  473. interrupts = <47>;
  474. ti,hwmods = "timer11";
  475. ti,timer-pwm;
  476. };
  477. timer12: timer@48304000 {
  478. compatible = "ti,omap3430-timer";
  479. reg = <0x48304000 0x400>;
  480. interrupts = <95>;
  481. ti,hwmods = "timer12";
  482. ti,timer-alwon;
  483. ti,timer-secure;
  484. };
  485. usbhstll: usbhstll@48062000 {
  486. compatible = "ti,usbhs-tll";
  487. reg = <0x48062000 0x1000>;
  488. interrupts = <78>;
  489. ti,hwmods = "usb_tll_hs";
  490. };
  491. usbhshost: usbhshost@48064000 {
  492. compatible = "ti,usbhs-host";
  493. reg = <0x48064000 0x400>;
  494. ti,hwmods = "usb_host_hs";
  495. #address-cells = <1>;
  496. #size-cells = <1>;
  497. ranges;
  498. usbhsohci: ohci@48064400 {
  499. compatible = "ti,ohci-omap3", "usb-ohci";
  500. reg = <0x48064400 0x400>;
  501. interrupt-parent = <&intc>;
  502. interrupts = <76>;
  503. };
  504. usbhsehci: ehci@48064800 {
  505. compatible = "ti,ehci-omap", "usb-ehci";
  506. reg = <0x48064800 0x400>;
  507. interrupt-parent = <&intc>;
  508. interrupts = <77>;
  509. };
  510. };
  511. gpmc: gpmc@6e000000 {
  512. compatible = "ti,omap3430-gpmc";
  513. ti,hwmods = "gpmc";
  514. reg = <0x6e000000 0x02d0>;
  515. interrupts = <20>;
  516. gpmc,num-cs = <8>;
  517. gpmc,num-waitpins = <4>;
  518. #address-cells = <2>;
  519. #size-cells = <1>;
  520. };
  521. usb_otg_hs: usb_otg_hs@480ab000 {
  522. compatible = "ti,omap3-musb";
  523. reg = <0x480ab000 0x1000>;
  524. interrupts = <92>, <93>;
  525. interrupt-names = "mc", "dma";
  526. ti,hwmods = "usb_otg_hs";
  527. multipoint = <1>;
  528. num-eps = <16>;
  529. ram-bits = <12>;
  530. };
  531. };
  532. };