omap4.dtsi 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
  4. */
  5. #include <dt-bindings/bus/ti-sysc.h>
  6. #include <dt-bindings/clock/omap4.h>
  7. #include <dt-bindings/gpio/gpio.h>
  8. #include <dt-bindings/interrupt-controller/arm-gic.h>
  9. #include <dt-bindings/pinctrl/omap.h>
  10. #include <dt-bindings/clock/omap4.h>
  11. / {
  12. compatible = "ti,omap4430", "ti,omap4";
  13. interrupt-parent = <&wakeupgen>;
  14. #address-cells = <1>;
  15. #size-cells = <1>;
  16. chosen { };
  17. aliases {
  18. i2c0 = &i2c1;
  19. i2c1 = &i2c2;
  20. i2c2 = &i2c3;
  21. i2c3 = &i2c4;
  22. mmc0 = &mmc1;
  23. mmc1 = &mmc2;
  24. mmc2 = &mmc3;
  25. mmc3 = &mmc4;
  26. mmc4 = &mmc5;
  27. serial0 = &uart1;
  28. serial1 = &uart2;
  29. serial2 = &uart3;
  30. serial3 = &uart4;
  31. rproc0 = &dsp;
  32. rproc1 = &ipu;
  33. };
  34. cpus {
  35. #address-cells = <1>;
  36. #size-cells = <0>;
  37. cpu@0 {
  38. compatible = "arm,cortex-a9";
  39. device_type = "cpu";
  40. next-level-cache = <&L2>;
  41. reg = <0x0>;
  42. clocks = <&dpll_mpu_ck>;
  43. clock-names = "cpu";
  44. clock-latency = <300000>; /* From omap-cpufreq driver */
  45. };
  46. cpu@1 {
  47. compatible = "arm,cortex-a9";
  48. device_type = "cpu";
  49. next-level-cache = <&L2>;
  50. reg = <0x1>;
  51. };
  52. };
  53. /*
  54. * Needed early by omap4_sram_init() for barrier, do not move to l3
  55. * interconnect as simple-pm-bus probes at module_init() time.
  56. */
  57. ocmcram: sram@40304000 {
  58. compatible = "mmio-sram";
  59. reg = <0x40304000 0xa000>; /* 40k */
  60. };
  61. gic: interrupt-controller@48241000 {
  62. compatible = "arm,cortex-a9-gic";
  63. interrupt-controller;
  64. #interrupt-cells = <3>;
  65. reg = <0x48241000 0x1000>,
  66. <0x48240100 0x0100>;
  67. interrupt-parent = <&gic>;
  68. };
  69. L2: cache-controller@48242000 {
  70. compatible = "arm,pl310-cache";
  71. reg = <0x48242000 0x1000>;
  72. cache-unified;
  73. cache-level = <2>;
  74. };
  75. local-timer@48240600 {
  76. compatible = "arm,cortex-a9-twd-timer";
  77. clocks = <&mpu_periphclk>;
  78. reg = <0x48240600 0x20>;
  79. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_EDGE_RISING)>;
  80. interrupt-parent = <&gic>;
  81. };
  82. wakeupgen: interrupt-controller@48281000 {
  83. compatible = "ti,omap4-wugen-mpu";
  84. interrupt-controller;
  85. #interrupt-cells = <3>;
  86. reg = <0x48281000 0x1000>;
  87. interrupt-parent = <&gic>;
  88. };
  89. /*
  90. * XXX: Use a flat representation of the OMAP4 interconnect.
  91. * The real OMAP interconnect network is quite complex.
  92. * Since it will not bring real advantage to represent that in DT for
  93. * the moment, just use a fake OCP bus entry to represent the whole bus
  94. * hierarchy.
  95. */
  96. ocp {
  97. compatible = "simple-pm-bus";
  98. power-domains = <&prm_l4per>;
  99. clocks = <&l3_1_clkctrl OMAP4_L3_MAIN_1_CLKCTRL 0>,
  100. <&l3_2_clkctrl OMAP4_L3_MAIN_2_CLKCTRL 0>,
  101. <&l3_instr_clkctrl OMAP4_L3_MAIN_3_CLKCTRL 0>;
  102. #address-cells = <1>;
  103. #size-cells = <1>;
  104. ranges;
  105. l3-noc@44000000 {
  106. compatible = "ti,omap4-l3-noc";
  107. reg = <0x44000000 0x1000>,
  108. <0x44800000 0x2000>,
  109. <0x45000000 0x1000>;
  110. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
  111. <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  112. };
  113. l4_wkup: interconnect@4a300000 {
  114. };
  115. l4_cfg: interconnect@4a000000 {
  116. };
  117. l4_per: interconnect@48000000 {
  118. };
  119. target-module@48210000 {
  120. compatible = "ti,sysc-omap4-simple", "ti,sysc";
  121. power-domains = <&prm_mpu>;
  122. clocks = <&mpuss_clkctrl OMAP4_MPU_CLKCTRL 0>;
  123. clock-names = "fck";
  124. #address-cells = <1>;
  125. #size-cells = <1>;
  126. ranges = <0 0x48210000 0x1f0000>;
  127. mpu {
  128. compatible = "ti,omap4-mpu";
  129. sram = <&ocmcram>;
  130. };
  131. };
  132. l4_abe: interconnect@40100000 {
  133. };
  134. target-module@50000000 {
  135. compatible = "ti,sysc-omap2", "ti,sysc";
  136. reg = <0x50000000 4>,
  137. <0x50000010 4>,
  138. <0x50000014 4>;
  139. reg-names = "rev", "sysc", "syss";
  140. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  141. <SYSC_IDLE_NO>,
  142. <SYSC_IDLE_SMART>;
  143. ti,syss-mask = <1>;
  144. ti,no-idle-on-init;
  145. clocks = <&l3_2_clkctrl OMAP4_GPMC_CLKCTRL 0>;
  146. clock-names = "fck";
  147. #address-cells = <1>;
  148. #size-cells = <1>;
  149. ranges = <0x50000000 0x50000000 0x00001000>, /* regs */
  150. <0x00000000 0x00000000 0x40000000>; /* data */
  151. gpmc: gpmc@50000000 {
  152. compatible = "ti,omap4430-gpmc";
  153. reg = <0x50000000 0x1000>;
  154. #address-cells = <2>;
  155. #size-cells = <1>;
  156. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  157. dmas = <&sdma 4>;
  158. dma-names = "rxtx";
  159. gpmc,num-cs = <8>;
  160. gpmc,num-waitpins = <4>;
  161. clocks = <&l3_div_ck>;
  162. clock-names = "fck";
  163. interrupt-controller;
  164. #interrupt-cells = <2>;
  165. gpio-controller;
  166. #gpio-cells = <2>;
  167. };
  168. };
  169. target-module@52000000 {
  170. compatible = "ti,sysc-omap4", "ti,sysc";
  171. reg = <0x52000000 0x4>,
  172. <0x52000010 0x4>;
  173. reg-names = "rev", "sysc";
  174. ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
  175. ti,sysc-midle = <SYSC_IDLE_FORCE>,
  176. <SYSC_IDLE_NO>,
  177. <SYSC_IDLE_SMART>,
  178. <SYSC_IDLE_SMART_WKUP>;
  179. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  180. <SYSC_IDLE_NO>,
  181. <SYSC_IDLE_SMART>,
  182. <SYSC_IDLE_SMART_WKUP>;
  183. ti,sysc-delay-us = <2>;
  184. power-domains = <&prm_cam>;
  185. clocks = <&iss_clkctrl OMAP4_ISS_CLKCTRL 0>;
  186. clock-names = "fck";
  187. #address-cells = <1>;
  188. #size-cells = <1>;
  189. ranges = <0 0x52000000 0x1000000>;
  190. /* No child device binding, driver in staging */
  191. };
  192. /*
  193. * Note that 4430 needs cross trigger interface (CTI) supported
  194. * before we can configure the interrupts. This means sampling
  195. * events are not supported for pmu. Note that 4460 does not use
  196. * CTI, see also 4460.dtsi.
  197. */
  198. target-module@54000000 {
  199. compatible = "ti,sysc-omap4-simple", "ti,sysc";
  200. power-domains = <&prm_emu>;
  201. clocks = <&emu_sys_clkctrl OMAP4_DEBUGSS_CLKCTRL 0>;
  202. clock-names = "fck";
  203. #address-cells = <1>;
  204. #size-cells = <1>;
  205. ranges = <0x0 0x54000000 0x1000000>;
  206. pmu: pmu {
  207. compatible = "arm,cortex-a9-pmu";
  208. };
  209. };
  210. target-module@55082000 {
  211. compatible = "ti,sysc-omap2", "ti,sysc";
  212. reg = <0x55082000 0x4>,
  213. <0x55082010 0x4>,
  214. <0x55082014 0x4>;
  215. reg-names = "rev", "sysc", "syss";
  216. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  217. <SYSC_IDLE_NO>,
  218. <SYSC_IDLE_SMART>;
  219. ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
  220. SYSC_OMAP2_SOFTRESET |
  221. SYSC_OMAP2_AUTOIDLE)>;
  222. clocks = <&ducati_clkctrl OMAP4_IPU_CLKCTRL 0>;
  223. clock-names = "fck";
  224. resets = <&prm_core 2>;
  225. reset-names = "rstctrl";
  226. ranges = <0x0 0x55082000 0x100>;
  227. #size-cells = <1>;
  228. #address-cells = <1>;
  229. mmu_ipu: mmu@0 {
  230. compatible = "ti,omap4-iommu";
  231. reg = <0x0 0x100>;
  232. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
  233. #iommu-cells = <0>;
  234. ti,iommu-bus-err-back;
  235. };
  236. };
  237. target-module@4012c000 {
  238. compatible = "ti,sysc-omap4", "ti,sysc";
  239. reg = <0x4012c000 0x4>,
  240. <0x4012c010 0x4>;
  241. reg-names = "rev", "sysc";
  242. ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
  243. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  244. <SYSC_IDLE_NO>,
  245. <SYSC_IDLE_SMART>,
  246. <SYSC_IDLE_SMART_WKUP>;
  247. clocks = <&abe_clkctrl OMAP4_SLIMBUS1_CLKCTRL 0>;
  248. clock-names = "fck";
  249. #address-cells = <1>;
  250. #size-cells = <1>;
  251. ranges = <0x00000000 0x4012c000 0x1000>, /* MPU */
  252. <0x4902c000 0x4902c000 0x1000>; /* L3 */
  253. /* No child device binding or driver in mainline */
  254. };
  255. target-module@4e000000 {
  256. compatible = "ti,sysc-omap2", "ti,sysc";
  257. reg = <0x4e000000 0x4>,
  258. <0x4e000010 0x4>;
  259. reg-names = "rev", "sysc";
  260. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  261. <SYSC_IDLE_NO>,
  262. <SYSC_IDLE_SMART>;
  263. ranges = <0x0 0x4e000000 0x2000000>;
  264. #size-cells = <1>;
  265. #address-cells = <1>;
  266. dmm@0 {
  267. compatible = "ti,omap4-dmm";
  268. reg = <0 0x800>;
  269. interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
  270. };
  271. };
  272. target-module@4c000000 {
  273. compatible = "ti,sysc-omap4-simple", "ti,sysc";
  274. reg = <0x4c000000 0x4>;
  275. reg-names = "rev";
  276. clocks = <&l3_emif_clkctrl OMAP4_EMIF1_CLKCTRL 0>;
  277. clock-names = "fck";
  278. ti,no-idle;
  279. #address-cells = <1>;
  280. #size-cells = <1>;
  281. ranges = <0x0 0x4c000000 0x1000000>;
  282. emif1: emif@0 {
  283. compatible = "ti,emif-4d";
  284. reg = <0 0x100>;
  285. interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
  286. phy-type = <1>;
  287. hw-caps-read-idle-ctrl;
  288. hw-caps-ll-interface;
  289. hw-caps-temp-alert;
  290. };
  291. };
  292. target-module@4d000000 {
  293. compatible = "ti,sysc-omap4-simple", "ti,sysc";
  294. reg = <0x4d000000 0x4>;
  295. reg-names = "rev";
  296. clocks = <&l3_emif_clkctrl OMAP4_EMIF2_CLKCTRL 0>;
  297. clock-names = "fck";
  298. ti,no-idle;
  299. #address-cells = <1>;
  300. #size-cells = <1>;
  301. ranges = <0x0 0x4d000000 0x1000000>;
  302. emif2: emif@0 {
  303. compatible = "ti,emif-4d";
  304. reg = <0 0x100>;
  305. interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
  306. phy-type = <1>;
  307. hw-caps-read-idle-ctrl;
  308. hw-caps-ll-interface;
  309. hw-caps-temp-alert;
  310. };
  311. };
  312. dsp: dsp {
  313. compatible = "ti,omap4-dsp";
  314. ti,bootreg = <&scm_conf 0x304 0>;
  315. iommus = <&mmu_dsp>;
  316. resets = <&prm_tesla 0>;
  317. clocks = <&tesla_clkctrl OMAP4_DSP_CLKCTRL 0>;
  318. firmware-name = "omap4-dsp-fw.xe64T";
  319. mboxes = <&mailbox &mbox_dsp>;
  320. status = "disabled";
  321. };
  322. ipu: ipu@55020000 {
  323. compatible = "ti,omap4-ipu";
  324. reg = <0x55020000 0x10000>;
  325. reg-names = "l2ram";
  326. iommus = <&mmu_ipu>;
  327. resets = <&prm_core 0>, <&prm_core 1>;
  328. clocks = <&ducati_clkctrl OMAP4_IPU_CLKCTRL 0>;
  329. firmware-name = "omap4-ipu-fw.xem3";
  330. mboxes = <&mailbox &mbox_ipu>;
  331. status = "disabled";
  332. };
  333. aes1_target: target-module@4b501000 {
  334. compatible = "ti,sysc-omap2", "ti,sysc";
  335. reg = <0x4b501080 0x4>,
  336. <0x4b501084 0x4>,
  337. <0x4b501088 0x4>;
  338. reg-names = "rev", "sysc", "syss";
  339. ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
  340. SYSC_OMAP2_AUTOIDLE)>;
  341. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  342. <SYSC_IDLE_NO>,
  343. <SYSC_IDLE_SMART>,
  344. <SYSC_IDLE_SMART_WKUP>;
  345. ti,syss-mask = <1>;
  346. /* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
  347. clocks = <&l4_secure_clkctrl OMAP4_AES1_CLKCTRL 0>;
  348. clock-names = "fck";
  349. #address-cells = <1>;
  350. #size-cells = <1>;
  351. ranges = <0x0 0x4b501000 0x1000>;
  352. aes1: aes@0 {
  353. compatible = "ti,omap4-aes";
  354. reg = <0 0xa0>;
  355. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  356. dmas = <&sdma 111>, <&sdma 110>;
  357. dma-names = "tx", "rx";
  358. };
  359. };
  360. aes2_target: target-module@4b701000 {
  361. compatible = "ti,sysc-omap2", "ti,sysc";
  362. reg = <0x4b701080 0x4>,
  363. <0x4b701084 0x4>,
  364. <0x4b701088 0x4>;
  365. reg-names = "rev", "sysc", "syss";
  366. ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
  367. SYSC_OMAP2_AUTOIDLE)>;
  368. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  369. <SYSC_IDLE_NO>,
  370. <SYSC_IDLE_SMART>,
  371. <SYSC_IDLE_SMART_WKUP>;
  372. ti,syss-mask = <1>;
  373. /* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
  374. clocks = <&l4_secure_clkctrl OMAP4_AES2_CLKCTRL 0>;
  375. clock-names = "fck";
  376. #address-cells = <1>;
  377. #size-cells = <1>;
  378. ranges = <0x0 0x4b701000 0x1000>;
  379. aes2: aes@0 {
  380. compatible = "ti,omap4-aes";
  381. reg = <0 0xa0>;
  382. interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
  383. dmas = <&sdma 114>, <&sdma 113>;
  384. dma-names = "tx", "rx";
  385. };
  386. };
  387. sham_target: target-module@4b100000 {
  388. compatible = "ti,sysc-omap3-sham", "ti,sysc";
  389. reg = <0x4b100100 0x4>,
  390. <0x4b100110 0x4>,
  391. <0x4b100114 0x4>;
  392. reg-names = "rev", "sysc", "syss";
  393. ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
  394. SYSC_OMAP2_AUTOIDLE)>;
  395. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  396. <SYSC_IDLE_NO>,
  397. <SYSC_IDLE_SMART>;
  398. ti,syss-mask = <1>;
  399. /* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
  400. clocks = <&l4_secure_clkctrl OMAP4_SHA2MD5_CLKCTRL 0>;
  401. clock-names = "fck";
  402. #address-cells = <1>;
  403. #size-cells = <1>;
  404. ranges = <0x0 0x4b100000 0x1000>;
  405. sham: sham@0 {
  406. compatible = "ti,omap4-sham";
  407. reg = <0 0x300>;
  408. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
  409. dmas = <&sdma 119>;
  410. dma-names = "rx";
  411. };
  412. };
  413. abb_mpu: regulator-abb-mpu {
  414. compatible = "ti,abb-v2";
  415. regulator-name = "abb_mpu";
  416. #address-cells = <0>;
  417. #size-cells = <0>;
  418. ti,tranxdone-status-mask = <0x80>;
  419. clocks = <&sys_clkin_ck>;
  420. ti,settling-time = <50>;
  421. ti,clock-cycles = <16>;
  422. status = "disabled";
  423. };
  424. abb_iva: regulator-abb-iva {
  425. compatible = "ti,abb-v2";
  426. regulator-name = "abb_iva";
  427. #address-cells = <0>;
  428. #size-cells = <0>;
  429. ti,tranxdone-status-mask = <0x80000000>;
  430. clocks = <&sys_clkin_ck>;
  431. ti,settling-time = <50>;
  432. ti,clock-cycles = <16>;
  433. status = "disabled";
  434. };
  435. sgx_module: target-module@56000000 {
  436. compatible = "ti,sysc-omap4", "ti,sysc";
  437. reg = <0x5600fe00 0x4>,
  438. <0x5600fe10 0x4>;
  439. reg-names = "rev", "sysc";
  440. ti,sysc-midle = <SYSC_IDLE_FORCE>,
  441. <SYSC_IDLE_NO>,
  442. <SYSC_IDLE_SMART>,
  443. <SYSC_IDLE_SMART_WKUP>;
  444. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  445. <SYSC_IDLE_NO>,
  446. <SYSC_IDLE_SMART>,
  447. <SYSC_IDLE_SMART_WKUP>;
  448. power-domains = <&prm_gfx>;
  449. clocks = <&l3_gfx_clkctrl OMAP4_GPU_CLKCTRL 0>;
  450. clock-names = "fck";
  451. #address-cells = <1>;
  452. #size-cells = <1>;
  453. ranges = <0 0x56000000 0x2000000>;
  454. /*
  455. * Closed source PowerVR driver, no child device
  456. * binding or driver in mainline
  457. */
  458. };
  459. /*
  460. * DSS is only using l3 mapping without l4 as noted in the TRM
  461. * "10.1.3 DSS Register Manual" for omap4460.
  462. */
  463. target-module@58000000 {
  464. compatible = "ti,sysc-omap2", "ti,sysc";
  465. reg = <0x58000000 4>,
  466. <0x58000014 4>;
  467. reg-names = "rev", "syss";
  468. ti,syss-mask = <1>;
  469. power-domains = <&prm_dss>;
  470. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 0>,
  471. <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
  472. <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>,
  473. <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 11>;
  474. clock-names = "fck", "hdmi_clk", "sys_clk", "tv_clk";
  475. #address-cells = <1>;
  476. #size-cells = <1>;
  477. ranges = <0 0x58000000 0x1000000>;
  478. dss: dss@0 {
  479. compatible = "ti,omap4-dss";
  480. reg = <0 0x80>;
  481. status = "disabled";
  482. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
  483. clock-names = "fck";
  484. #address-cells = <1>;
  485. #size-cells = <1>;
  486. ranges = <0 0 0x1000000>;
  487. target-module@1000 {
  488. compatible = "ti,sysc-omap2", "ti,sysc";
  489. reg = <0x1000 0x4>,
  490. <0x1010 0x4>,
  491. <0x1014 0x4>;
  492. reg-names = "rev", "sysc", "syss";
  493. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  494. <SYSC_IDLE_NO>,
  495. <SYSC_IDLE_SMART>;
  496. ti,sysc-midle = <SYSC_IDLE_FORCE>,
  497. <SYSC_IDLE_NO>,
  498. <SYSC_IDLE_SMART>;
  499. ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
  500. SYSC_OMAP2_ENAWAKEUP |
  501. SYSC_OMAP2_SOFTRESET |
  502. SYSC_OMAP2_AUTOIDLE)>;
  503. ti,syss-mask = <1>;
  504. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
  505. <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
  506. clock-names = "fck", "sys_clk";
  507. #address-cells = <1>;
  508. #size-cells = <1>;
  509. ranges = <0 0x1000 0x1000>;
  510. dispc@0 {
  511. compatible = "ti,omap4-dispc";
  512. reg = <0 0x1000>;
  513. interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
  514. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
  515. clock-names = "fck";
  516. };
  517. };
  518. target-module@2000 {
  519. compatible = "ti,sysc-omap2", "ti,sysc";
  520. reg = <0x2000 0x4>,
  521. <0x2010 0x4>,
  522. <0x2014 0x4>;
  523. reg-names = "rev", "sysc", "syss";
  524. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  525. <SYSC_IDLE_NO>,
  526. <SYSC_IDLE_SMART>;
  527. ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
  528. SYSC_OMAP2_AUTOIDLE)>;
  529. ti,syss-mask = <1>;
  530. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
  531. <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
  532. clock-names = "fck", "sys_clk";
  533. #address-cells = <1>;
  534. #size-cells = <1>;
  535. ranges = <0 0x2000 0x1000>;
  536. rfbi: encoder@0 {
  537. reg = <0 0x1000>;
  538. status = "disabled";
  539. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>, <&l3_div_ck>;
  540. clock-names = "fck", "ick";
  541. };
  542. };
  543. target-module@3000 {
  544. compatible = "ti,sysc-omap2", "ti,sysc";
  545. reg = <0x3000 0x4>;
  546. reg-names = "rev";
  547. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
  548. clock-names = "sys_clk";
  549. #address-cells = <1>;
  550. #size-cells = <1>;
  551. ranges = <0 0x3000 0x1000>;
  552. venc: encoder@0 {
  553. compatible = "ti,omap4-venc";
  554. reg = <0 0x1000>;
  555. status = "disabled";
  556. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 11>;
  557. clock-names = "fck";
  558. };
  559. };
  560. target-module@4000 {
  561. compatible = "ti,sysc-omap2", "ti,sysc";
  562. reg = <0x4000 0x4>,
  563. <0x4010 0x4>,
  564. <0x4014 0x4>;
  565. reg-names = "rev", "sysc", "syss";
  566. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  567. <SYSC_IDLE_NO>,
  568. <SYSC_IDLE_SMART>;
  569. ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
  570. SYSC_OMAP2_ENAWAKEUP |
  571. SYSC_OMAP2_SOFTRESET |
  572. SYSC_OMAP2_AUTOIDLE)>;
  573. ti,syss-mask = <1>;
  574. #address-cells = <1>;
  575. #size-cells = <1>;
  576. ranges = <0 0x4000 0x1000>;
  577. dsi1: encoder@0 {
  578. compatible = "ti,omap4-dsi";
  579. reg = <0 0x200>,
  580. <0x200 0x40>,
  581. <0x300 0x20>;
  582. reg-names = "proto", "phy", "pll";
  583. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  584. status = "disabled";
  585. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
  586. <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
  587. clock-names = "fck", "sys_clk";
  588. #address-cells = <1>;
  589. #size-cells = <0>;
  590. };
  591. };
  592. target-module@5000 {
  593. compatible = "ti,sysc-omap2", "ti,sysc";
  594. reg = <0x5000 0x4>,
  595. <0x5010 0x4>,
  596. <0x5014 0x4>;
  597. reg-names = "rev", "sysc", "syss";
  598. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  599. <SYSC_IDLE_NO>,
  600. <SYSC_IDLE_SMART>;
  601. ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
  602. SYSC_OMAP2_ENAWAKEUP |
  603. SYSC_OMAP2_SOFTRESET |
  604. SYSC_OMAP2_AUTOIDLE)>;
  605. ti,syss-mask = <1>;
  606. #address-cells = <1>;
  607. #size-cells = <1>;
  608. ranges = <0 0x5000 0x1000>;
  609. dsi2: encoder@0 {
  610. compatible = "ti,omap4-dsi";
  611. reg = <0 0x200>,
  612. <0x200 0x40>,
  613. <0x300 0x20>;
  614. reg-names = "proto", "phy", "pll";
  615. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  616. status = "disabled";
  617. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
  618. <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
  619. clock-names = "fck", "sys_clk";
  620. #address-cells = <1>;
  621. #size-cells = <0>;
  622. };
  623. };
  624. target-module@6000 {
  625. compatible = "ti,sysc-omap4", "ti,sysc";
  626. reg = <0x6000 0x4>,
  627. <0x6010 0x4>;
  628. reg-names = "rev", "sysc";
  629. /*
  630. * Has SYSC_IDLE_SMART and SYSC_IDLE_SMART_WKUP
  631. * but HDMI audio will fail with them.
  632. */
  633. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  634. <SYSC_IDLE_NO>;
  635. ti,sysc-mask = <(SYSC_OMAP4_SOFTRESET)>;
  636. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
  637. <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
  638. clock-names = "fck", "dss_clk";
  639. #address-cells = <1>;
  640. #size-cells = <1>;
  641. ranges = <0 0x6000 0x2000>;
  642. hdmi: encoder@0 {
  643. compatible = "ti,omap4-hdmi";
  644. reg = <0 0x200>,
  645. <0x200 0x100>,
  646. <0x300 0x100>,
  647. <0x400 0x1000>;
  648. reg-names = "wp", "pll", "phy", "core";
  649. interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
  650. status = "disabled";
  651. clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
  652. <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
  653. clock-names = "fck", "sys_clk";
  654. dmas = <&sdma 76>;
  655. dma-names = "audio_tx";
  656. };
  657. };
  658. };
  659. };
  660. iva_hd_target: target-module@5a000000 {
  661. compatible = "ti,sysc-omap4", "ti,sysc";
  662. reg = <0x5a05a400 0x4>,
  663. <0x5a05a410 0x4>;
  664. reg-names = "rev", "sysc";
  665. ti,sysc-midle = <SYSC_IDLE_FORCE>,
  666. <SYSC_IDLE_NO>,
  667. <SYSC_IDLE_SMART>;
  668. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  669. <SYSC_IDLE_NO>,
  670. <SYSC_IDLE_SMART>;
  671. power-domains = <&prm_ivahd>;
  672. resets = <&prm_ivahd 2>;
  673. reset-names = "rstctrl";
  674. clocks = <&ivahd_clkctrl OMAP4_IVA_CLKCTRL 0>;
  675. clock-names = "fck";
  676. #address-cells = <1>;
  677. #size-cells = <1>;
  678. ranges = <0x5a000000 0x5a000000 0x1000000>,
  679. <0x5b000000 0x5b000000 0x1000000>;
  680. iva {
  681. compatible = "ti,ivahd";
  682. };
  683. };
  684. };
  685. };
  686. #include "omap4-l4.dtsi"
  687. #include "omap4-l4-abe.dtsi"
  688. #include "omap44xx-clocks.dtsi"
  689. &prm {
  690. prm_mpu: prm@300 {
  691. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  692. reg = <0x300 0x100>;
  693. #power-domain-cells = <0>;
  694. };
  695. prm_tesla: prm@400 {
  696. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  697. reg = <0x400 0x100>;
  698. #reset-cells = <1>;
  699. #power-domain-cells = <0>;
  700. };
  701. prm_abe: prm@500 {
  702. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  703. reg = <0x500 0x100>;
  704. #power-domain-cells = <0>;
  705. };
  706. prm_always_on_core: prm@600 {
  707. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  708. reg = <0x600 0x100>;
  709. #power-domain-cells = <0>;
  710. };
  711. prm_core: prm@700 {
  712. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  713. reg = <0x700 0x100>;
  714. #reset-cells = <1>;
  715. #power-domain-cells = <0>;
  716. };
  717. prm_ivahd: prm@f00 {
  718. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  719. reg = <0xf00 0x100>;
  720. #reset-cells = <1>;
  721. #power-domain-cells = <0>;
  722. };
  723. prm_cam: prm@1000 {
  724. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  725. reg = <0x1000 0x100>;
  726. #power-domain-cells = <0>;
  727. };
  728. prm_dss: prm@1100 {
  729. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  730. reg = <0x1100 0x100>;
  731. #power-domain-cells = <0>;
  732. };
  733. prm_gfx: prm@1200 {
  734. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  735. reg = <0x1200 0x100>;
  736. #power-domain-cells = <0>;
  737. };
  738. prm_l3init: prm@1300 {
  739. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  740. reg = <0x1300 0x100>;
  741. #power-domain-cells = <0>;
  742. };
  743. prm_l4per: prm@1400 {
  744. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  745. reg = <0x1400 0x100>;
  746. #power-domain-cells = <0>;
  747. };
  748. prm_cefuse: prm@1600 {
  749. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  750. reg = <0x1600 0x100>;
  751. #power-domain-cells = <0>;
  752. };
  753. prm_wkup: prm@1700 {
  754. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  755. reg = <0x1700 0x100>;
  756. #power-domain-cells = <0>;
  757. };
  758. prm_emu: prm@1900 {
  759. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  760. reg = <0x1900 0x100>;
  761. #power-domain-cells = <0>;
  762. };
  763. prm_dss: prm@1100 {
  764. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  765. reg = <0x1100 0x40>;
  766. #power-domain-cells = <0>;
  767. };
  768. prm_device: prm@1b00 {
  769. compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
  770. reg = <0x1b00 0x40>;
  771. #reset-cells = <1>;
  772. };
  773. };
  774. /* Preferred always-on timer for clockevent */
  775. &timer1_target {
  776. ti,no-reset-on-init;
  777. ti,no-idle;
  778. timer@0 {
  779. assigned-clocks = <&l4_wkup_clkctrl OMAP4_TIMER1_CLKCTRL 24>;
  780. assigned-clock-parents = <&sys_32k_ck>;
  781. };
  782. };