zynqmp-zcu102-revA.dts 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * dts file for Xilinx ZynqMP ZCU102 RevA
  4. *
  5. * (C) Copyright 2015 - 2018, Xilinx, Inc.
  6. *
  7. * Michal Simek <michal.simek@xilinx.com>
  8. */
  9. /dts-v1/;
  10. #include "zynqmp.dtsi"
  11. #include "zynqmp-clk.dtsi"
  12. #include <dt-bindings/input/input.h>
  13. #include <dt-bindings/gpio/gpio.h>
  14. / {
  15. model = "ZynqMP ZCU102 RevA";
  16. compatible = "xlnx,zynqmp-zcu102-revA", "xlnx,zynqmp-zcu102", "xlnx,zynqmp";
  17. aliases {
  18. ethernet0 = &gem3;
  19. i2c0 = &i2c0;
  20. i2c1 = &i2c1;
  21. mmc0 = &sdhci1;
  22. rtc0 = &rtc;
  23. serial0 = &uart0;
  24. serial1 = &uart1;
  25. serial2 = &dcc;
  26. };
  27. chosen {
  28. bootargs = "earlycon";
  29. stdout-path = "serial0:115200n8";
  30. };
  31. memory@0 {
  32. device_type = "memory";
  33. reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>;
  34. };
  35. gpio-keys {
  36. compatible = "gpio-keys";
  37. autorepeat;
  38. sw19 {
  39. label = "sw19";
  40. gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
  41. linux,code = <KEY_DOWN>;
  42. gpio-key,wakeup;
  43. autorepeat;
  44. };
  45. };
  46. leds {
  47. compatible = "gpio-leds";
  48. heartbeat_led {
  49. label = "heartbeat";
  50. gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
  51. linux,default-trigger = "heartbeat";
  52. };
  53. };
  54. };
  55. &can1 {
  56. status = "okay";
  57. };
  58. &dcc {
  59. status = "okay";
  60. };
  61. &fpd_dma_chan1 {
  62. status = "okay";
  63. };
  64. &fpd_dma_chan2 {
  65. status = "okay";
  66. };
  67. &fpd_dma_chan3 {
  68. status = "okay";
  69. };
  70. &fpd_dma_chan4 {
  71. status = "okay";
  72. };
  73. &fpd_dma_chan5 {
  74. status = "okay";
  75. };
  76. &fpd_dma_chan6 {
  77. status = "okay";
  78. };
  79. &fpd_dma_chan7 {
  80. status = "okay";
  81. };
  82. &fpd_dma_chan8 {
  83. status = "okay";
  84. };
  85. &gem3 {
  86. status = "okay";
  87. phy-handle = <&phy0>;
  88. phy-mode = "rgmii-id";
  89. phy0: phy@21 {
  90. reg = <21>;
  91. ti,rx-internal-delay = <0x8>;
  92. ti,tx-internal-delay = <0xa>;
  93. ti,fifo-depth = <0x1>;
  94. };
  95. };
  96. &gpio {
  97. status = "okay";
  98. };
  99. &i2c0 {
  100. status = "okay";
  101. clock-frequency = <400000>;
  102. tca6416_u97: gpio@20 {
  103. compatible = "ti,tca6416";
  104. reg = <0x20>;
  105. gpio-controller;
  106. #gpio-cells = <2>;
  107. /*
  108. * IRQ not connected
  109. * Lines:
  110. * 0 - PS_GTR_LAN_SEL0
  111. * 1 - PS_GTR_LAN_SEL1
  112. * 2 - PS_GTR_LAN_SEL2
  113. * 3 - PS_GTR_LAN_SEL3
  114. * 4 - PCI_CLK_DIR_SEL
  115. * 5 - IIC_MUX_RESET_B
  116. * 6 - GEM3_EXP_RESET_B
  117. * 7, 10 - 17 - not connected
  118. */
  119. gtr_sel0 {
  120. gpio-hog;
  121. gpios = <0 0>;
  122. output-low; /* PCIE = 0, DP = 1 */
  123. line-name = "sel0";
  124. };
  125. gtr_sel1 {
  126. gpio-hog;
  127. gpios = <1 0>;
  128. output-high; /* PCIE = 0, DP = 1 */
  129. line-name = "sel1";
  130. };
  131. gtr_sel2 {
  132. gpio-hog;
  133. gpios = <2 0>;
  134. output-high; /* PCIE = 0, USB0 = 1 */
  135. line-name = "sel2";
  136. };
  137. gtr_sel3 {
  138. gpio-hog;
  139. gpios = <3 0>;
  140. output-high; /* PCIE = 0, SATA = 1 */
  141. line-name = "sel3";
  142. };
  143. };
  144. tca6416_u61: gpio@21 {
  145. compatible = "ti,tca6416";
  146. reg = <0x21>;
  147. gpio-controller;
  148. #gpio-cells = <2>;
  149. /*
  150. * IRQ not connected
  151. * Lines:
  152. * 0 - VCCPSPLL_EN
  153. * 1 - MGTRAVCC_EN
  154. * 2 - MGTRAVTT_EN
  155. * 3 - VCCPSDDRPLL_EN
  156. * 4 - MIO26_PMU_INPUT_LS
  157. * 5 - PL_PMBUS_ALERT
  158. * 6 - PS_PMBUS_ALERT
  159. * 7 - MAXIM_PMBUS_ALERT
  160. * 10 - PL_DDR4_VTERM_EN
  161. * 11 - PL_DDR4_VPP_2V5_EN
  162. * 12 - PS_DIMM_VDDQ_TO_PSVCCO_ON
  163. * 13 - PS_DIMM_SUSPEND_EN
  164. * 14 - PS_DDR4_VTERM_EN
  165. * 15 - PS_DDR4_VPP_2V5_EN
  166. * 16 - 17 - not connected
  167. */
  168. };
  169. i2c-mux@75 { /* u60 */
  170. compatible = "nxp,pca9544";
  171. #address-cells = <1>;
  172. #size-cells = <0>;
  173. reg = <0x75>;
  174. i2c@0 {
  175. #address-cells = <1>;
  176. #size-cells = <0>;
  177. reg = <0>;
  178. /* PS_PMBUS */
  179. ina226@40 { /* u76 */
  180. compatible = "ti,ina226";
  181. reg = <0x40>;
  182. shunt-resistor = <5000>;
  183. };
  184. ina226@41 { /* u77 */
  185. compatible = "ti,ina226";
  186. reg = <0x41>;
  187. shunt-resistor = <5000>;
  188. };
  189. ina226@42 { /* u78 */
  190. compatible = "ti,ina226";
  191. reg = <0x42>;
  192. shunt-resistor = <5000>;
  193. };
  194. ina226@43 { /* u87 */
  195. compatible = "ti,ina226";
  196. reg = <0x43>;
  197. shunt-resistor = <5000>;
  198. };
  199. ina226@44 { /* u85 */
  200. compatible = "ti,ina226";
  201. reg = <0x44>;
  202. shunt-resistor = <5000>;
  203. };
  204. ina226@45 { /* u86 */
  205. compatible = "ti,ina226";
  206. reg = <0x45>;
  207. shunt-resistor = <5000>;
  208. };
  209. ina226@46 { /* u93 */
  210. compatible = "ti,ina226";
  211. reg = <0x46>;
  212. shunt-resistor = <5000>;
  213. };
  214. ina226@47 { /* u88 */
  215. compatible = "ti,ina226";
  216. reg = <0x47>;
  217. shunt-resistor = <5000>;
  218. };
  219. ina226@4a { /* u15 */
  220. compatible = "ti,ina226";
  221. reg = <0x4a>;
  222. shunt-resistor = <5000>;
  223. };
  224. ina226@4b { /* u92 */
  225. compatible = "ti,ina226";
  226. reg = <0x4b>;
  227. shunt-resistor = <5000>;
  228. };
  229. };
  230. i2c@1 {
  231. #address-cells = <1>;
  232. #size-cells = <0>;
  233. reg = <1>;
  234. /* PL_PMBUS */
  235. ina226@40 { /* u79 */
  236. compatible = "ti,ina226";
  237. reg = <0x40>;
  238. shunt-resistor = <2000>;
  239. };
  240. ina226@41 { /* u81 */
  241. compatible = "ti,ina226";
  242. reg = <0x41>;
  243. shunt-resistor = <5000>;
  244. };
  245. ina226@42 { /* u80 */
  246. compatible = "ti,ina226";
  247. reg = <0x42>;
  248. shunt-resistor = <5000>;
  249. };
  250. ina226@43 { /* u84 */
  251. compatible = "ti,ina226";
  252. reg = <0x43>;
  253. shunt-resistor = <5000>;
  254. };
  255. ina226@44 { /* u16 */
  256. compatible = "ti,ina226";
  257. reg = <0x44>;
  258. shunt-resistor = <5000>;
  259. };
  260. ina226@45 { /* u65 */
  261. compatible = "ti,ina226";
  262. reg = <0x45>;
  263. shunt-resistor = <5000>;
  264. };
  265. ina226@46 { /* u74 */
  266. compatible = "ti,ina226";
  267. reg = <0x46>;
  268. shunt-resistor = <5000>;
  269. };
  270. ina226@47 { /* u75 */
  271. compatible = "ti,ina226";
  272. reg = <0x47>;
  273. shunt-resistor = <5000>;
  274. };
  275. };
  276. i2c@2 {
  277. #address-cells = <1>;
  278. #size-cells = <0>;
  279. reg = <2>;
  280. /* MAXIM_PMBUS - 00 */
  281. max15301@a { /* u46 */
  282. compatible = "maxim,max15301";
  283. reg = <0xa>;
  284. };
  285. max15303@b { /* u4 */
  286. compatible = "maxim,max15303";
  287. reg = <0xb>;
  288. };
  289. max15303@10 { /* u13 */
  290. compatible = "maxim,max15303";
  291. reg = <0x10>;
  292. };
  293. max15301@13 { /* u47 */
  294. compatible = "maxim,max15301";
  295. reg = <0x13>;
  296. };
  297. max15303@14 { /* u7 */
  298. compatible = "maxim,max15303";
  299. reg = <0x14>;
  300. };
  301. max15303@15 { /* u6 */
  302. compatible = "maxim,max15303";
  303. reg = <0x15>;
  304. };
  305. max15303@16 { /* u10 */
  306. compatible = "maxim,max15303";
  307. reg = <0x16>;
  308. };
  309. max15303@17 { /* u9 */
  310. compatible = "maxim,max15303";
  311. reg = <0x17>;
  312. };
  313. max15301@18 { /* u63 */
  314. compatible = "maxim,max15301";
  315. reg = <0x18>;
  316. };
  317. max15303@1a { /* u49 */
  318. compatible = "maxim,max15303";
  319. reg = <0x1a>;
  320. };
  321. max15303@1d { /* u18 */
  322. compatible = "maxim,max15303";
  323. reg = <0x1d>;
  324. };
  325. max15303@20 { /* u8 */
  326. compatible = "maxim,max15303";
  327. status = "disabled"; /* unreachable */
  328. reg = <0x20>;
  329. };
  330. max20751@72 { /* u95 */
  331. compatible = "maxim,max20751";
  332. reg = <0x72>;
  333. };
  334. max20751@73 { /* u96 */
  335. compatible = "maxim,max20751";
  336. reg = <0x73>;
  337. };
  338. };
  339. /* Bus 3 is not connected */
  340. };
  341. };
  342. &i2c1 {
  343. status = "okay";
  344. clock-frequency = <400000>;
  345. /* PL i2c via PCA9306 - u45 */
  346. i2c-mux@74 { /* u34 */
  347. compatible = "nxp,pca9548";
  348. #address-cells = <1>;
  349. #size-cells = <0>;
  350. reg = <0x74>;
  351. i2c@0 {
  352. #address-cells = <1>;
  353. #size-cells = <0>;
  354. reg = <0>;
  355. /*
  356. * IIC_EEPROM 1kB memory which uses 256B blocks
  357. * where every block has different address.
  358. * 0 - 256B address 0x54
  359. * 256B - 512B address 0x55
  360. * 512B - 768B address 0x56
  361. * 768B - 1024B address 0x57
  362. */
  363. eeprom: eeprom@54 { /* u23 */
  364. compatible = "atmel,24c08";
  365. reg = <0x54>;
  366. };
  367. };
  368. i2c@1 {
  369. #address-cells = <1>;
  370. #size-cells = <0>;
  371. reg = <1>;
  372. si5341: clock-generator@36 { /* SI5341 - u69 */
  373. reg = <0x36>;
  374. };
  375. };
  376. i2c@2 {
  377. #address-cells = <1>;
  378. #size-cells = <0>;
  379. reg = <2>;
  380. si570_1: clock-generator@5d { /* USER SI570 - u42 */
  381. #clock-cells = <0>;
  382. compatible = "silabs,si570";
  383. reg = <0x5d>;
  384. temperature-stability = <50>;
  385. factory-fout = <300000000>;
  386. clock-frequency = <300000000>;
  387. };
  388. };
  389. i2c@3 {
  390. #address-cells = <1>;
  391. #size-cells = <0>;
  392. reg = <3>;
  393. si570_2: clock-generator@5d { /* USER MGT SI570 - u56 */
  394. #clock-cells = <0>;
  395. compatible = "silabs,si570";
  396. reg = <0x5d>;
  397. temperature-stability = <50>; /* copy from zc702 */
  398. factory-fout = <156250000>;
  399. clock-frequency = <148500000>;
  400. };
  401. };
  402. i2c@4 {
  403. #address-cells = <1>;
  404. #size-cells = <0>;
  405. reg = <4>;
  406. si5328: clock-generator@69 {/* SI5328 - u20 */
  407. reg = <0x69>;
  408. /*
  409. * Chip has interrupt present connected to PL
  410. * interrupt-parent = <&>;
  411. * interrupts = <>;
  412. */
  413. };
  414. };
  415. /* 5 - 7 unconnected */
  416. };
  417. i2c-mux@75 {
  418. compatible = "nxp,pca9548"; /* u135 */
  419. #address-cells = <1>;
  420. #size-cells = <0>;
  421. reg = <0x75>;
  422. i2c@0 {
  423. #address-cells = <1>;
  424. #size-cells = <0>;
  425. reg = <0>;
  426. /* HPC0_IIC */
  427. };
  428. i2c@1 {
  429. #address-cells = <1>;
  430. #size-cells = <0>;
  431. reg = <1>;
  432. /* HPC1_IIC */
  433. };
  434. i2c@2 {
  435. #address-cells = <1>;
  436. #size-cells = <0>;
  437. reg = <2>;
  438. /* SYSMON */
  439. };
  440. i2c@3 {
  441. #address-cells = <1>;
  442. #size-cells = <0>;
  443. reg = <3>;
  444. /* DDR4 SODIMM */
  445. };
  446. i2c@4 {
  447. #address-cells = <1>;
  448. #size-cells = <0>;
  449. reg = <4>;
  450. /* SEP 3 */
  451. };
  452. i2c@5 {
  453. #address-cells = <1>;
  454. #size-cells = <0>;
  455. reg = <5>;
  456. /* SEP 2 */
  457. };
  458. i2c@6 {
  459. #address-cells = <1>;
  460. #size-cells = <0>;
  461. reg = <6>;
  462. /* SEP 1 */
  463. };
  464. i2c@7 {
  465. #address-cells = <1>;
  466. #size-cells = <0>;
  467. reg = <7>;
  468. /* SEP 0 */
  469. };
  470. };
  471. };
  472. &pcie {
  473. status = "okay";
  474. };
  475. &rtc {
  476. status = "okay";
  477. };
  478. &sata {
  479. status = "okay";
  480. /* SATA OOB timing settings */
  481. ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
  482. ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
  483. ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
  484. ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
  485. ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
  486. ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
  487. ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
  488. ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
  489. };
  490. /* SD1 with level shifter */
  491. &sdhci1 {
  492. status = "okay";
  493. no-1-8-v;
  494. };
  495. &uart0 {
  496. status = "okay";
  497. };
  498. &uart1 {
  499. status = "okay";
  500. };
  501. /* ULPI SMSC USB3320 */
  502. &usb0 {
  503. status = "okay";
  504. };
  505. &watchdog0 {
  506. status = "okay";
  507. };