am33xx.dtsi 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534
  1. /*
  2. * Device Tree Source for AM33XX SoC
  3. *
  4. * Copyright (C) 2012 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/pinctrl/am33xx.h>
  12. #include "skeleton.dtsi"
  13. / {
  14. compatible = "ti,am33xx";
  15. interrupt-parent = <&intc>;
  16. aliases {
  17. serial0 = &uart0;
  18. serial1 = &uart1;
  19. serial2 = &uart2;
  20. serial3 = &uart3;
  21. serial4 = &uart4;
  22. serial5 = &uart5;
  23. d_can0 = &dcan0;
  24. d_can1 = &dcan1;
  25. };
  26. cpus {
  27. #address-cells = <1>;
  28. #size-cells = <0>;
  29. cpu@0 {
  30. compatible = "arm,cortex-a8";
  31. device_type = "cpu";
  32. reg = <0>;
  33. /*
  34. * To consider voltage drop between PMIC and SoC,
  35. * tolerance value is reduced to 2% from 4% and
  36. * voltage value is increased as a precaution.
  37. */
  38. operating-points = <
  39. /* kHz uV */
  40. 720000 1285000
  41. 600000 1225000
  42. 500000 1125000
  43. 275000 1125000
  44. >;
  45. voltage-tolerance = <2>; /* 2 percentage */
  46. clock-latency = <300000>; /* From omap-cpufreq driver */
  47. };
  48. };
  49. /*
  50. * The soc node represents the soc top level view. It is uses for IPs
  51. * that are not memory mapped in the MPU view or for the MPU itself.
  52. */
  53. soc {
  54. compatible = "ti,omap-infra";
  55. mpu {
  56. compatible = "ti,omap3-mpu";
  57. ti,hwmods = "mpu";
  58. };
  59. };
  60. am33xx_pinmux: pinmux@44e10800 {
  61. compatible = "pinctrl-single";
  62. reg = <0x44e10800 0x0238>;
  63. #address-cells = <1>;
  64. #size-cells = <0>;
  65. pinctrl-single,register-width = <32>;
  66. pinctrl-single,function-mask = <0x7f>;
  67. };
  68. /*
  69. * XXX: Use a flat representation of the AM33XX interconnect.
  70. * The real AM33XX interconnect network is quite complex.Since
  71. * that will not bring real advantage to represent that in DT
  72. * for the moment, just use a fake OCP bus entry to represent
  73. * the whole bus hierarchy.
  74. */
  75. ocp {
  76. compatible = "simple-bus";
  77. #address-cells = <1>;
  78. #size-cells = <1>;
  79. ranges;
  80. ti,hwmods = "l3_main";
  81. intc: interrupt-controller@48200000 {
  82. compatible = "ti,omap2-intc";
  83. interrupt-controller;
  84. #interrupt-cells = <1>;
  85. ti,intc-size = <128>;
  86. reg = <0x48200000 0x1000>;
  87. };
  88. gpio0: gpio@44e07000 {
  89. compatible = "ti,omap4-gpio";
  90. ti,hwmods = "gpio1";
  91. gpio-controller;
  92. #gpio-cells = <2>;
  93. interrupt-controller;
  94. #interrupt-cells = <1>;
  95. reg = <0x44e07000 0x1000>;
  96. interrupts = <96>;
  97. };
  98. gpio1: gpio@4804c000 {
  99. compatible = "ti,omap4-gpio";
  100. ti,hwmods = "gpio2";
  101. gpio-controller;
  102. #gpio-cells = <2>;
  103. interrupt-controller;
  104. #interrupt-cells = <1>;
  105. reg = <0x4804c000 0x1000>;
  106. interrupts = <98>;
  107. };
  108. gpio2: gpio@481ac000 {
  109. compatible = "ti,omap4-gpio";
  110. ti,hwmods = "gpio3";
  111. gpio-controller;
  112. #gpio-cells = <2>;
  113. interrupt-controller;
  114. #interrupt-cells = <1>;
  115. reg = <0x481ac000 0x1000>;
  116. interrupts = <32>;
  117. };
  118. gpio3: gpio@481ae000 {
  119. compatible = "ti,omap4-gpio";
  120. ti,hwmods = "gpio4";
  121. gpio-controller;
  122. #gpio-cells = <2>;
  123. interrupt-controller;
  124. #interrupt-cells = <1>;
  125. reg = <0x481ae000 0x1000>;
  126. interrupts = <62>;
  127. };
  128. uart0: serial@44e09000 {
  129. compatible = "ti,omap3-uart";
  130. ti,hwmods = "uart1";
  131. clock-frequency = <48000000>;
  132. reg = <0x44e09000 0x2000>;
  133. interrupts = <72>;
  134. status = "disabled";
  135. };
  136. uart1: serial@48022000 {
  137. compatible = "ti,omap3-uart";
  138. ti,hwmods = "uart2";
  139. clock-frequency = <48000000>;
  140. reg = <0x48022000 0x2000>;
  141. interrupts = <73>;
  142. status = "disabled";
  143. };
  144. uart2: serial@48024000 {
  145. compatible = "ti,omap3-uart";
  146. ti,hwmods = "uart3";
  147. clock-frequency = <48000000>;
  148. reg = <0x48024000 0x2000>;
  149. interrupts = <74>;
  150. status = "disabled";
  151. };
  152. uart3: serial@481a6000 {
  153. compatible = "ti,omap3-uart";
  154. ti,hwmods = "uart4";
  155. clock-frequency = <48000000>;
  156. reg = <0x481a6000 0x2000>;
  157. interrupts = <44>;
  158. status = "disabled";
  159. };
  160. uart4: serial@481a8000 {
  161. compatible = "ti,omap3-uart";
  162. ti,hwmods = "uart5";
  163. clock-frequency = <48000000>;
  164. reg = <0x481a8000 0x2000>;
  165. interrupts = <45>;
  166. status = "disabled";
  167. };
  168. uart5: serial@481aa000 {
  169. compatible = "ti,omap3-uart";
  170. ti,hwmods = "uart6";
  171. clock-frequency = <48000000>;
  172. reg = <0x481aa000 0x2000>;
  173. interrupts = <46>;
  174. status = "disabled";
  175. };
  176. i2c0: i2c@44e0b000 {
  177. compatible = "ti,omap4-i2c";
  178. #address-cells = <1>;
  179. #size-cells = <0>;
  180. ti,hwmods = "i2c1";
  181. reg = <0x44e0b000 0x1000>;
  182. interrupts = <70>;
  183. status = "disabled";
  184. };
  185. i2c1: i2c@4802a000 {
  186. compatible = "ti,omap4-i2c";
  187. #address-cells = <1>;
  188. #size-cells = <0>;
  189. ti,hwmods = "i2c2";
  190. reg = <0x4802a000 0x1000>;
  191. interrupts = <71>;
  192. status = "disabled";
  193. };
  194. i2c2: i2c@4819c000 {
  195. compatible = "ti,omap4-i2c";
  196. #address-cells = <1>;
  197. #size-cells = <0>;
  198. ti,hwmods = "i2c3";
  199. reg = <0x4819c000 0x1000>;
  200. interrupts = <30>;
  201. status = "disabled";
  202. };
  203. wdt2: wdt@44e35000 {
  204. compatible = "ti,omap3-wdt";
  205. ti,hwmods = "wd_timer2";
  206. reg = <0x44e35000 0x1000>;
  207. interrupts = <91>;
  208. };
  209. dcan0: d_can@481cc000 {
  210. compatible = "bosch,d_can";
  211. ti,hwmods = "d_can0";
  212. reg = <0x481cc000 0x2000
  213. 0x44e10644 0x4>;
  214. interrupts = <52>;
  215. status = "disabled";
  216. };
  217. dcan1: d_can@481d0000 {
  218. compatible = "bosch,d_can";
  219. ti,hwmods = "d_can1";
  220. reg = <0x481d0000 0x2000
  221. 0x44e10644 0x4>;
  222. interrupts = <55>;
  223. status = "disabled";
  224. };
  225. timer1: timer@44e31000 {
  226. compatible = "ti,am335x-timer-1ms";
  227. reg = <0x44e31000 0x400>;
  228. interrupts = <67>;
  229. ti,hwmods = "timer1";
  230. ti,timer-alwon;
  231. };
  232. timer2: timer@48040000 {
  233. compatible = "ti,am335x-timer";
  234. reg = <0x48040000 0x400>;
  235. interrupts = <68>;
  236. ti,hwmods = "timer2";
  237. };
  238. timer3: timer@48042000 {
  239. compatible = "ti,am335x-timer";
  240. reg = <0x48042000 0x400>;
  241. interrupts = <69>;
  242. ti,hwmods = "timer3";
  243. };
  244. timer4: timer@48044000 {
  245. compatible = "ti,am335x-timer";
  246. reg = <0x48044000 0x400>;
  247. interrupts = <92>;
  248. ti,hwmods = "timer4";
  249. ti,timer-pwm;
  250. };
  251. timer5: timer@48046000 {
  252. compatible = "ti,am335x-timer";
  253. reg = <0x48046000 0x400>;
  254. interrupts = <93>;
  255. ti,hwmods = "timer5";
  256. ti,timer-pwm;
  257. };
  258. timer6: timer@48048000 {
  259. compatible = "ti,am335x-timer";
  260. reg = <0x48048000 0x400>;
  261. interrupts = <94>;
  262. ti,hwmods = "timer6";
  263. ti,timer-pwm;
  264. };
  265. timer7: timer@4804a000 {
  266. compatible = "ti,am335x-timer";
  267. reg = <0x4804a000 0x400>;
  268. interrupts = <95>;
  269. ti,hwmods = "timer7";
  270. ti,timer-pwm;
  271. };
  272. rtc@44e3e000 {
  273. compatible = "ti,da830-rtc";
  274. reg = <0x44e3e000 0x1000>;
  275. interrupts = <75
  276. 76>;
  277. ti,hwmods = "rtc";
  278. };
  279. spi0: spi@48030000 {
  280. compatible = "ti,omap4-mcspi";
  281. #address-cells = <1>;
  282. #size-cells = <0>;
  283. reg = <0x48030000 0x400>;
  284. interrupts = <65>;
  285. ti,spi-num-cs = <2>;
  286. ti,hwmods = "spi0";
  287. status = "disabled";
  288. };
  289. spi1: spi@481a0000 {
  290. compatible = "ti,omap4-mcspi";
  291. #address-cells = <1>;
  292. #size-cells = <0>;
  293. reg = <0x481a0000 0x400>;
  294. interrupts = <125>;
  295. ti,spi-num-cs = <2>;
  296. ti,hwmods = "spi1";
  297. status = "disabled";
  298. };
  299. usb@47400000 {
  300. compatible = "ti,musb-am33xx";
  301. reg = <0x47400000 0x1000 /* usbss */
  302. 0x47401000 0x800 /* musb instance 0 */
  303. 0x47401800 0x800>; /* musb instance 1 */
  304. interrupts = <17 /* usbss */
  305. 18 /* musb instance 0 */
  306. 19>; /* musb instance 1 */
  307. multipoint = <1>;
  308. num-eps = <16>;
  309. ram-bits = <12>;
  310. port0-mode = <3>;
  311. port1-mode = <3>;
  312. power = <250>;
  313. ti,hwmods = "usb_otg_hs";
  314. };
  315. epwmss0: epwmss@48300000 {
  316. compatible = "ti,am33xx-pwmss";
  317. reg = <0x48300000 0x10>;
  318. ti,hwmods = "epwmss0";
  319. #address-cells = <1>;
  320. #size-cells = <1>;
  321. status = "disabled";
  322. ranges = <0x48300100 0x48300100 0x80 /* ECAP */
  323. 0x48300180 0x48300180 0x80 /* EQEP */
  324. 0x48300200 0x48300200 0x80>; /* EHRPWM */
  325. ecap0: ecap@48300100 {
  326. compatible = "ti,am33xx-ecap";
  327. #pwm-cells = <3>;
  328. reg = <0x48300100 0x80>;
  329. ti,hwmods = "ecap0";
  330. status = "disabled";
  331. };
  332. ehrpwm0: ehrpwm@48300200 {
  333. compatible = "ti,am33xx-ehrpwm";
  334. #pwm-cells = <3>;
  335. reg = <0x48300200 0x80>;
  336. ti,hwmods = "ehrpwm0";
  337. status = "disabled";
  338. };
  339. };
  340. epwmss1: epwmss@48302000 {
  341. compatible = "ti,am33xx-pwmss";
  342. reg = <0x48302000 0x10>;
  343. ti,hwmods = "epwmss1";
  344. #address-cells = <1>;
  345. #size-cells = <1>;
  346. status = "disabled";
  347. ranges = <0x48302100 0x48302100 0x80 /* ECAP */
  348. 0x48302180 0x48302180 0x80 /* EQEP */
  349. 0x48302200 0x48302200 0x80>; /* EHRPWM */
  350. ecap1: ecap@48302100 {
  351. compatible = "ti,am33xx-ecap";
  352. #pwm-cells = <3>;
  353. reg = <0x48302100 0x80>;
  354. ti,hwmods = "ecap1";
  355. status = "disabled";
  356. };
  357. ehrpwm1: ehrpwm@48302200 {
  358. compatible = "ti,am33xx-ehrpwm";
  359. #pwm-cells = <3>;
  360. reg = <0x48302200 0x80>;
  361. ti,hwmods = "ehrpwm1";
  362. status = "disabled";
  363. };
  364. };
  365. epwmss2: epwmss@48304000 {
  366. compatible = "ti,am33xx-pwmss";
  367. reg = <0x48304000 0x10>;
  368. ti,hwmods = "epwmss2";
  369. #address-cells = <1>;
  370. #size-cells = <1>;
  371. status = "disabled";
  372. ranges = <0x48304100 0x48304100 0x80 /* ECAP */
  373. 0x48304180 0x48304180 0x80 /* EQEP */
  374. 0x48304200 0x48304200 0x80>; /* EHRPWM */
  375. ecap2: ecap@48304100 {
  376. compatible = "ti,am33xx-ecap";
  377. #pwm-cells = <3>;
  378. reg = <0x48304100 0x80>;
  379. ti,hwmods = "ecap2";
  380. status = "disabled";
  381. };
  382. ehrpwm2: ehrpwm@48304200 {
  383. compatible = "ti,am33xx-ehrpwm";
  384. #pwm-cells = <3>;
  385. reg = <0x48304200 0x80>;
  386. ti,hwmods = "ehrpwm2";
  387. status = "disabled";
  388. };
  389. };
  390. mac: ethernet@4a100000 {
  391. compatible = "ti,cpsw";
  392. ti,hwmods = "cpgmac0";
  393. cpdma_channels = <8>;
  394. ale_entries = <1024>;
  395. bd_ram_size = <0x2000>;
  396. no_bd_ram = <0>;
  397. rx_descs = <64>;
  398. mac_control = <0x20>;
  399. slaves = <2>;
  400. active_slave = <0>;
  401. cpts_clock_mult = <0x80000000>;
  402. cpts_clock_shift = <29>;
  403. reg = <0x4a100000 0x800
  404. 0x4a101200 0x100>;
  405. #address-cells = <1>;
  406. #size-cells = <1>;
  407. interrupt-parent = <&intc>;
  408. /*
  409. * c0_rx_thresh_pend
  410. * c0_rx_pend
  411. * c0_tx_pend
  412. * c0_misc_pend
  413. */
  414. interrupts = <40 41 42 43>;
  415. ranges;
  416. davinci_mdio: mdio@4a101000 {
  417. compatible = "ti,davinci_mdio";
  418. #address-cells = <1>;
  419. #size-cells = <0>;
  420. ti,hwmods = "davinci_mdio";
  421. bus_freq = <1000000>;
  422. reg = <0x4a101000 0x100>;
  423. };
  424. cpsw_emac0: slave@4a100200 {
  425. /* Filled in by U-Boot */
  426. mac-address = [ 00 00 00 00 00 00 ];
  427. };
  428. cpsw_emac1: slave@4a100300 {
  429. /* Filled in by U-Boot */
  430. mac-address = [ 00 00 00 00 00 00 ];
  431. };
  432. };
  433. ocmcram: ocmcram@40300000 {
  434. compatible = "ti,am3352-ocmcram";
  435. reg = <0x40300000 0x10000>;
  436. ti,hwmods = "ocmcram";
  437. };
  438. wkup_m3: wkup_m3@44d00000 {
  439. compatible = "ti,am3353-wkup-m3";
  440. reg = <0x44d00000 0x4000 /* M3 UMEM */
  441. 0x44d80000 0x2000>; /* M3 DMEM */
  442. ti,hwmods = "wkup_m3";
  443. };
  444. elm: elm@48080000 {
  445. compatible = "ti,am3352-elm";
  446. reg = <0x48080000 0x2000>;
  447. interrupts = <4>;
  448. ti,hwmods = "elm";
  449. status = "disabled";
  450. };
  451. tscadc: tscadc@44e0d000 {
  452. compatible = "ti,am3359-tscadc";
  453. reg = <0x44e0d000 0x1000>;
  454. interrupt-parent = <&intc>;
  455. interrupts = <16>;
  456. ti,hwmods = "adc_tsc";
  457. status = "disabled";
  458. tsc {
  459. compatible = "ti,am3359-tsc";
  460. };
  461. am335x_adc: adc {
  462. #io-channel-cells = <1>;
  463. compatible = "ti,am3359-adc";
  464. };
  465. };
  466. gpmc: gpmc@50000000 {
  467. compatible = "ti,am3352-gpmc";
  468. ti,hwmods = "gpmc";
  469. reg = <0x50000000 0x2000>;
  470. interrupts = <100>;
  471. gpmc,num-cs = <7>;
  472. gpmc,num-waitpins = <2>;
  473. #address-cells = <2>;
  474. #size-cells = <1>;
  475. status = "disabled";
  476. };
  477. };
  478. };