arm-realview-pb11mp.dts 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736
  1. /*
  2. * Copyright 2015 Linaro Ltd
  3. *
  4. * Permission is hereby granted, free of charge, to any person obtaining a copy
  5. * of this software and associated documentation files (the "Software"), to deal
  6. * in the Software without restriction, including without limitation the rights
  7. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  8. * copies of the Software, and to permit persons to whom the Software is
  9. * furnished to do so, subject to the following conditions:
  10. *
  11. * The above copyright notice and this permission notice shall be included in
  12. * all copies or substantial portions of the Software.
  13. *
  14. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  17. * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  19. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  20. * THE SOFTWARE.
  21. */
  22. /dts-v1/;
  23. #include <dt-bindings/interrupt-controller/irq.h>
  24. #include <dt-bindings/gpio/gpio.h>
  25. / {
  26. #address-cells = <1>;
  27. #size-cells = <1>;
  28. model = "ARM RealView PB11MPcore";
  29. compatible = "arm,realview-pb11mp";
  30. chosen { };
  31. aliases {
  32. serial0 = &pb11mp_serial0;
  33. serial1 = &pb11mp_serial1;
  34. serial2 = &pb11mp_serial2;
  35. serial3 = &pb11mp_serial3;
  36. };
  37. memory {
  38. device_type = "memory";
  39. /*
  40. * The PB11MPCore has 512 MiB memory @ 0x70000000
  41. * and the first 256 are also remapped @ 0x00000000
  42. */
  43. reg = <0x70000000 0x20000000>;
  44. };
  45. cpus {
  46. #address-cells = <1>;
  47. #size-cells = <0>;
  48. enable-method = "arm,realview-smp";
  49. MP11_0: cpu@0 {
  50. device_type = "cpu";
  51. compatible = "arm,arm11mpcore";
  52. reg = <0>;
  53. next-level-cache = <&L2>;
  54. };
  55. MP11_1: cpu@1 {
  56. device_type = "cpu";
  57. compatible = "arm,arm11mpcore";
  58. reg = <1>;
  59. next-level-cache = <&L2>;
  60. };
  61. MP11_2: cpu@2 {
  62. device_type = "cpu";
  63. compatible = "arm,arm11mpcore";
  64. reg = <2>;
  65. next-level-cache = <&L2>;
  66. };
  67. MP11_3: cpu@3 {
  68. device_type = "cpu";
  69. compatible = "arm,arm11mpcore";
  70. reg = <3>;
  71. next-level-cache = <&L2>;
  72. };
  73. };
  74. /* Primary TestChip GIC synthesized with the CPU */
  75. intc_tc11mp: interrupt-controller@1f000100 {
  76. compatible = "arm,tc11mp-gic";
  77. #interrupt-cells = <3>;
  78. #address-cells = <1>;
  79. interrupt-controller;
  80. reg = <0x1f001000 0x1000>,
  81. <0x1f000100 0x100>;
  82. };
  83. L2: cache-controller {
  84. compatible = "arm,l220-cache";
  85. reg = <0x1f002000 0x1000>;
  86. interrupt-parent = <&intc_tc11mp>;
  87. interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>,
  88. <0 30 IRQ_TYPE_LEVEL_HIGH>,
  89. <0 31 IRQ_TYPE_LEVEL_HIGH>;
  90. cache-unified;
  91. cache-level = <2>;
  92. /*
  93. * Override default cache size, sets and
  94. * associativity as these may be erroneously set
  95. * up by boot loader(s), probably for safety
  96. * since th outer sync operation can cause the
  97. * cache to hang unless disabled.
  98. */
  99. cache-size = <1048576>; // 1MB
  100. cache-sets = <4096>;
  101. cache-line-size = <32>;
  102. arm,shared-override;
  103. arm,parity-enable;
  104. arm,outer-sync-disable;
  105. };
  106. scu@1f000000 {
  107. compatible = "arm,arm11mp-scu";
  108. reg = <0x1f000000 0x100>;
  109. };
  110. timer@1f000600 {
  111. compatible = "arm,arm11mp-twd-timer";
  112. reg = <0x1f000600 0x20>;
  113. interrupt-parent = <&intc_tc11mp>;
  114. interrupts = <1 13 0xf04>;
  115. };
  116. watchdog@1f000620 {
  117. compatible = "arm,arm11mp-twd-wdt";
  118. reg = <0x1f000620 0x20>;
  119. interrupt-parent = <&intc_tc11mp>;
  120. interrupts = <1 14 0xf04>;
  121. };
  122. /* PMU with one IRQ line per core */
  123. pmu {
  124. compatible = "arm,arm11mpcore-pmu";
  125. interrupt-parent = <&intc_tc11mp>;
  126. interrupts = <0 17 IRQ_TYPE_LEVEL_HIGH>,
  127. <0 18 IRQ_TYPE_LEVEL_HIGH>,
  128. <0 19 IRQ_TYPE_LEVEL_HIGH>,
  129. <0 20 IRQ_TYPE_LEVEL_HIGH>;
  130. interrupt-affinity = <&MP11_0>, <&MP11_1>, <&MP11_2>, <&MP11_3>;
  131. };
  132. /* The voltage to the MMC card is hardwired at 3.3V */
  133. vmmc: regulator-vmmc {
  134. compatible = "regulator-fixed";
  135. regulator-name = "vmmc";
  136. regulator-min-microvolt = <3300000>;
  137. regulator-max-microvolt = <3300000>;
  138. regulator-boot-on;
  139. };
  140. veth: regulator-veth {
  141. compatible = "regulator-fixed";
  142. regulator-name = "veth";
  143. regulator-min-microvolt = <3300000>;
  144. regulator-max-microvolt = <3300000>;
  145. regulator-boot-on;
  146. };
  147. xtal24mhz: xtal24mhz@24M {
  148. #clock-cells = <0>;
  149. compatible = "fixed-clock";
  150. clock-frequency = <24000000>;
  151. };
  152. refclk32khz: refclk32khz {
  153. compatible = "fixed-clock";
  154. #clock-cells = <0>;
  155. clock-frequency = <32768>;
  156. };
  157. timclk: timclk@1M {
  158. #clock-cells = <0>;
  159. compatible = "fixed-factor-clock";
  160. clock-div = <24>;
  161. clock-mult = <1>;
  162. clocks = <&xtal24mhz>;
  163. };
  164. mclk: mclk@24M {
  165. #clock-cells = <0>;
  166. compatible = "fixed-factor-clock";
  167. clock-div = <1>;
  168. clock-mult = <1>;
  169. clocks = <&xtal24mhz>;
  170. };
  171. kmiclk: kmiclk@24M {
  172. #clock-cells = <0>;
  173. compatible = "fixed-factor-clock";
  174. clock-div = <1>;
  175. clock-mult = <1>;
  176. clocks = <&xtal24mhz>;
  177. };
  178. sspclk: sspclk@24M {
  179. #clock-cells = <0>;
  180. compatible = "fixed-factor-clock";
  181. clock-div = <1>;
  182. clock-mult = <1>;
  183. clocks = <&xtal24mhz>;
  184. };
  185. uartclk: uartclk@24M {
  186. #clock-cells = <0>;
  187. compatible = "fixed-factor-clock";
  188. clock-div = <1>;
  189. clock-mult = <1>;
  190. clocks = <&xtal24mhz>;
  191. };
  192. wdogclk: wdogclk@24M {
  193. #clock-cells = <0>;
  194. compatible = "fixed-factor-clock";
  195. clock-div = <1>;
  196. clock-mult = <1>;
  197. clocks = <&xtal24mhz>;
  198. };
  199. /* FIXME: this actually hangs off the PLL clocks */
  200. pclk: pclk@0 {
  201. #clock-cells = <0>;
  202. compatible = "fixed-clock";
  203. clock-frequency = <0>;
  204. };
  205. flash0@40000000 {
  206. /* 2 * 32MiB NOR Flash memory */
  207. compatible = "arm,versatile-flash", "cfi-flash";
  208. reg = <0x40000000 0x04000000>;
  209. bank-width = <4>;
  210. partitions {
  211. compatible = "arm,arm-firmware-suite";
  212. };
  213. };
  214. flash1@44000000 {
  215. // 2 * 32MiB NOR Flash memory
  216. compatible = "arm,versatile-flash", "cfi-flash";
  217. reg = <0x44000000 0x04000000>;
  218. bank-width = <4>;
  219. partitions {
  220. compatible = "arm,arm-firmware-suite";
  221. };
  222. };
  223. bridge {
  224. compatible = "ti,ths8134a", "ti,ths8134";
  225. #address-cells = <1>;
  226. #size-cells = <0>;
  227. ports {
  228. #address-cells = <1>;
  229. #size-cells = <0>;
  230. port@0 {
  231. reg = <0>;
  232. vga_bridge_in: endpoint {
  233. remote-endpoint = <&clcd_pads>;
  234. };
  235. };
  236. port@1 {
  237. reg = <1>;
  238. vga_bridge_out: endpoint {
  239. remote-endpoint = <&vga_con_in>;
  240. };
  241. };
  242. };
  243. };
  244. vga {
  245. /*
  246. * This DDC I2C is connected directly to the DVI portions
  247. * of the connector, so it's not really working when the
  248. * monitor is connected to the VGA connector.
  249. */
  250. compatible = "vga-connector";
  251. ddc-i2c-bus = <&i2c1>;
  252. port {
  253. vga_con_in: endpoint {
  254. remote-endpoint = <&vga_bridge_out>;
  255. };
  256. };
  257. };
  258. soc {
  259. #address-cells = <1>;
  260. #size-cells = <1>;
  261. compatible = "arm,realview-pb11mp-soc", "simple-bus";
  262. regmap = <&pb11mp_syscon>;
  263. ranges;
  264. pb11mp_syscon: syscon@10000000 {
  265. compatible = "arm,realview-pb11mp-syscon", "syscon", "simple-mfd";
  266. reg = <0x10000000 0x1000>;
  267. ranges = <0x0 0x10000000 0x1000>;
  268. #address-cells = <1>;
  269. #size-cells = <1>;
  270. led@8,0 {
  271. compatible = "register-bit-led";
  272. reg = <0x08 0x04>;
  273. offset = <0x08>;
  274. mask = <0x01>;
  275. label = "versatile:0";
  276. linux,default-trigger = "heartbeat";
  277. default-state = "on";
  278. };
  279. led@8,1 {
  280. compatible = "register-bit-led";
  281. reg = <0x08 0x04>;
  282. offset = <0x08>;
  283. mask = <0x02>;
  284. label = "versatile:1";
  285. linux,default-trigger = "mmc0";
  286. default-state = "off";
  287. };
  288. led@8,2 {
  289. compatible = "register-bit-led";
  290. reg = <0x08 0x04>;
  291. offset = <0x08>;
  292. mask = <0x04>;
  293. label = "versatile:2";
  294. linux,default-trigger = "cpu0";
  295. default-state = "off";
  296. };
  297. led@8,3 {
  298. compatible = "register-bit-led";
  299. reg = <0x08 0x04>;
  300. offset = <0x08>;
  301. mask = <0x08>;
  302. label = "versatile:3";
  303. linux,default-trigger = "cpu1";
  304. default-state = "off";
  305. };
  306. led@8,4 {
  307. compatible = "register-bit-led";
  308. reg = <0x08 0x04>;
  309. offset = <0x08>;
  310. mask = <0x10>;
  311. label = "versatile:4";
  312. linux,default-trigger = "cpu2";
  313. default-state = "off";
  314. };
  315. led@8,5 {
  316. compatible = "register-bit-led";
  317. reg = <0x08 0x04>;
  318. offset = <0x08>;
  319. mask = <0x20>;
  320. label = "versatile:5";
  321. linux,default-trigger = "cpu3";
  322. default-state = "off";
  323. };
  324. led@8,6 {
  325. compatible = "register-bit-led";
  326. reg = <0x08 0x04>;
  327. offset = <0x08>;
  328. mask = <0x40>;
  329. label = "versatile:6";
  330. default-state = "off";
  331. };
  332. led@8,7 {
  333. compatible = "register-bit-led";
  334. reg = <0x08 0x04>;
  335. offset = <0x08>;
  336. mask = <0x80>;
  337. label = "versatile:7";
  338. default-state = "off";
  339. };
  340. oscclk0: clock-controller@c {
  341. compatible = "arm,syscon-icst307";
  342. reg = <0x0c 0x04>;
  343. #clock-cells = <0>;
  344. lock-offset = <0x20>;
  345. vco-offset = <0x0C>;
  346. clocks = <&xtal24mhz>;
  347. };
  348. oscclk1: clock-controller@10 {
  349. compatible = "arm,syscon-icst307";
  350. reg = <0x10 0x04>;
  351. #clock-cells = <0>;
  352. lock-offset = <0x20>;
  353. vco-offset = <0x10>;
  354. clocks = <&xtal24mhz>;
  355. };
  356. oscclk2: clock-controller@14 {
  357. compatible = "arm,syscon-icst307";
  358. reg = <0x14 0x04>;
  359. #clock-cells = <0>;
  360. lock-offset = <0x20>;
  361. vco-offset = <0x14>;
  362. clocks = <&xtal24mhz>;
  363. };
  364. oscclk3: clock-controller@18 {
  365. compatible = "arm,syscon-icst307";
  366. reg = <0x18 0x04>;
  367. #clock-cells = <0>;
  368. lock-offset = <0x20>;
  369. vco-offset = <0x18>;
  370. clocks = <&xtal24mhz>;
  371. };
  372. oscclk4: clock-controller@1c {
  373. compatible = "arm,syscon-icst307";
  374. reg = <0x1c 0x04>;
  375. #clock-cells = <0>;
  376. lock-offset = <0x20>;
  377. vco-offset = <0x1c>;
  378. clocks = <&xtal24mhz>;
  379. };
  380. oscclk5: clock-controller@d4 {
  381. compatible = "arm,syscon-icst307";
  382. reg = <0xd4 0x04>;
  383. #clock-cells = <0>;
  384. lock-offset = <0x20>;
  385. vco-offset = <0xd4>;
  386. clocks = <&xtal24mhz>;
  387. };
  388. oscclk6: clock-controller@d8 {
  389. compatible = "arm,syscon-icst307";
  390. reg = <0xd8 0x04>;
  391. #clock-cells = <0>;
  392. lock-offset = <0x20>;
  393. vco-offset = <0xd8>;
  394. clocks = <&xtal24mhz>;
  395. };
  396. };
  397. sp810_syscon: sysctl@10001000 {
  398. compatible = "arm,sp810", "arm,primecell";
  399. reg = <0x10001000 0x1000>;
  400. clocks = <&refclk32khz>, <&timclk>, <&xtal24mhz>;
  401. clock-names = "refclk", "timclk", "apb_pclk";
  402. #clock-cells = <1>;
  403. clock-output-names = "timerclk0",
  404. "timerclk1",
  405. "timerclk2",
  406. "timerclk3";
  407. assigned-clocks = <&sp810_syscon 0>,
  408. <&sp810_syscon 1>,
  409. <&sp810_syscon 2>,
  410. <&sp810_syscon 3>;
  411. assigned-clock-parents = <&timclk>,
  412. <&timclk>,
  413. <&timclk>,
  414. <&timclk>;
  415. };
  416. i2c0: i2c@10002000 {
  417. #address-cells = <1>;
  418. #size-cells = <0>;
  419. compatible = "arm,versatile-i2c";
  420. reg = <0x10002000 0x1000>;
  421. rtc@68 {
  422. compatible = "dallas,ds1338";
  423. reg = <0x68>;
  424. };
  425. };
  426. aaci: aaci@10004000 {
  427. compatible = "arm,pl041", "arm,primecell";
  428. reg = <0x10004000 0x1000>;
  429. interrupt-parent = <&intc_tc11mp>;
  430. interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>;
  431. clocks = <&pclk>;
  432. clock-names = "apb_pclk";
  433. };
  434. mci: mmcsd@10005000 {
  435. compatible = "arm,pl18x", "arm,primecell";
  436. reg = <0x10005000 0x1000>;
  437. interrupt-parent = <&intc_tc11mp>;
  438. interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>,
  439. <0 15 IRQ_TYPE_LEVEL_HIGH>;
  440. /* Due to frequent FIFO overruns, use just 500 kHz */
  441. max-frequency = <500000>;
  442. bus-width = <4>;
  443. cap-sd-highspeed;
  444. cap-mmc-highspeed;
  445. clocks = <&mclk>, <&pclk>;
  446. clock-names = "mclk", "apb_pclk";
  447. vmmc-supply = <&vmmc>;
  448. cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
  449. wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
  450. };
  451. kmi0: kmi@10006000 {
  452. compatible = "arm,pl050", "arm,primecell";
  453. reg = <0x10006000 0x1000>;
  454. interrupt-parent = <&intc_tc11mp>;
  455. interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
  456. clocks = <&kmiclk>, <&pclk>;
  457. clock-names = "KMIREFCLK", "apb_pclk";
  458. };
  459. kmi1: kmi@10007000 {
  460. compatible = "arm,pl050", "arm,primecell";
  461. reg = <0x10007000 0x1000>;
  462. interrupt-parent = <&intc_tc11mp>;
  463. interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
  464. clocks = <&kmiclk>, <&pclk>;
  465. clock-names = "KMIREFCLK", "apb_pclk";
  466. };
  467. pb11mp_serial0: serial@10009000 {
  468. compatible = "arm,pl011", "arm,primecell";
  469. reg = <0x10009000 0x1000>;
  470. interrupt-parent = <&intc_tc11mp>;
  471. interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
  472. clocks = <&uartclk>, <&pclk>;
  473. clock-names = "uartclk", "apb_pclk";
  474. };
  475. pb11mp_serial1: serial@1000a000 {
  476. compatible = "arm,pl011", "arm,primecell";
  477. reg = <0x1000a000 0x1000>;
  478. interrupt-parent = <&intc_tc11mp>;
  479. interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
  480. clocks = <&uartclk>, <&pclk>;
  481. clock-names = "uartclk", "apb_pclk";
  482. };
  483. pb11mp_serial2: serial@1000b000 {
  484. compatible = "arm,pl011", "arm,primecell";
  485. reg = <0x1000b000 0x1000>;
  486. interrupt-parent = <&intc_pb11mp>;
  487. interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
  488. clocks = <&uartclk>, <&pclk>;
  489. clock-names = "uartclk", "apb_pclk";
  490. };
  491. pb11mp_serial3: serial@1000c000 {
  492. compatible = "arm,pl011", "arm,primecell";
  493. reg = <0x1000c000 0x1000>;
  494. interrupt-parent = <&intc_pb11mp>;
  495. interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
  496. clocks = <&uartclk>, <&pclk>;
  497. clock-names = "uartclk", "apb_pclk";
  498. };
  499. spi@1000d000 {
  500. compatible = "arm,pl022", "arm,primecell";
  501. reg = <0x1000d000 0x1000>;
  502. interrupt-parent = <&intc_pb11mp>;
  503. interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
  504. clocks = <&sspclk>, <&pclk>;
  505. clock-names = "sspclk", "apb_pclk";
  506. };
  507. watchdog@1000f000 {
  508. compatible = "arm,sp805", "arm,primecell";
  509. reg = <0x1000f000 0x1000>;
  510. interrupt-parent = <&intc_pb11mp>;
  511. interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>;
  512. clocks = <&wdogclk>, <&pclk>;
  513. clock-names = "wdog_clk", "apb_pclk";
  514. status = "disabled";
  515. };
  516. watchdog@10010000 {
  517. compatible = "arm,sp805", "arm,primecell";
  518. reg = <0x10010000 0x1000>;
  519. interrupt-parent = <&intc_pb11mp>;
  520. interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>;
  521. clocks = <&wdogclk>, <&pclk>;
  522. clock-names = "wdog_clk", "apb_pclk";
  523. };
  524. timer01: timer@10011000 {
  525. compatible = "arm,sp804", "arm,primecell";
  526. reg = <0x10011000 0x1000>;
  527. interrupt-parent = <&intc_tc11mp>;
  528. interrupts = <0 1 IRQ_TYPE_LEVEL_HIGH>;
  529. arm,sp804-has-irq = <1>;
  530. clocks = <&sp810_syscon 0>,
  531. <&sp810_syscon 1>,
  532. <&pclk>;
  533. clock-names = "timer0clk",
  534. "timer1clk",
  535. "apb_pclk";
  536. };
  537. timer23: timer@10012000 {
  538. compatible = "arm,sp804", "arm,primecell";
  539. reg = <0x10012000 0x1000>;
  540. interrupt-parent = <&intc_tc11mp>;
  541. interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
  542. arm,sp804-has-irq = <1>;
  543. clocks = <&sp810_syscon 2>,
  544. <&sp810_syscon 3>,
  545. <&pclk>;
  546. clock-names = "timer0clk",
  547. "timer1clk",
  548. "apb_pclk";
  549. };
  550. gpio0: gpio@10013000 {
  551. compatible = "arm,pl061", "arm,primecell";
  552. reg = <0x10013000 0x1000>;
  553. gpio-controller;
  554. interrupt-parent = <&intc_pb11mp>;
  555. interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
  556. #gpio-cells = <2>;
  557. interrupt-controller;
  558. #interrupt-cells = <2>;
  559. clocks = <&pclk>;
  560. clock-names = "apb_pclk";
  561. };
  562. gpio1: gpio@10014000 {
  563. compatible = "arm,pl061", "arm,primecell";
  564. reg = <0x10014000 0x1000>;
  565. gpio-controller;
  566. interrupt-parent = <&intc_pb11mp>;
  567. interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
  568. #gpio-cells = <2>;
  569. interrupt-controller;
  570. #interrupt-cells = <2>;
  571. clocks = <&pclk>;
  572. clock-names = "apb_pclk";
  573. };
  574. gpio2: gpio@10015000 {
  575. compatible = "arm,pl061", "arm,primecell";
  576. reg = <0x10015000 0x1000>;
  577. gpio-controller;
  578. interrupt-parent = <&intc_pb11mp>;
  579. interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
  580. #gpio-cells = <2>;
  581. interrupt-controller;
  582. #interrupt-cells = <2>;
  583. clocks = <&pclk>;
  584. clock-names = "apb_pclk";
  585. };
  586. i2c1: i2c@10016000 {
  587. #address-cells = <1>;
  588. #size-cells = <0>;
  589. compatible = "arm,versatile-i2c";
  590. reg = <0x10016000 0x1000>;
  591. };
  592. rtc: rtc@10017000 {
  593. compatible = "arm,pl031", "arm,primecell";
  594. reg = <0x10017000 0x1000>;
  595. interrupt-parent = <&intc_tc11mp>;
  596. interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
  597. clocks = <&pclk>;
  598. clock-names = "apb_pclk";
  599. };
  600. timer45: timer@10018000 {
  601. compatible = "arm,sp804", "arm,primecell";
  602. reg = <0x10018000 0x1000>;
  603. clocks = <&timclk>, <&timclk>, <&pclk>;
  604. clock-names = "timer0clk", "timer1clk", "apb_pclk";
  605. status = "disabled";
  606. };
  607. timer67: timer@10019000 {
  608. compatible = "arm,sp804", "arm,primecell";
  609. reg = <0x10019000 0x1000>;
  610. clocks = <&timclk>, <&timclk>, <&pclk>;
  611. clock-names = "timer0clk", "timer1clk", "apb_pclk";
  612. status = "disabled";
  613. };
  614. clcd@10020000 {
  615. compatible = "arm,pl111", "arm,primecell";
  616. reg = <0x10020000 0x1000>;
  617. interrupt-parent = <&intc_pb11mp>;
  618. interrupt-names = "combined";
  619. interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
  620. clocks = <&oscclk4>, <&pclk>;
  621. clock-names = "clcdclk", "apb_pclk";
  622. /* 1024x768 16bpp @65MHz works fine */
  623. max-memory-bandwidth = <95000000>;
  624. port {
  625. clcd_pads: endpoint {
  626. remote-endpoint = <&vga_bridge_in>;
  627. arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
  628. };
  629. };
  630. };
  631. /*
  632. * This GIC on the Platform Baseboard is cascaded off the
  633. * TestChip GIC
  634. */
  635. intc_pb11mp: interrupt-controller@1e000000 {
  636. compatible = "arm,arm11mp-gic";
  637. #interrupt-cells = <3>;
  638. #address-cells = <1>;
  639. interrupt-controller;
  640. reg = <0x1e001000 0x1000>,
  641. <0x1e000000 0x100>;
  642. interrupt-parent = <&intc_tc11mp>;
  643. interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
  644. };
  645. /* SMSC 9118 ethernet with PHY and EEPROM */
  646. ethernet@4e000000 {
  647. compatible = "smsc,lan9118", "smsc,lan9115";
  648. reg = <0x4e000000 0x10000>;
  649. interrupt-parent = <&intc_tc11mp>;
  650. interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
  651. phy-mode = "mii";
  652. reg-io-width = <4>;
  653. smsc,irq-active-high;
  654. smsc,irq-push-pull;
  655. vdd33a-supply = <&veth>;
  656. vddvario-supply = <&veth>;
  657. };
  658. usb@4f000000 {
  659. compatible = "nxp,usb-isp1761";
  660. reg = <0x4f000000 0x20000>;
  661. interrupt-parent = <&intc_tc11mp>;
  662. interrupts = <0 3 IRQ_TYPE_LEVEL_HIGH>;
  663. dr_mode = "peripheral";
  664. };
  665. };
  666. };