uniphier-ld20.dtsi 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996
  1. // SPDX-License-Identifier: GPL-2.0+ OR MIT
  2. //
  3. // Device Tree Source for UniPhier LD20 SoC
  4. //
  5. // Copyright (C) 2015-2016 Socionext Inc.
  6. // Author: Masahiro Yamada <[email protected]>
  7. #include <dt-bindings/gpio/gpio.h>
  8. #include <dt-bindings/gpio/uniphier-gpio.h>
  9. #include <dt-bindings/interrupt-controller/arm-gic.h>
  10. #include <dt-bindings/thermal/thermal.h>
  11. / {
  12. compatible = "socionext,uniphier-ld20";
  13. #address-cells = <2>;
  14. #size-cells = <2>;
  15. interrupt-parent = <&gic>;
  16. cpus {
  17. #address-cells = <2>;
  18. #size-cells = <0>;
  19. cpu-map {
  20. cluster0 {
  21. core0 {
  22. cpu = <&cpu0>;
  23. };
  24. core1 {
  25. cpu = <&cpu1>;
  26. };
  27. };
  28. cluster1 {
  29. core0 {
  30. cpu = <&cpu2>;
  31. };
  32. core1 {
  33. cpu = <&cpu3>;
  34. };
  35. };
  36. };
  37. cpu0: cpu@0 {
  38. device_type = "cpu";
  39. compatible = "arm,cortex-a72";
  40. reg = <0 0x000>;
  41. clocks = <&sys_clk 32>;
  42. enable-method = "psci";
  43. next-level-cache = <&a72_l2>;
  44. operating-points-v2 = <&cluster0_opp>;
  45. #cooling-cells = <2>;
  46. };
  47. cpu1: cpu@1 {
  48. device_type = "cpu";
  49. compatible = "arm,cortex-a72";
  50. reg = <0 0x001>;
  51. clocks = <&sys_clk 32>;
  52. enable-method = "psci";
  53. next-level-cache = <&a72_l2>;
  54. operating-points-v2 = <&cluster0_opp>;
  55. #cooling-cells = <2>;
  56. };
  57. cpu2: cpu@100 {
  58. device_type = "cpu";
  59. compatible = "arm,cortex-a53";
  60. reg = <0 0x100>;
  61. clocks = <&sys_clk 33>;
  62. enable-method = "psci";
  63. next-level-cache = <&a53_l2>;
  64. operating-points-v2 = <&cluster1_opp>;
  65. #cooling-cells = <2>;
  66. };
  67. cpu3: cpu@101 {
  68. device_type = "cpu";
  69. compatible = "arm,cortex-a53";
  70. reg = <0 0x101>;
  71. clocks = <&sys_clk 33>;
  72. enable-method = "psci";
  73. next-level-cache = <&a53_l2>;
  74. operating-points-v2 = <&cluster1_opp>;
  75. #cooling-cells = <2>;
  76. };
  77. a72_l2: l2-cache0 {
  78. compatible = "cache";
  79. };
  80. a53_l2: l2-cache1 {
  81. compatible = "cache";
  82. };
  83. };
  84. cluster0_opp: opp-table-0 {
  85. compatible = "operating-points-v2";
  86. opp-shared;
  87. opp-250000000 {
  88. opp-hz = /bits/ 64 <250000000>;
  89. clock-latency-ns = <300>;
  90. };
  91. opp-275000000 {
  92. opp-hz = /bits/ 64 <275000000>;
  93. clock-latency-ns = <300>;
  94. };
  95. opp-500000000 {
  96. opp-hz = /bits/ 64 <500000000>;
  97. clock-latency-ns = <300>;
  98. };
  99. opp-550000000 {
  100. opp-hz = /bits/ 64 <550000000>;
  101. clock-latency-ns = <300>;
  102. };
  103. opp-666667000 {
  104. opp-hz = /bits/ 64 <666667000>;
  105. clock-latency-ns = <300>;
  106. };
  107. opp-733334000 {
  108. opp-hz = /bits/ 64 <733334000>;
  109. clock-latency-ns = <300>;
  110. };
  111. opp-1000000000 {
  112. opp-hz = /bits/ 64 <1000000000>;
  113. clock-latency-ns = <300>;
  114. };
  115. opp-1100000000 {
  116. opp-hz = /bits/ 64 <1100000000>;
  117. clock-latency-ns = <300>;
  118. };
  119. };
  120. cluster1_opp: opp-table-1 {
  121. compatible = "operating-points-v2";
  122. opp-shared;
  123. opp-250000000 {
  124. opp-hz = /bits/ 64 <250000000>;
  125. clock-latency-ns = <300>;
  126. };
  127. opp-275000000 {
  128. opp-hz = /bits/ 64 <275000000>;
  129. clock-latency-ns = <300>;
  130. };
  131. opp-500000000 {
  132. opp-hz = /bits/ 64 <500000000>;
  133. clock-latency-ns = <300>;
  134. };
  135. opp-550000000 {
  136. opp-hz = /bits/ 64 <550000000>;
  137. clock-latency-ns = <300>;
  138. };
  139. opp-666667000 {
  140. opp-hz = /bits/ 64 <666667000>;
  141. clock-latency-ns = <300>;
  142. };
  143. opp-733334000 {
  144. opp-hz = /bits/ 64 <733334000>;
  145. clock-latency-ns = <300>;
  146. };
  147. opp-1000000000 {
  148. opp-hz = /bits/ 64 <1000000000>;
  149. clock-latency-ns = <300>;
  150. };
  151. opp-1100000000 {
  152. opp-hz = /bits/ 64 <1100000000>;
  153. clock-latency-ns = <300>;
  154. };
  155. };
  156. psci {
  157. compatible = "arm,psci-1.0";
  158. method = "smc";
  159. };
  160. clocks {
  161. refclk: ref {
  162. compatible = "fixed-clock";
  163. #clock-cells = <0>;
  164. clock-frequency = <25000000>;
  165. };
  166. };
  167. emmc_pwrseq: emmc-pwrseq {
  168. compatible = "mmc-pwrseq-emmc";
  169. reset-gpios = <&gpio UNIPHIER_GPIO_PORT(3, 2) GPIO_ACTIVE_LOW>;
  170. };
  171. timer {
  172. compatible = "arm,armv8-timer";
  173. interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
  174. <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
  175. <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
  176. <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
  177. };
  178. thermal-zones {
  179. cpu-thermal {
  180. polling-delay-passive = <250>; /* 250ms */
  181. polling-delay = <1000>; /* 1000ms */
  182. thermal-sensors = <&pvtctl>;
  183. trips {
  184. cpu_crit: cpu-crit {
  185. temperature = <110000>; /* 110C */
  186. hysteresis = <2000>;
  187. type = "critical";
  188. };
  189. cpu_alert: cpu-alert {
  190. temperature = <100000>; /* 100C */
  191. hysteresis = <2000>;
  192. type = "passive";
  193. };
  194. };
  195. cooling-maps {
  196. map0 {
  197. trip = <&cpu_alert>;
  198. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  199. <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  200. <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  201. <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  202. };
  203. };
  204. };
  205. };
  206. reserved-memory {
  207. #address-cells = <2>;
  208. #size-cells = <2>;
  209. ranges;
  210. secure-memory@81000000 {
  211. reg = <0x0 0x81000000 0x0 0x01000000>;
  212. no-map;
  213. };
  214. };
  215. soc@0 {
  216. compatible = "simple-bus";
  217. #address-cells = <1>;
  218. #size-cells = <1>;
  219. ranges = <0 0 0 0xffffffff>;
  220. spi0: spi@54006000 {
  221. compatible = "socionext,uniphier-scssi";
  222. status = "disabled";
  223. reg = <0x54006000 0x100>;
  224. #address-cells = <1>;
  225. #size-cells = <0>;
  226. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  227. pinctrl-names = "default";
  228. pinctrl-0 = <&pinctrl_spi0>;
  229. clocks = <&peri_clk 11>;
  230. resets = <&peri_rst 11>;
  231. };
  232. spi1: spi@54006100 {
  233. compatible = "socionext,uniphier-scssi";
  234. status = "disabled";
  235. reg = <0x54006100 0x100>;
  236. #address-cells = <1>;
  237. #size-cells = <0>;
  238. interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
  239. pinctrl-names = "default";
  240. pinctrl-0 = <&pinctrl_spi1>;
  241. clocks = <&peri_clk 12>;
  242. resets = <&peri_rst 12>;
  243. };
  244. spi2: spi@54006200 {
  245. compatible = "socionext,uniphier-scssi";
  246. status = "disabled";
  247. reg = <0x54006200 0x100>;
  248. #address-cells = <1>;
  249. #size-cells = <0>;
  250. interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
  251. pinctrl-names = "default";
  252. pinctrl-0 = <&pinctrl_spi2>;
  253. clocks = <&peri_clk 13>;
  254. resets = <&peri_rst 13>;
  255. };
  256. spi3: spi@54006300 {
  257. compatible = "socionext,uniphier-scssi";
  258. status = "disabled";
  259. reg = <0x54006300 0x100>;
  260. #address-cells = <1>;
  261. #size-cells = <0>;
  262. interrupts = <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>;
  263. pinctrl-names = "default";
  264. pinctrl-0 = <&pinctrl_spi3>;
  265. clocks = <&peri_clk 14>;
  266. resets = <&peri_rst 14>;
  267. };
  268. serial0: serial@54006800 {
  269. compatible = "socionext,uniphier-uart";
  270. status = "disabled";
  271. reg = <0x54006800 0x40>;
  272. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  273. pinctrl-names = "default";
  274. pinctrl-0 = <&pinctrl_uart0>;
  275. clocks = <&peri_clk 0>;
  276. resets = <&peri_rst 0>;
  277. };
  278. serial1: serial@54006900 {
  279. compatible = "socionext,uniphier-uart";
  280. status = "disabled";
  281. reg = <0x54006900 0x40>;
  282. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  283. pinctrl-names = "default";
  284. pinctrl-0 = <&pinctrl_uart1>;
  285. clocks = <&peri_clk 1>;
  286. resets = <&peri_rst 1>;
  287. };
  288. serial2: serial@54006a00 {
  289. compatible = "socionext,uniphier-uart";
  290. status = "disabled";
  291. reg = <0x54006a00 0x40>;
  292. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  293. pinctrl-names = "default";
  294. pinctrl-0 = <&pinctrl_uart2>;
  295. clocks = <&peri_clk 2>;
  296. resets = <&peri_rst 2>;
  297. };
  298. serial3: serial@54006b00 {
  299. compatible = "socionext,uniphier-uart";
  300. status = "disabled";
  301. reg = <0x54006b00 0x40>;
  302. interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
  303. pinctrl-names = "default";
  304. pinctrl-0 = <&pinctrl_uart3>;
  305. clocks = <&peri_clk 3>;
  306. resets = <&peri_rst 3>;
  307. };
  308. gpio: gpio@55000000 {
  309. compatible = "socionext,uniphier-gpio";
  310. reg = <0x55000000 0x200>;
  311. interrupt-parent = <&aidet>;
  312. interrupt-controller;
  313. #interrupt-cells = <2>;
  314. gpio-controller;
  315. #gpio-cells = <2>;
  316. gpio-ranges = <&pinctrl 0 0 0>,
  317. <&pinctrl 96 0 0>,
  318. <&pinctrl 160 0 0>;
  319. gpio-ranges-group-names = "gpio_range0",
  320. "gpio_range1",
  321. "gpio_range2";
  322. ngpios = <205>;
  323. socionext,interrupt-ranges = <0 48 16>, <16 154 5>,
  324. <21 217 3>;
  325. };
  326. audio@56000000 {
  327. compatible = "socionext,uniphier-ld20-aio";
  328. reg = <0x56000000 0x80000>;
  329. interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
  330. pinctrl-names = "default";
  331. pinctrl-0 = <&pinctrl_aout1>,
  332. <&pinctrl_aoutiec1>;
  333. clock-names = "aio";
  334. clocks = <&sys_clk 40>;
  335. reset-names = "aio";
  336. resets = <&sys_rst 40>;
  337. #sound-dai-cells = <1>;
  338. socionext,syscon = <&soc_glue>;
  339. i2s_port0: port@0 {
  340. i2s_hdmi: endpoint {
  341. };
  342. };
  343. i2s_port1: port@1 {
  344. i2s_pcmin2: endpoint {
  345. };
  346. };
  347. i2s_port2: port@2 {
  348. i2s_line: endpoint {
  349. dai-format = "i2s";
  350. remote-endpoint = <&evea_line>;
  351. };
  352. };
  353. i2s_port3: port@3 {
  354. i2s_hpcmout1: endpoint {
  355. };
  356. };
  357. i2s_port4: port@4 {
  358. i2s_hp: endpoint {
  359. dai-format = "i2s";
  360. remote-endpoint = <&evea_hp>;
  361. };
  362. };
  363. spdif_port0: port@5 {
  364. spdif_hiecout1: endpoint {
  365. };
  366. };
  367. src_port0: port@6 {
  368. i2s_epcmout2: endpoint {
  369. };
  370. };
  371. src_port1: port@7 {
  372. i2s_epcmout3: endpoint {
  373. };
  374. };
  375. comp_spdif_port0: port@8 {
  376. comp_spdif_hiecout1: endpoint {
  377. };
  378. };
  379. };
  380. codec@57900000 {
  381. compatible = "socionext,uniphier-evea";
  382. reg = <0x57900000 0x1000>;
  383. clock-names = "evea", "exiv";
  384. clocks = <&sys_clk 41>, <&sys_clk 42>;
  385. reset-names = "evea", "exiv", "adamv";
  386. resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>;
  387. #sound-dai-cells = <1>;
  388. port@0 {
  389. evea_line: endpoint {
  390. remote-endpoint = <&i2s_line>;
  391. };
  392. };
  393. port@1 {
  394. evea_hp: endpoint {
  395. remote-endpoint = <&i2s_hp>;
  396. };
  397. };
  398. };
  399. adamv@57920000 {
  400. compatible = "socionext,uniphier-ld20-adamv",
  401. "simple-mfd", "syscon";
  402. reg = <0x57920000 0x1000>;
  403. adamv_rst: reset {
  404. compatible = "socionext,uniphier-ld20-adamv-reset";
  405. #reset-cells = <1>;
  406. };
  407. };
  408. i2c0: i2c@58780000 {
  409. compatible = "socionext,uniphier-fi2c";
  410. status = "disabled";
  411. reg = <0x58780000 0x80>;
  412. #address-cells = <1>;
  413. #size-cells = <0>;
  414. interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
  415. pinctrl-names = "default";
  416. pinctrl-0 = <&pinctrl_i2c0>;
  417. clocks = <&peri_clk 4>;
  418. resets = <&peri_rst 4>;
  419. clock-frequency = <100000>;
  420. };
  421. i2c1: i2c@58781000 {
  422. compatible = "socionext,uniphier-fi2c";
  423. status = "disabled";
  424. reg = <0x58781000 0x80>;
  425. #address-cells = <1>;
  426. #size-cells = <0>;
  427. interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
  428. pinctrl-names = "default";
  429. pinctrl-0 = <&pinctrl_i2c1>;
  430. clocks = <&peri_clk 5>;
  431. resets = <&peri_rst 5>;
  432. clock-frequency = <100000>;
  433. };
  434. i2c2: i2c@58782000 {
  435. compatible = "socionext,uniphier-fi2c";
  436. reg = <0x58782000 0x80>;
  437. #address-cells = <1>;
  438. #size-cells = <0>;
  439. interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
  440. clocks = <&peri_clk 6>;
  441. resets = <&peri_rst 6>;
  442. clock-frequency = <400000>;
  443. };
  444. i2c3: i2c@58783000 {
  445. compatible = "socionext,uniphier-fi2c";
  446. status = "disabled";
  447. reg = <0x58783000 0x80>;
  448. #address-cells = <1>;
  449. #size-cells = <0>;
  450. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  451. pinctrl-names = "default";
  452. pinctrl-0 = <&pinctrl_i2c3>;
  453. clocks = <&peri_clk 7>;
  454. resets = <&peri_rst 7>;
  455. clock-frequency = <100000>;
  456. };
  457. i2c4: i2c@58784000 {
  458. compatible = "socionext,uniphier-fi2c";
  459. status = "disabled";
  460. reg = <0x58784000 0x80>;
  461. #address-cells = <1>;
  462. #size-cells = <0>;
  463. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  464. pinctrl-names = "default";
  465. pinctrl-0 = <&pinctrl_i2c4>;
  466. clocks = <&peri_clk 8>;
  467. resets = <&peri_rst 8>;
  468. clock-frequency = <100000>;
  469. };
  470. i2c5: i2c@58785000 {
  471. compatible = "socionext,uniphier-fi2c";
  472. reg = <0x58785000 0x80>;
  473. #address-cells = <1>;
  474. #size-cells = <0>;
  475. interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
  476. clocks = <&peri_clk 9>;
  477. resets = <&peri_rst 9>;
  478. clock-frequency = <400000>;
  479. };
  480. system_bus: system-bus@58c00000 {
  481. compatible = "socionext,uniphier-system-bus";
  482. status = "disabled";
  483. reg = <0x58c00000 0x400>;
  484. #address-cells = <2>;
  485. #size-cells = <1>;
  486. pinctrl-names = "default";
  487. pinctrl-0 = <&pinctrl_system_bus>;
  488. };
  489. smpctrl@59801000 {
  490. compatible = "socionext,uniphier-smpctrl";
  491. reg = <0x59801000 0x400>;
  492. };
  493. sdctrl@59810000 {
  494. compatible = "socionext,uniphier-ld20-sdctrl",
  495. "simple-mfd", "syscon";
  496. reg = <0x59810000 0x400>;
  497. sd_clk: clock {
  498. compatible = "socionext,uniphier-ld20-sd-clock";
  499. #clock-cells = <1>;
  500. };
  501. sd_rst: reset {
  502. compatible = "socionext,uniphier-ld20-sd-reset";
  503. #reset-cells = <1>;
  504. };
  505. };
  506. perictrl@59820000 {
  507. compatible = "socionext,uniphier-ld20-perictrl",
  508. "simple-mfd", "syscon";
  509. reg = <0x59820000 0x200>;
  510. peri_clk: clock {
  511. compatible = "socionext,uniphier-ld20-peri-clock";
  512. #clock-cells = <1>;
  513. };
  514. peri_rst: reset {
  515. compatible = "socionext,uniphier-ld20-peri-reset";
  516. #reset-cells = <1>;
  517. };
  518. };
  519. emmc: mmc@5a000000 {
  520. compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
  521. reg = <0x5a000000 0x400>;
  522. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
  523. pinctrl-names = "default";
  524. pinctrl-0 = <&pinctrl_emmc>;
  525. clocks = <&sys_clk 4>;
  526. resets = <&sys_rst 4>;
  527. bus-width = <8>;
  528. mmc-ddr-1_8v;
  529. mmc-hs200-1_8v;
  530. mmc-pwrseq = <&emmc_pwrseq>;
  531. cdns,phy-input-delay-legacy = <9>;
  532. cdns,phy-input-delay-mmc-highspeed = <2>;
  533. cdns,phy-input-delay-mmc-ddr = <3>;
  534. cdns,phy-dll-delay-sdclk = <21>;
  535. cdns,phy-dll-delay-sdclk-hsmmc = <21>;
  536. };
  537. sd: mmc@5a400000 {
  538. compatible = "socionext,uniphier-sd-v3.1.1";
  539. status = "disabled";
  540. reg = <0x5a400000 0x800>;
  541. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
  542. pinctrl-names = "default";
  543. pinctrl-0 = <&pinctrl_sd>;
  544. clocks = <&sd_clk 0>;
  545. reset-names = "host";
  546. resets = <&sd_rst 0>;
  547. bus-width = <4>;
  548. cap-sd-highspeed;
  549. };
  550. soc_glue: soc-glue@5f800000 {
  551. compatible = "socionext,uniphier-ld20-soc-glue",
  552. "simple-mfd", "syscon";
  553. reg = <0x5f800000 0x2000>;
  554. pinctrl: pinctrl {
  555. compatible = "socionext,uniphier-ld20-pinctrl";
  556. };
  557. };
  558. soc-glue@5f900000 {
  559. compatible = "socionext,uniphier-ld20-soc-glue-debug",
  560. "simple-mfd";
  561. #address-cells = <1>;
  562. #size-cells = <1>;
  563. ranges = <0 0x5f900000 0x2000>;
  564. efuse@100 {
  565. compatible = "socionext,uniphier-efuse";
  566. reg = <0x100 0x28>;
  567. };
  568. efuse@200 {
  569. compatible = "socionext,uniphier-efuse";
  570. reg = <0x200 0x68>;
  571. #address-cells = <1>;
  572. #size-cells = <1>;
  573. /* USB cells */
  574. usb_rterm0: trim@54,4 {
  575. reg = <0x54 1>;
  576. bits = <4 2>;
  577. };
  578. usb_rterm1: trim@55,4 {
  579. reg = <0x55 1>;
  580. bits = <4 2>;
  581. };
  582. usb_rterm2: trim@58,4 {
  583. reg = <0x58 1>;
  584. bits = <4 2>;
  585. };
  586. usb_rterm3: trim@59,4 {
  587. reg = <0x59 1>;
  588. bits = <4 2>;
  589. };
  590. usb_sel_t0: trim@54,0 {
  591. reg = <0x54 1>;
  592. bits = <0 4>;
  593. };
  594. usb_sel_t1: trim@55,0 {
  595. reg = <0x55 1>;
  596. bits = <0 4>;
  597. };
  598. usb_sel_t2: trim@58,0 {
  599. reg = <0x58 1>;
  600. bits = <0 4>;
  601. };
  602. usb_sel_t3: trim@59,0 {
  603. reg = <0x59 1>;
  604. bits = <0 4>;
  605. };
  606. usb_hs_i0: trim@56,0 {
  607. reg = <0x56 1>;
  608. bits = <0 4>;
  609. };
  610. usb_hs_i2: trim@5a,0 {
  611. reg = <0x5a 1>;
  612. bits = <0 4>;
  613. };
  614. };
  615. };
  616. xdmac: dma-controller@5fc10000 {
  617. compatible = "socionext,uniphier-xdmac";
  618. reg = <0x5fc10000 0x5300>;
  619. interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
  620. dma-channels = <16>;
  621. #dma-cells = <2>;
  622. };
  623. aidet: interrupt-controller@5fc20000 {
  624. compatible = "socionext,uniphier-ld20-aidet";
  625. reg = <0x5fc20000 0x200>;
  626. interrupt-controller;
  627. #interrupt-cells = <2>;
  628. };
  629. gic: interrupt-controller@5fe00000 {
  630. compatible = "arm,gic-v3";
  631. reg = <0x5fe00000 0x10000>, /* GICD */
  632. <0x5fe80000 0x80000>; /* GICR */
  633. interrupt-controller;
  634. #interrupt-cells = <3>;
  635. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
  636. };
  637. sysctrl@61840000 {
  638. compatible = "socionext,uniphier-ld20-sysctrl",
  639. "simple-mfd", "syscon";
  640. reg = <0x61840000 0x10000>;
  641. sys_clk: clock {
  642. compatible = "socionext,uniphier-ld20-clock";
  643. #clock-cells = <1>;
  644. };
  645. sys_rst: reset {
  646. compatible = "socionext,uniphier-ld20-reset";
  647. #reset-cells = <1>;
  648. };
  649. watchdog {
  650. compatible = "socionext,uniphier-wdt";
  651. };
  652. pvtctl: thermal-sensor {
  653. compatible = "socionext,uniphier-ld20-thermal";
  654. interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
  655. #thermal-sensor-cells = <0>;
  656. socionext,tmod-calibration = <0x0f22 0x68ee>;
  657. };
  658. };
  659. eth: ethernet@65000000 {
  660. compatible = "socionext,uniphier-ld20-ave4";
  661. status = "disabled";
  662. reg = <0x65000000 0x8500>;
  663. interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
  664. pinctrl-names = "default";
  665. pinctrl-0 = <&pinctrl_ether_rgmii>;
  666. clock-names = "ether";
  667. clocks = <&sys_clk 6>;
  668. reset-names = "ether";
  669. resets = <&sys_rst 6>;
  670. phy-mode = "rgmii-id";
  671. local-mac-address = [00 00 00 00 00 00];
  672. socionext,syscon-phy-mode = <&soc_glue 0>;
  673. mdio: mdio {
  674. #address-cells = <1>;
  675. #size-cells = <0>;
  676. };
  677. };
  678. usb: usb@65a00000 {
  679. compatible = "socionext,uniphier-dwc3", "snps,dwc3";
  680. status = "disabled";
  681. reg = <0x65a00000 0xcd00>;
  682. interrupt-names = "host";
  683. interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
  684. pinctrl-names = "default";
  685. pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
  686. <&pinctrl_usb2>, <&pinctrl_usb3>;
  687. clock-names = "ref", "bus_early", "suspend";
  688. clocks = <&sys_clk 14>, <&sys_clk 14>, <&sys_clk 14>;
  689. resets = <&usb_rst 15>;
  690. phys = <&usb_hsphy0>, <&usb_hsphy1>,
  691. <&usb_hsphy2>, <&usb_hsphy3>,
  692. <&usb_ssphy0>, <&usb_ssphy1>;
  693. dr_mode = "host";
  694. };
  695. usb-controller@65b00000 {
  696. compatible = "socionext,uniphier-ld20-dwc3-glue",
  697. "simple-mfd";
  698. #address-cells = <1>;
  699. #size-cells = <1>;
  700. ranges = <0 0x65b00000 0x400>;
  701. usb_rst: reset@0 {
  702. compatible = "socionext,uniphier-ld20-usb3-reset";
  703. reg = <0x0 0x4>;
  704. #reset-cells = <1>;
  705. clock-names = "link";
  706. clocks = <&sys_clk 14>;
  707. reset-names = "link";
  708. resets = <&sys_rst 14>;
  709. };
  710. usb_vbus0: regulator@100 {
  711. compatible = "socionext,uniphier-ld20-usb3-regulator";
  712. reg = <0x100 0x10>;
  713. clock-names = "link";
  714. clocks = <&sys_clk 14>;
  715. reset-names = "link";
  716. resets = <&sys_rst 14>;
  717. };
  718. usb_vbus1: regulator@110 {
  719. compatible = "socionext,uniphier-ld20-usb3-regulator";
  720. reg = <0x110 0x10>;
  721. clock-names = "link";
  722. clocks = <&sys_clk 14>;
  723. reset-names = "link";
  724. resets = <&sys_rst 14>;
  725. };
  726. usb_vbus2: regulator@120 {
  727. compatible = "socionext,uniphier-ld20-usb3-regulator";
  728. reg = <0x120 0x10>;
  729. clock-names = "link";
  730. clocks = <&sys_clk 14>;
  731. reset-names = "link";
  732. resets = <&sys_rst 14>;
  733. };
  734. usb_vbus3: regulator@130 {
  735. compatible = "socionext,uniphier-ld20-usb3-regulator";
  736. reg = <0x130 0x10>;
  737. clock-names = "link";
  738. clocks = <&sys_clk 14>;
  739. reset-names = "link";
  740. resets = <&sys_rst 14>;
  741. };
  742. usb_hsphy0: hs-phy@200 {
  743. compatible = "socionext,uniphier-ld20-usb3-hsphy";
  744. reg = <0x200 0x10>;
  745. #phy-cells = <0>;
  746. clock-names = "link", "phy";
  747. clocks = <&sys_clk 14>, <&sys_clk 16>;
  748. reset-names = "link", "phy";
  749. resets = <&sys_rst 14>, <&sys_rst 16>;
  750. vbus-supply = <&usb_vbus0>;
  751. nvmem-cell-names = "rterm", "sel_t", "hs_i";
  752. nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>,
  753. <&usb_hs_i0>;
  754. };
  755. usb_hsphy1: hs-phy@210 {
  756. compatible = "socionext,uniphier-ld20-usb3-hsphy";
  757. reg = <0x210 0x10>;
  758. #phy-cells = <0>;
  759. clock-names = "link", "phy";
  760. clocks = <&sys_clk 14>, <&sys_clk 16>;
  761. reset-names = "link", "phy";
  762. resets = <&sys_rst 14>, <&sys_rst 16>;
  763. vbus-supply = <&usb_vbus1>;
  764. nvmem-cell-names = "rterm", "sel_t", "hs_i";
  765. nvmem-cells = <&usb_rterm1>, <&usb_sel_t1>,
  766. <&usb_hs_i0>;
  767. };
  768. usb_hsphy2: hs-phy@220 {
  769. compatible = "socionext,uniphier-ld20-usb3-hsphy";
  770. reg = <0x220 0x10>;
  771. #phy-cells = <0>;
  772. clock-names = "link", "phy";
  773. clocks = <&sys_clk 14>, <&sys_clk 17>;
  774. reset-names = "link", "phy";
  775. resets = <&sys_rst 14>, <&sys_rst 17>;
  776. vbus-supply = <&usb_vbus2>;
  777. nvmem-cell-names = "rterm", "sel_t", "hs_i";
  778. nvmem-cells = <&usb_rterm2>, <&usb_sel_t2>,
  779. <&usb_hs_i2>;
  780. };
  781. usb_hsphy3: hs-phy@230 {
  782. compatible = "socionext,uniphier-ld20-usb3-hsphy";
  783. reg = <0x230 0x10>;
  784. #phy-cells = <0>;
  785. clock-names = "link", "phy";
  786. clocks = <&sys_clk 14>, <&sys_clk 17>;
  787. reset-names = "link", "phy";
  788. resets = <&sys_rst 14>, <&sys_rst 17>;
  789. vbus-supply = <&usb_vbus3>;
  790. nvmem-cell-names = "rterm", "sel_t", "hs_i";
  791. nvmem-cells = <&usb_rterm3>, <&usb_sel_t3>,
  792. <&usb_hs_i2>;
  793. };
  794. usb_ssphy0: ss-phy@300 {
  795. compatible = "socionext,uniphier-ld20-usb3-ssphy";
  796. reg = <0x300 0x10>;
  797. #phy-cells = <0>;
  798. clock-names = "link", "phy";
  799. clocks = <&sys_clk 14>, <&sys_clk 18>;
  800. reset-names = "link", "phy";
  801. resets = <&sys_rst 14>, <&sys_rst 18>;
  802. vbus-supply = <&usb_vbus0>;
  803. };
  804. usb_ssphy1: ss-phy@310 {
  805. compatible = "socionext,uniphier-ld20-usb3-ssphy";
  806. reg = <0x310 0x10>;
  807. #phy-cells = <0>;
  808. clock-names = "link", "phy";
  809. clocks = <&sys_clk 14>, <&sys_clk 19>;
  810. reset-names = "link", "phy";
  811. resets = <&sys_rst 14>, <&sys_rst 19>;
  812. vbus-supply = <&usb_vbus1>;
  813. };
  814. };
  815. pcie: pcie@66000000 {
  816. compatible = "socionext,uniphier-pcie";
  817. status = "disabled";
  818. reg-names = "dbi", "link", "config";
  819. reg = <0x66000000 0x1000>, <0x66010000 0x10000>,
  820. <0x2fff0000 0x10000>;
  821. #address-cells = <3>;
  822. #size-cells = <2>;
  823. clocks = <&sys_clk 24>;
  824. resets = <&sys_rst 24>;
  825. num-lanes = <1>;
  826. num-viewport = <1>;
  827. bus-range = <0x0 0xff>;
  828. device_type = "pci";
  829. ranges =
  830. /* downstream I/O */
  831. <0x81000000 0 0x00000000 0x2ffe0000 0 0x00010000>,
  832. /* non-prefetchable memory */
  833. <0x82000000 0 0x20000000 0x20000000 0 0x0ffe0000>;
  834. #interrupt-cells = <1>;
  835. interrupt-names = "dma", "msi";
  836. interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>,
  837. <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
  838. interrupt-map-mask = <0 0 0 7>;
  839. interrupt-map = <0 0 0 1 &pcie_intc 0>, /* INTA */
  840. <0 0 0 2 &pcie_intc 1>, /* INTB */
  841. <0 0 0 3 &pcie_intc 2>, /* INTC */
  842. <0 0 0 4 &pcie_intc 3>; /* INTD */
  843. phy-names = "pcie-phy";
  844. phys = <&pcie_phy>;
  845. pcie_intc: legacy-interrupt-controller {
  846. interrupt-controller;
  847. #interrupt-cells = <1>;
  848. interrupt-parent = <&gic>;
  849. interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>;
  850. };
  851. };
  852. pcie_phy: phy@66038000 {
  853. compatible = "socionext,uniphier-ld20-pcie-phy";
  854. reg = <0x66038000 0x4000>;
  855. #phy-cells = <0>;
  856. clock-names = "link";
  857. clocks = <&sys_clk 24>;
  858. reset-names = "link";
  859. resets = <&sys_rst 24>;
  860. socionext,syscon = <&soc_glue>;
  861. };
  862. nand: nand-controller@68000000 {
  863. compatible = "socionext,uniphier-denali-nand-v5b";
  864. status = "disabled";
  865. reg-names = "nand_data", "denali_reg";
  866. reg = <0x68000000 0x20>, <0x68100000 0x1000>;
  867. #address-cells = <1>;
  868. #size-cells = <0>;
  869. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
  870. pinctrl-names = "default";
  871. pinctrl-0 = <&pinctrl_nand>;
  872. clock-names = "nand", "nand_x", "ecc";
  873. clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
  874. reset-names = "nand", "reg";
  875. resets = <&sys_rst 2>, <&sys_rst 2>;
  876. };
  877. };
  878. };
  879. #include "uniphier-pinctrl.dtsi"
  880. &pinctrl_aout1 {
  881. drive-strength = <4>; /* default: 3.5mA */
  882. ao1dacck {
  883. pins = "AO1DACCK";
  884. drive-strength = <5>; /* 5mA */
  885. };
  886. };
  887. &pinctrl_aoutiec1 {
  888. drive-strength = <4>; /* default: 3.5mA */
  889. ao1arc {
  890. pins = "AO1ARC";
  891. drive-strength = <11>; /* 11mA */
  892. };
  893. };