hip04.dtsi 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984
  1. /*
  2. * Hisilicon Ltd. HiP04 SoC
  3. *
  4. * Copyright (C) 2013-2014 Hisilicon Ltd.
  5. * Copyright (C) 2013-2014 Linaro Ltd.
  6. *
  7. * Author: Haojian Zhuang <haojian.zhuang@linaro.org>
  8. *
  9. * This program is free software; you can redistribute it and/or modify
  10. * it under the terms of the GNU General Public License version 2 as
  11. * published by the Free Software Foundation.
  12. */
  13. / {
  14. /* memory bus is 64-bit */
  15. #address-cells = <2>;
  16. #size-cells = <2>;
  17. aliases {
  18. serial0 = &uart0;
  19. };
  20. bootwrapper {
  21. compatible = "hisilicon,hip04-bootwrapper";
  22. boot-method = <0x10c00000 0x10000>, <0xe0000100 0x1000>;
  23. };
  24. cpus {
  25. #address-cells = <1>;
  26. #size-cells = <0>;
  27. cpu-map {
  28. cluster0 {
  29. core0 {
  30. cpu = <&CPU0>;
  31. };
  32. core1 {
  33. cpu = <&CPU1>;
  34. };
  35. core2 {
  36. cpu = <&CPU2>;
  37. };
  38. core3 {
  39. cpu = <&CPU3>;
  40. };
  41. };
  42. cluster1 {
  43. core0 {
  44. cpu = <&CPU4>;
  45. };
  46. core1 {
  47. cpu = <&CPU5>;
  48. };
  49. core2 {
  50. cpu = <&CPU6>;
  51. };
  52. core3 {
  53. cpu = <&CPU7>;
  54. };
  55. };
  56. cluster2 {
  57. core0 {
  58. cpu = <&CPU8>;
  59. };
  60. core1 {
  61. cpu = <&CPU9>;
  62. };
  63. core2 {
  64. cpu = <&CPU10>;
  65. };
  66. core3 {
  67. cpu = <&CPU11>;
  68. };
  69. };
  70. cluster3 {
  71. core0 {
  72. cpu = <&CPU12>;
  73. };
  74. core1 {
  75. cpu = <&CPU13>;
  76. };
  77. core2 {
  78. cpu = <&CPU14>;
  79. };
  80. core3 {
  81. cpu = <&CPU15>;
  82. };
  83. };
  84. };
  85. CPU0: cpu@0 {
  86. device_type = "cpu";
  87. compatible = "arm,cortex-a15";
  88. reg = <0>;
  89. };
  90. CPU1: cpu@1 {
  91. device_type = "cpu";
  92. compatible = "arm,cortex-a15";
  93. reg = <1>;
  94. };
  95. CPU2: cpu@2 {
  96. device_type = "cpu";
  97. compatible = "arm,cortex-a15";
  98. reg = <2>;
  99. };
  100. CPU3: cpu@3 {
  101. device_type = "cpu";
  102. compatible = "arm,cortex-a15";
  103. reg = <3>;
  104. };
  105. CPU4: cpu@100 {
  106. device_type = "cpu";
  107. compatible = "arm,cortex-a15";
  108. reg = <0x100>;
  109. };
  110. CPU5: cpu@101 {
  111. device_type = "cpu";
  112. compatible = "arm,cortex-a15";
  113. reg = <0x101>;
  114. };
  115. CPU6: cpu@102 {
  116. device_type = "cpu";
  117. compatible = "arm,cortex-a15";
  118. reg = <0x102>;
  119. };
  120. CPU7: cpu@103 {
  121. device_type = "cpu";
  122. compatible = "arm,cortex-a15";
  123. reg = <0x103>;
  124. };
  125. CPU8: cpu@200 {
  126. device_type = "cpu";
  127. compatible = "arm,cortex-a15";
  128. reg = <0x200>;
  129. };
  130. CPU9: cpu@201 {
  131. device_type = "cpu";
  132. compatible = "arm,cortex-a15";
  133. reg = <0x201>;
  134. };
  135. CPU10: cpu@202 {
  136. device_type = "cpu";
  137. compatible = "arm,cortex-a15";
  138. reg = <0x202>;
  139. };
  140. CPU11: cpu@203 {
  141. device_type = "cpu";
  142. compatible = "arm,cortex-a15";
  143. reg = <0x203>;
  144. };
  145. CPU12: cpu@300 {
  146. device_type = "cpu";
  147. compatible = "arm,cortex-a15";
  148. reg = <0x300>;
  149. };
  150. CPU13: cpu@301 {
  151. device_type = "cpu";
  152. compatible = "arm,cortex-a15";
  153. reg = <0x301>;
  154. };
  155. CPU14: cpu@302 {
  156. device_type = "cpu";
  157. compatible = "arm,cortex-a15";
  158. reg = <0x302>;
  159. };
  160. CPU15: cpu@303 {
  161. device_type = "cpu";
  162. compatible = "arm,cortex-a15";
  163. reg = <0x303>;
  164. };
  165. };
  166. timer {
  167. compatible = "arm,armv7-timer";
  168. interrupt-parent = <&gic>;
  169. interrupts = <1 13 0xf08>,
  170. <1 14 0xf08>,
  171. <1 11 0xf08>,
  172. <1 10 0xf08>;
  173. };
  174. clk_50m: clk_50m {
  175. #clock-cells = <0>;
  176. compatible = "fixed-clock";
  177. clock-frequency = <50000000>;
  178. };
  179. clk_168m: clk_168m {
  180. #clock-cells = <0>;
  181. compatible = "fixed-clock";
  182. clock-frequency = <168000000>;
  183. };
  184. clk_375m: clk_375m {
  185. #clock-cells = <0>;
  186. compatible = "fixed-clock";
  187. clock-frequency = <375000000>;
  188. };
  189. soc {
  190. /* It's a 32-bit SoC. */
  191. #address-cells = <1>;
  192. #size-cells = <1>;
  193. compatible = "simple-bus";
  194. interrupt-parent = <&gic>;
  195. ranges = <0 0 0xe0000000 0x10000000>;
  196. gic: interrupt-controller@c01000 {
  197. compatible = "hisilicon,hip04-intc";
  198. #interrupt-cells = <3>;
  199. #address-cells = <0>;
  200. interrupt-controller;
  201. interrupts = <1 9 0xf04>;
  202. reg = <0xc01000 0x1000>, <0xc02000 0x1000>,
  203. <0xc04000 0x2000>, <0xc06000 0x2000>;
  204. };
  205. sysctrl: sysctrl {
  206. compatible = "hisilicon,sysctrl";
  207. reg = <0x3e00000 0x00100000>;
  208. };
  209. fabric: fabric {
  210. compatible = "hisilicon,hip04-fabric";
  211. reg = <0x302a000 0x1000>;
  212. };
  213. dual_timer0: dual_timer@3000000 {
  214. compatible = "arm,sp804", "arm,primecell";
  215. reg = <0x3000000 0x1000>;
  216. interrupts = <0 224 4>;
  217. clocks = <&clk_50m>, <&clk_50m>;
  218. clock-names = "apb_pclk";
  219. };
  220. arm-pmu {
  221. compatible = "arm,cortex-a15-pmu";
  222. interrupts = <0 64 4>,
  223. <0 65 4>,
  224. <0 66 4>,
  225. <0 67 4>,
  226. <0 68 4>,
  227. <0 69 4>,
  228. <0 70 4>,
  229. <0 71 4>,
  230. <0 72 4>,
  231. <0 73 4>,
  232. <0 74 4>,
  233. <0 75 4>,
  234. <0 76 4>,
  235. <0 77 4>,
  236. <0 78 4>,
  237. <0 79 4>;
  238. };
  239. uart0: uart@4007000 {
  240. compatible = "snps,dw-apb-uart";
  241. reg = <0x4007000 0x1000>;
  242. interrupts = <0 381 4>;
  243. clocks = <&clk_168m>;
  244. clock-names = "uartclk";
  245. reg-shift = <2>;
  246. status = "disabled";
  247. };
  248. sata0: sata@a000000 {
  249. compatible = "hisilicon,hisi-ahci";
  250. reg = <0xa000000 0x1000000>;
  251. interrupts = <0 372 4>;
  252. };
  253. };
  254. etb@0,e3c42000 {
  255. compatible = "arm,coresight-etb10", "arm,primecell";
  256. reg = <0 0xe3c42000 0 0x1000>;
  257. clocks = <&clk_375m>;
  258. clock-names = "apb_pclk";
  259. port {
  260. etb0_in_port: endpoint@0 {
  261. slave-mode;
  262. remote-endpoint = <&replicator0_out_port0>;
  263. };
  264. };
  265. };
  266. etb@0,e3c82000 {
  267. compatible = "arm,coresight-etb10", "arm,primecell";
  268. reg = <0 0xe3c82000 0 0x1000>;
  269. clocks = <&clk_375m>;
  270. clock-names = "apb_pclk";
  271. port {
  272. etb1_in_port: endpoint@0 {
  273. slave-mode;
  274. remote-endpoint = <&replicator1_out_port0>;
  275. };
  276. };
  277. };
  278. etb@0,e3cc2000 {
  279. compatible = "arm,coresight-etb10", "arm,primecell";
  280. reg = <0 0xe3cc2000 0 0x1000>;
  281. clocks = <&clk_375m>;
  282. clock-names = "apb_pclk";
  283. port {
  284. etb2_in_port: endpoint@0 {
  285. slave-mode;
  286. remote-endpoint = <&replicator2_out_port0>;
  287. };
  288. };
  289. };
  290. etb@0,e3d02000 {
  291. compatible = "arm,coresight-etb10", "arm,primecell";
  292. reg = <0 0xe3d02000 0 0x1000>;
  293. clocks = <&clk_375m>;
  294. clock-names = "apb_pclk";
  295. port {
  296. etb3_in_port: endpoint@0 {
  297. slave-mode;
  298. remote-endpoint = <&replicator3_out_port0>;
  299. };
  300. };
  301. };
  302. tpiu@0,e3c05000 {
  303. compatible = "arm,coresight-tpiu", "arm,primecell";
  304. reg = <0 0xe3c05000 0 0x1000>;
  305. clocks = <&clk_375m>;
  306. clock-names = "apb_pclk";
  307. port {
  308. tpiu_in_port: endpoint@0 {
  309. slave-mode;
  310. remote-endpoint = <&funnel4_out_port0>;
  311. };
  312. };
  313. };
  314. replicator0 {
  315. /* non-configurable replicators don't show up on the
  316. * AMBA bus. As such no need to add "arm,primecell".
  317. */
  318. compatible = "arm,coresight-replicator";
  319. ports {
  320. #address-cells = <1>;
  321. #size-cells = <0>;
  322. /* replicator output ports */
  323. port@0 {
  324. reg = <0>;
  325. replicator0_out_port0: endpoint {
  326. remote-endpoint = <&etb0_in_port>;
  327. };
  328. };
  329. port@1 {
  330. reg = <1>;
  331. replicator0_out_port1: endpoint {
  332. remote-endpoint = <&funnel4_in_port0>;
  333. };
  334. };
  335. /* replicator input port */
  336. port@2 {
  337. reg = <0>;
  338. replicator0_in_port0: endpoint {
  339. slave-mode;
  340. remote-endpoint = <&funnel0_out_port0>;
  341. };
  342. };
  343. };
  344. };
  345. replicator1 {
  346. /* non-configurable replicators don't show up on the
  347. * AMBA bus. As such no need to add "arm,primecell".
  348. */
  349. compatible = "arm,coresight-replicator";
  350. ports {
  351. #address-cells = <1>;
  352. #size-cells = <0>;
  353. /* replicator output ports */
  354. port@0 {
  355. reg = <0>;
  356. replicator1_out_port0: endpoint {
  357. remote-endpoint = <&etb1_in_port>;
  358. };
  359. };
  360. port@1 {
  361. reg = <1>;
  362. replicator1_out_port1: endpoint {
  363. remote-endpoint = <&funnel4_in_port1>;
  364. };
  365. };
  366. /* replicator input port */
  367. port@2 {
  368. reg = <0>;
  369. replicator1_in_port0: endpoint {
  370. slave-mode;
  371. remote-endpoint = <&funnel1_out_port0>;
  372. };
  373. };
  374. };
  375. };
  376. replicator2 {
  377. /* non-configurable replicators don't show up on the
  378. * AMBA bus. As such no need to add "arm,primecell".
  379. */
  380. compatible = "arm,coresight-replicator";
  381. ports {
  382. #address-cells = <1>;
  383. #size-cells = <0>;
  384. /* replicator output ports */
  385. port@0 {
  386. reg = <0>;
  387. replicator2_out_port0: endpoint {
  388. remote-endpoint = <&etb2_in_port>;
  389. };
  390. };
  391. port@1 {
  392. reg = <1>;
  393. replicator2_out_port1: endpoint {
  394. remote-endpoint = <&funnel4_in_port2>;
  395. };
  396. };
  397. /* replicator input port */
  398. port@2 {
  399. reg = <0>;
  400. replicator2_in_port0: endpoint {
  401. slave-mode;
  402. remote-endpoint = <&funnel2_out_port0>;
  403. };
  404. };
  405. };
  406. };
  407. replicator3 {
  408. /* non-configurable replicators don't show up on the
  409. * AMBA bus. As such no need to add "arm,primecell".
  410. */
  411. compatible = "arm,coresight-replicator";
  412. ports {
  413. #address-cells = <1>;
  414. #size-cells = <0>;
  415. /* replicator output ports */
  416. port@0 {
  417. reg = <0>;
  418. replicator3_out_port0: endpoint {
  419. remote-endpoint = <&etb3_in_port>;
  420. };
  421. };
  422. port@1 {
  423. reg = <1>;
  424. replicator3_out_port1: endpoint {
  425. remote-endpoint = <&funnel4_in_port3>;
  426. };
  427. };
  428. /* replicator input port */
  429. port@2 {
  430. reg = <0>;
  431. replicator3_in_port0: endpoint {
  432. slave-mode;
  433. remote-endpoint = <&funnel3_out_port0>;
  434. };
  435. };
  436. };
  437. };
  438. funnel@0,e3c41000 {
  439. compatible = "arm,coresight-funnel", "arm,primecell";
  440. reg = <0 0xe3c41000 0 0x1000>;
  441. clocks = <&clk_375m>;
  442. clock-names = "apb_pclk";
  443. ports {
  444. #address-cells = <1>;
  445. #size-cells = <0>;
  446. /* funnel output port */
  447. port@0 {
  448. reg = <0>;
  449. funnel0_out_port0: endpoint {
  450. remote-endpoint =
  451. <&replicator0_in_port0>;
  452. };
  453. };
  454. /* funnel input ports */
  455. port@1 {
  456. reg = <0>;
  457. funnel0_in_port0: endpoint {
  458. slave-mode;
  459. remote-endpoint = <&ptm0_out_port>;
  460. };
  461. };
  462. port@2 {
  463. reg = <1>;
  464. funnel0_in_port1: endpoint {
  465. slave-mode;
  466. remote-endpoint = <&ptm1_out_port>;
  467. };
  468. };
  469. port@3 {
  470. reg = <2>;
  471. funnel0_in_port2: endpoint {
  472. slave-mode;
  473. remote-endpoint = <&ptm2_out_port>;
  474. };
  475. };
  476. port@4 {
  477. reg = <3>;
  478. funnel0_in_port3: endpoint {
  479. slave-mode;
  480. remote-endpoint = <&ptm3_out_port>;
  481. };
  482. };
  483. };
  484. };
  485. funnel@0,e3c81000 {
  486. compatible = "arm,coresight-funnel", "arm,primecell";
  487. reg = <0 0xe3c81000 0 0x1000>;
  488. clocks = <&clk_375m>;
  489. clock-names = "apb_pclk";
  490. ports {
  491. #address-cells = <1>;
  492. #size-cells = <0>;
  493. /* funnel output port */
  494. port@0 {
  495. reg = <0>;
  496. funnel1_out_port0: endpoint {
  497. remote-endpoint =
  498. <&replicator1_in_port0>;
  499. };
  500. };
  501. /* funnel input ports */
  502. port@1 {
  503. reg = <0>;
  504. funnel1_in_port0: endpoint {
  505. slave-mode;
  506. remote-endpoint = <&ptm4_out_port>;
  507. };
  508. };
  509. port@2 {
  510. reg = <1>;
  511. funnel1_in_port1: endpoint {
  512. slave-mode;
  513. remote-endpoint = <&ptm5_out_port>;
  514. };
  515. };
  516. port@3 {
  517. reg = <2>;
  518. funnel1_in_port2: endpoint {
  519. slave-mode;
  520. remote-endpoint = <&ptm6_out_port>;
  521. };
  522. };
  523. port@4 {
  524. reg = <3>;
  525. funnel1_in_port3: endpoint {
  526. slave-mode;
  527. remote-endpoint = <&ptm7_out_port>;
  528. };
  529. };
  530. };
  531. };
  532. funnel@0,e3cc1000 {
  533. compatible = "arm,coresight-funnel", "arm,primecell";
  534. reg = <0 0xe3cc1000 0 0x1000>;
  535. clocks = <&clk_375m>;
  536. clock-names = "apb_pclk";
  537. ports {
  538. #address-cells = <1>;
  539. #size-cells = <0>;
  540. /* funnel output port */
  541. port@0 {
  542. reg = <0>;
  543. funnel2_out_port0: endpoint {
  544. remote-endpoint =
  545. <&replicator2_in_port0>;
  546. };
  547. };
  548. /* funnel input ports */
  549. port@1 {
  550. reg = <0>;
  551. funnel2_in_port0: endpoint {
  552. slave-mode;
  553. remote-endpoint = <&ptm8_out_port>;
  554. };
  555. };
  556. port@2 {
  557. reg = <1>;
  558. funnel2_in_port1: endpoint {
  559. slave-mode;
  560. remote-endpoint = <&ptm9_out_port>;
  561. };
  562. };
  563. port@3 {
  564. reg = <2>;
  565. funnel2_in_port2: endpoint {
  566. slave-mode;
  567. remote-endpoint = <&ptm10_out_port>;
  568. };
  569. };
  570. port@4 {
  571. reg = <3>;
  572. funnel2_in_port3: endpoint {
  573. slave-mode;
  574. remote-endpoint = <&ptm11_out_port>;
  575. };
  576. };
  577. };
  578. };
  579. funnel@0,e3d01000 {
  580. compatible = "arm,coresight-funnel", "arm,primecell";
  581. reg = <0 0xe3d01000 0 0x1000>;
  582. clocks = <&clk_375m>;
  583. clock-names = "apb_pclk";
  584. ports {
  585. #address-cells = <1>;
  586. #size-cells = <0>;
  587. /* funnel output port */
  588. port@0 {
  589. reg = <0>;
  590. funnel3_out_port0: endpoint {
  591. remote-endpoint =
  592. <&replicator3_in_port0>;
  593. };
  594. };
  595. /* funnel input ports */
  596. port@1 {
  597. reg = <0>;
  598. funnel3_in_port0: endpoint {
  599. slave-mode;
  600. remote-endpoint = <&ptm12_out_port>;
  601. };
  602. };
  603. port@2 {
  604. reg = <1>;
  605. funnel3_in_port1: endpoint {
  606. slave-mode;
  607. remote-endpoint = <&ptm13_out_port>;
  608. };
  609. };
  610. port@3 {
  611. reg = <2>;
  612. funnel3_in_port2: endpoint {
  613. slave-mode;
  614. remote-endpoint = <&ptm14_out_port>;
  615. };
  616. };
  617. port@4 {
  618. reg = <3>;
  619. funnel3_in_port3: endpoint {
  620. slave-mode;
  621. remote-endpoint = <&ptm15_out_port>;
  622. };
  623. };
  624. };
  625. };
  626. funnel@0,e3c04000 {
  627. compatible = "arm,coresight-funnel", "arm,primecell";
  628. reg = <0 0xe3c04000 0 0x1000>;
  629. clocks = <&clk_375m>;
  630. clock-names = "apb_pclk";
  631. ports {
  632. #address-cells = <1>;
  633. #size-cells = <0>;
  634. /* funnel output port */
  635. port@0 {
  636. reg = <0>;
  637. funnel4_out_port0: endpoint {
  638. remote-endpoint = <&tpiu_in_port>;
  639. };
  640. };
  641. /* funnel input ports */
  642. port@1 {
  643. reg = <0>;
  644. funnel4_in_port0: endpoint {
  645. slave-mode;
  646. remote-endpoint =
  647. <&replicator0_out_port1>;
  648. };
  649. };
  650. port@2 {
  651. reg = <1>;
  652. funnel4_in_port1: endpoint {
  653. slave-mode;
  654. remote-endpoint =
  655. <&replicator1_out_port1>;
  656. };
  657. };
  658. port@3 {
  659. reg = <2>;
  660. funnel4_in_port2: endpoint {
  661. slave-mode;
  662. remote-endpoint =
  663. <&replicator2_out_port1>;
  664. };
  665. };
  666. port@4 {
  667. reg = <3>;
  668. funnel4_in_port3: endpoint {
  669. slave-mode;
  670. remote-endpoint =
  671. <&replicator3_out_port1>;
  672. };
  673. };
  674. };
  675. };
  676. ptm@0,e3c7c000 {
  677. compatible = "arm,coresight-etm3x", "arm,primecell";
  678. reg = <0 0xe3c7c000 0 0x1000>;
  679. clocks = <&clk_375m>;
  680. clock-names = "apb_pclk";
  681. cpu = <&CPU0>;
  682. port {
  683. ptm0_out_port: endpoint {
  684. remote-endpoint = <&funnel0_in_port0>;
  685. };
  686. };
  687. };
  688. ptm@0,e3c7d000 {
  689. compatible = "arm,coresight-etm3x", "arm,primecell";
  690. reg = <0 0xe3c7d000 0 0x1000>;
  691. clocks = <&clk_375m>;
  692. clock-names = "apb_pclk";
  693. cpu = <&CPU1>;
  694. port {
  695. ptm1_out_port: endpoint {
  696. remote-endpoint = <&funnel0_in_port1>;
  697. };
  698. };
  699. };
  700. ptm@0,e3c7e000 {
  701. compatible = "arm,coresight-etm3x", "arm,primecell";
  702. reg = <0 0xe3c7e000 0 0x1000>;
  703. clocks = <&clk_375m>;
  704. clock-names = "apb_pclk";
  705. cpu = <&CPU2>;
  706. port {
  707. ptm2_out_port: endpoint {
  708. remote-endpoint = <&funnel0_in_port2>;
  709. };
  710. };
  711. };
  712. ptm@0,e3c7f000 {
  713. compatible = "arm,coresight-etm3x", "arm,primecell";
  714. reg = <0 0xe3c7f000 0 0x1000>;
  715. clocks = <&clk_375m>;
  716. clock-names = "apb_pclk";
  717. cpu = <&CPU3>;
  718. port {
  719. ptm3_out_port: endpoint {
  720. remote-endpoint = <&funnel0_in_port3>;
  721. };
  722. };
  723. };
  724. ptm@0,e3cbc000 {
  725. compatible = "arm,coresight-etm3x", "arm,primecell";
  726. reg = <0 0xe3cbc000 0 0x1000>;
  727. clocks = <&clk_375m>;
  728. clock-names = "apb_pclk";
  729. cpu = <&CPU4>;
  730. port {
  731. ptm4_out_port: endpoint {
  732. remote-endpoint = <&funnel1_in_port0>;
  733. };
  734. };
  735. };
  736. ptm@0,e3cbd000 {
  737. compatible = "arm,coresight-etm3x", "arm,primecell";
  738. reg = <0 0xe3cbd000 0 0x1000>;
  739. clocks = <&clk_375m>;
  740. clock-names = "apb_pclk";
  741. cpu = <&CPU5>;
  742. port {
  743. ptm5_out_port: endpoint {
  744. remote-endpoint = <&funnel1_in_port1>;
  745. };
  746. };
  747. };
  748. ptm@0,e3cbe000 {
  749. compatible = "arm,coresight-etm3x", "arm,primecell";
  750. reg = <0 0xe3cbe000 0 0x1000>;
  751. clocks = <&clk_375m>;
  752. clock-names = "apb_pclk";
  753. cpu = <&CPU6>;
  754. port {
  755. ptm6_out_port: endpoint {
  756. remote-endpoint = <&funnel1_in_port2>;
  757. };
  758. };
  759. };
  760. ptm@0,e3cbf000 {
  761. compatible = "arm,coresight-etm3x", "arm,primecell";
  762. reg = <0 0xe3cbf000 0 0x1000>;
  763. clocks = <&clk_375m>;
  764. clock-names = "apb_pclk";
  765. cpu = <&CPU7>;
  766. port {
  767. ptm7_out_port: endpoint {
  768. remote-endpoint = <&funnel1_in_port3>;
  769. };
  770. };
  771. };
  772. ptm@0,e3cfc000 {
  773. compatible = "arm,coresight-etm3x", "arm,primecell";
  774. reg = <0 0xe3cfc000 0 0x1000>;
  775. clocks = <&clk_375m>;
  776. clock-names = "apb_pclk";
  777. cpu = <&CPU8>;
  778. port {
  779. ptm8_out_port: endpoint {
  780. remote-endpoint = <&funnel2_in_port0>;
  781. };
  782. };
  783. };
  784. ptm@0,e3cfd000 {
  785. compatible = "arm,coresight-etm3x", "arm,primecell";
  786. reg = <0 0xe3cfd000 0 0x1000>;
  787. clocks = <&clk_375m>;
  788. clock-names = "apb_pclk";
  789. cpu = <&CPU9>;
  790. port {
  791. ptm9_out_port: endpoint {
  792. remote-endpoint = <&funnel2_in_port1>;
  793. };
  794. };
  795. };
  796. ptm@0,e3cfe000 {
  797. compatible = "arm,coresight-etm3x", "arm,primecell";
  798. reg = <0 0xe3cfe000 0 0x1000>;
  799. clocks = <&clk_375m>;
  800. clock-names = "apb_pclk";
  801. cpu = <&CPU10>;
  802. port {
  803. ptm10_out_port: endpoint {
  804. remote-endpoint = <&funnel2_in_port2>;
  805. };
  806. };
  807. };
  808. ptm@0,e3cff000 {
  809. compatible = "arm,coresight-etm3x", "arm,primecell";
  810. reg = <0 0xe3cff000 0 0x1000>;
  811. clocks = <&clk_375m>;
  812. clock-names = "apb_pclk";
  813. cpu = <&CPU11>;
  814. port {
  815. ptm11_out_port: endpoint {
  816. remote-endpoint = <&funnel2_in_port3>;
  817. };
  818. };
  819. };
  820. ptm@0,e3d3c000 {
  821. compatible = "arm,coresight-etm3x", "arm,primecell";
  822. reg = <0 0xe3d3c000 0 0x1000>;
  823. clocks = <&clk_375m>;
  824. clock-names = "apb_pclk";
  825. cpu = <&CPU12>;
  826. port {
  827. ptm12_out_port: endpoint {
  828. remote-endpoint = <&funnel3_in_port0>;
  829. };
  830. };
  831. };
  832. ptm@0,e3d3d000 {
  833. compatible = "arm,coresight-etm3x", "arm,primecell";
  834. reg = <0 0xe3d3d000 0 0x1000>;
  835. clocks = <&clk_375m>;
  836. clock-names = "apb_pclk";
  837. cpu = <&CPU13>;
  838. port {
  839. ptm13_out_port: endpoint {
  840. remote-endpoint = <&funnel3_in_port1>;
  841. };
  842. };
  843. };
  844. ptm@0,e3d3e000 {
  845. compatible = "arm,coresight-etm3x", "arm,primecell";
  846. reg = <0 0xe3d3e000 0 0x1000>;
  847. clocks = <&clk_375m>;
  848. clock-names = "apb_pclk";
  849. cpu = <&CPU14>;
  850. port {
  851. ptm14_out_port: endpoint {
  852. remote-endpoint = <&funnel3_in_port2>;
  853. };
  854. };
  855. };
  856. ptm@0,e3d3f000 {
  857. compatible = "arm,coresight-etm3x", "arm,primecell";
  858. reg = <0 0xe3d3f000 0 0x1000>;
  859. clocks = <&clk_375m>;
  860. clock-names = "apb_pclk";
  861. cpu = <&CPU15>;
  862. port {
  863. ptm15_out_port: endpoint {
  864. remote-endpoint = <&funnel3_in_port3>;
  865. };
  866. };
  867. };
  868. };