zynqmp-zcu106-revA.dts 9.5 KB

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