omap3.dtsi 13 KB

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