zynqmp-zcu102-revA.dts 20 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * dts file for Xilinx ZynqMP ZCU102 RevA
  4. *
  5. * (C) Copyright 2015 - 2021, Xilinx, Inc.
  6. *
  7. * Michal Simek <[email protected]>
  8. */
  9. /dts-v1/;
  10. #include "zynqmp.dtsi"
  11. #include "zynqmp-clk-ccf.dtsi"
  12. #include <dt-bindings/input/input.h>
  13. #include <dt-bindings/gpio/gpio.h>
  14. #include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
  15. #include <dt-bindings/phy/phy.h>
  16. / {
  17. model = "ZynqMP ZCU102 RevA";
  18. compatible = "xlnx,zynqmp-zcu102-revA", "xlnx,zynqmp-zcu102", "xlnx,zynqmp";
  19. aliases {
  20. ethernet0 = &gem3;
  21. i2c0 = &i2c0;
  22. i2c1 = &i2c1;
  23. mmc0 = &sdhci1;
  24. nvmem0 = &eeprom;
  25. rtc0 = &rtc;
  26. serial0 = &uart0;
  27. serial1 = &uart1;
  28. serial2 = &dcc;
  29. spi0 = &qspi;
  30. usb0 = &usb0;
  31. };
  32. chosen {
  33. bootargs = "earlycon";
  34. stdout-path = "serial0:115200n8";
  35. };
  36. memory@0 {
  37. device_type = "memory";
  38. reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>;
  39. };
  40. gpio-keys {
  41. compatible = "gpio-keys";
  42. autorepeat;
  43. switch-19 {
  44. label = "sw19";
  45. gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
  46. linux,code = <KEY_DOWN>;
  47. wakeup-source;
  48. autorepeat;
  49. };
  50. };
  51. leds {
  52. compatible = "gpio-leds";
  53. heartbeat-led {
  54. label = "heartbeat";
  55. gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
  56. linux,default-trigger = "heartbeat";
  57. };
  58. };
  59. ina226-u76 {
  60. compatible = "iio-hwmon";
  61. io-channels = <&u76 0>, <&u76 1>, <&u76 2>, <&u76 3>;
  62. };
  63. ina226-u77 {
  64. compatible = "iio-hwmon";
  65. io-channels = <&u77 0>, <&u77 1>, <&u77 2>, <&u77 3>;
  66. };
  67. ina226-u78 {
  68. compatible = "iio-hwmon";
  69. io-channels = <&u78 0>, <&u78 1>, <&u78 2>, <&u78 3>;
  70. };
  71. ina226-u87 {
  72. compatible = "iio-hwmon";
  73. io-channels = <&u87 0>, <&u87 1>, <&u87 2>, <&u87 3>;
  74. };
  75. ina226-u85 {
  76. compatible = "iio-hwmon";
  77. io-channels = <&u85 0>, <&u85 1>, <&u85 2>, <&u85 3>;
  78. };
  79. ina226-u86 {
  80. compatible = "iio-hwmon";
  81. io-channels = <&u86 0>, <&u86 1>, <&u86 2>, <&u86 3>;
  82. };
  83. ina226-u93 {
  84. compatible = "iio-hwmon";
  85. io-channels = <&u93 0>, <&u93 1>, <&u93 2>, <&u93 3>;
  86. };
  87. ina226-u88 {
  88. compatible = "iio-hwmon";
  89. io-channels = <&u88 0>, <&u88 1>, <&u88 2>, <&u88 3>;
  90. };
  91. ina226-u15 {
  92. compatible = "iio-hwmon";
  93. io-channels = <&u15 0>, <&u15 1>, <&u15 2>, <&u15 3>;
  94. };
  95. ina226-u92 {
  96. compatible = "iio-hwmon";
  97. io-channels = <&u92 0>, <&u92 1>, <&u92 2>, <&u92 3>;
  98. };
  99. ina226-u79 {
  100. compatible = "iio-hwmon";
  101. io-channels = <&u79 0>, <&u79 1>, <&u79 2>, <&u79 3>;
  102. };
  103. ina226-u81 {
  104. compatible = "iio-hwmon";
  105. io-channels = <&u81 0>, <&u81 1>, <&u81 2>, <&u81 3>;
  106. };
  107. ina226-u80 {
  108. compatible = "iio-hwmon";
  109. io-channels = <&u80 0>, <&u80 1>, <&u80 2>, <&u80 3>;
  110. };
  111. ina226-u84 {
  112. compatible = "iio-hwmon";
  113. io-channels = <&u84 0>, <&u84 1>, <&u84 2>, <&u84 3>;
  114. };
  115. ina226-u16 {
  116. compatible = "iio-hwmon";
  117. io-channels = <&u16 0>, <&u16 1>, <&u16 2>, <&u16 3>;
  118. };
  119. ina226-u65 {
  120. compatible = "iio-hwmon";
  121. io-channels = <&u65 0>, <&u65 1>, <&u65 2>, <&u65 3>;
  122. };
  123. ina226-u74 {
  124. compatible = "iio-hwmon";
  125. io-channels = <&u74 0>, <&u74 1>, <&u74 2>, <&u74 3>;
  126. };
  127. ina226-u75 {
  128. compatible = "iio-hwmon";
  129. io-channels = <&u75 0>, <&u75 1>, <&u75 2>, <&u75 3>;
  130. };
  131. /* 48MHz reference crystal */
  132. ref48: ref48M {
  133. compatible = "fixed-clock";
  134. #clock-cells = <0>;
  135. clock-frequency = <48000000>;
  136. };
  137. refhdmi: refhdmi {
  138. compatible = "fixed-clock";
  139. #clock-cells = <0>;
  140. clock-frequency = <114285000>;
  141. };
  142. };
  143. &can1 {
  144. status = "okay";
  145. pinctrl-names = "default";
  146. pinctrl-0 = <&pinctrl_can1_default>;
  147. };
  148. &dcc {
  149. status = "okay";
  150. };
  151. &fpd_dma_chan1 {
  152. status = "okay";
  153. };
  154. &fpd_dma_chan2 {
  155. status = "okay";
  156. };
  157. &fpd_dma_chan3 {
  158. status = "okay";
  159. };
  160. &fpd_dma_chan4 {
  161. status = "okay";
  162. };
  163. &fpd_dma_chan5 {
  164. status = "okay";
  165. };
  166. &fpd_dma_chan6 {
  167. status = "okay";
  168. };
  169. &fpd_dma_chan7 {
  170. status = "okay";
  171. };
  172. &fpd_dma_chan8 {
  173. status = "okay";
  174. };
  175. &gem3 {
  176. status = "okay";
  177. phy-handle = <&phy0>;
  178. phy-mode = "rgmii-id";
  179. pinctrl-names = "default";
  180. pinctrl-0 = <&pinctrl_gem3_default>;
  181. phy0: ethernet-phy@21 {
  182. reg = <21>;
  183. ti,rx-internal-delay = <0x8>;
  184. ti,tx-internal-delay = <0xa>;
  185. ti,fifo-depth = <0x1>;
  186. ti,dp83867-rxctrl-strap-quirk;
  187. /* reset-gpios = <&tca6416_u97 6 GPIO_ACTIVE_LOW>; */
  188. };
  189. };
  190. &gpio {
  191. status = "okay";
  192. pinctrl-names = "default";
  193. pinctrl-0 = <&pinctrl_gpio_default>;
  194. };
  195. &i2c0 {
  196. status = "okay";
  197. clock-frequency = <400000>;
  198. pinctrl-names = "default", "gpio";
  199. pinctrl-0 = <&pinctrl_i2c0_default>;
  200. pinctrl-1 = <&pinctrl_i2c0_gpio>;
  201. scl-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
  202. sda-gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
  203. tca6416_u97: gpio@20 {
  204. compatible = "ti,tca6416";
  205. reg = <0x20>;
  206. gpio-controller; /* IRQ not connected */
  207. #gpio-cells = <2>;
  208. gpio-line-names = "PS_GTR_LAN_SEL0", "PS_GTR_LAN_SEL1", "PS_GTR_LAN_SEL2", "PS_GTR_LAN_SEL3",
  209. "PCI_CLK_DIR_SEL", "IIC_MUX_RESET_B", "GEM3_EXP_RESET_B",
  210. "", "", "", "", "", "", "", "", "";
  211. gtr-sel0-hog {
  212. gpio-hog;
  213. gpios = <0 0>;
  214. output-low; /* PCIE = 0, DP = 1 */
  215. line-name = "sel0";
  216. };
  217. gtr-sel1-hog {
  218. gpio-hog;
  219. gpios = <1 0>;
  220. output-high; /* PCIE = 0, DP = 1 */
  221. line-name = "sel1";
  222. };
  223. gtr-sel2-hog {
  224. gpio-hog;
  225. gpios = <2 0>;
  226. output-high; /* PCIE = 0, USB0 = 1 */
  227. line-name = "sel2";
  228. };
  229. gtr-sel3-hog {
  230. gpio-hog;
  231. gpios = <3 0>;
  232. output-high; /* PCIE = 0, SATA = 1 */
  233. line-name = "sel3";
  234. };
  235. };
  236. tca6416_u61: gpio@21 {
  237. compatible = "ti,tca6416";
  238. reg = <0x21>;
  239. gpio-controller; /* IRQ not connected */
  240. #gpio-cells = <2>;
  241. gpio-line-names = "VCCPSPLL_EN", "MGTRAVCC_EN", "MGTRAVTT_EN", "VCCPSDDRPLL_EN", "MIO26_PMU_INPUT_LS",
  242. "PL_PMBUS_ALERT", "PS_PMBUS_ALERT", "MAXIM_PMBUS_ALERT", "PL_DDR4_VTERM_EN",
  243. "PL_DDR4_VPP_2V5_EN", "PS_DIMM_VDDQ_TO_PSVCCO_ON", "PS_DIMM_SUSPEND_EN",
  244. "PS_DDR4_VTERM_EN", "PS_DDR4_VPP_2V5_EN", "", "";
  245. };
  246. i2c-mux@75 { /* u60 */
  247. compatible = "nxp,pca9544";
  248. #address-cells = <1>;
  249. #size-cells = <0>;
  250. reg = <0x75>;
  251. i2c@0 {
  252. #address-cells = <1>;
  253. #size-cells = <0>;
  254. reg = <0>;
  255. /* PS_PMBUS */
  256. u76: ina226@40 { /* u76 */
  257. compatible = "ti,ina226";
  258. #io-channel-cells = <1>;
  259. label = "ina226-u76";
  260. reg = <0x40>;
  261. shunt-resistor = <5000>;
  262. };
  263. u77: ina226@41 { /* u77 */
  264. compatible = "ti,ina226";
  265. #io-channel-cells = <1>;
  266. label = "ina226-u77";
  267. reg = <0x41>;
  268. shunt-resistor = <5000>;
  269. };
  270. u78: ina226@42 { /* u78 */
  271. compatible = "ti,ina226";
  272. #io-channel-cells = <1>;
  273. label = "ina226-u78";
  274. reg = <0x42>;
  275. shunt-resistor = <5000>;
  276. };
  277. u87: ina226@43 { /* u87 */
  278. compatible = "ti,ina226";
  279. #io-channel-cells = <1>;
  280. label = "ina226-u87";
  281. reg = <0x43>;
  282. shunt-resistor = <5000>;
  283. };
  284. u85: ina226@44 { /* u85 */
  285. compatible = "ti,ina226";
  286. #io-channel-cells = <1>;
  287. label = "ina226-u85";
  288. reg = <0x44>;
  289. shunt-resistor = <5000>;
  290. };
  291. u86: ina226@45 { /* u86 */
  292. compatible = "ti,ina226";
  293. #io-channel-cells = <1>;
  294. label = "ina226-u86";
  295. reg = <0x45>;
  296. shunt-resistor = <5000>;
  297. };
  298. u93: ina226@46 { /* u93 */
  299. compatible = "ti,ina226";
  300. #io-channel-cells = <1>;
  301. label = "ina226-u93";
  302. reg = <0x46>;
  303. shunt-resistor = <5000>;
  304. };
  305. u88: ina226@47 { /* u88 */
  306. compatible = "ti,ina226";
  307. #io-channel-cells = <1>;
  308. label = "ina226-u88";
  309. reg = <0x47>;
  310. shunt-resistor = <5000>;
  311. };
  312. u15: ina226@4a { /* u15 */
  313. compatible = "ti,ina226";
  314. #io-channel-cells = <1>;
  315. label = "ina226-u15";
  316. reg = <0x4a>;
  317. shunt-resistor = <5000>;
  318. };
  319. u92: ina226@4b { /* u92 */
  320. compatible = "ti,ina226";
  321. #io-channel-cells = <1>;
  322. label = "ina226-u92";
  323. reg = <0x4b>;
  324. shunt-resistor = <5000>;
  325. };
  326. };
  327. i2c@1 {
  328. #address-cells = <1>;
  329. #size-cells = <0>;
  330. reg = <1>;
  331. /* PL_PMBUS */
  332. u79: ina226@40 { /* u79 */
  333. compatible = "ti,ina226";
  334. #io-channel-cells = <1>;
  335. label = "ina226-u79";
  336. reg = <0x40>;
  337. shunt-resistor = <2000>;
  338. };
  339. u81: ina226@41 { /* u81 */
  340. compatible = "ti,ina226";
  341. #io-channel-cells = <1>;
  342. label = "ina226-u81";
  343. reg = <0x41>;
  344. shunt-resistor = <5000>;
  345. };
  346. u80: ina226@42 { /* u80 */
  347. compatible = "ti,ina226";
  348. #io-channel-cells = <1>;
  349. label = "ina226-u80";
  350. reg = <0x42>;
  351. shunt-resistor = <5000>;
  352. };
  353. u84: ina226@43 { /* u84 */
  354. compatible = "ti,ina226";
  355. #io-channel-cells = <1>;
  356. label = "ina226-u84";
  357. reg = <0x43>;
  358. shunt-resistor = <5000>;
  359. };
  360. u16: ina226@44 { /* u16 */
  361. compatible = "ti,ina226";
  362. #io-channel-cells = <1>;
  363. label = "ina226-u16";
  364. reg = <0x44>;
  365. shunt-resistor = <5000>;
  366. };
  367. u65: ina226@45 { /* u65 */
  368. compatible = "ti,ina226";
  369. #io-channel-cells = <1>;
  370. label = "ina226-u65";
  371. reg = <0x45>;
  372. shunt-resistor = <5000>;
  373. };
  374. u74: ina226@46 { /* u74 */
  375. compatible = "ti,ina226";
  376. #io-channel-cells = <1>;
  377. label = "ina226-u74";
  378. reg = <0x46>;
  379. shunt-resistor = <5000>;
  380. };
  381. u75: ina226@47 { /* u75 */
  382. compatible = "ti,ina226";
  383. #io-channel-cells = <1>;
  384. label = "ina226-u75";
  385. reg = <0x47>;
  386. shunt-resistor = <5000>;
  387. };
  388. };
  389. i2c@2 {
  390. #address-cells = <1>;
  391. #size-cells = <0>;
  392. reg = <2>;
  393. /* MAXIM_PMBUS - 00 */
  394. max15301@a { /* u46 */
  395. compatible = "maxim,max15301";
  396. reg = <0xa>;
  397. };
  398. max15303@b { /* u4 */
  399. compatible = "maxim,max15303";
  400. reg = <0xb>;
  401. };
  402. max15303@10 { /* u13 */
  403. compatible = "maxim,max15303";
  404. reg = <0x10>;
  405. };
  406. max15301@13 { /* u47 */
  407. compatible = "maxim,max15301";
  408. reg = <0x13>;
  409. };
  410. max15303@14 { /* u7 */
  411. compatible = "maxim,max15303";
  412. reg = <0x14>;
  413. };
  414. max15303@15 { /* u6 */
  415. compatible = "maxim,max15303";
  416. reg = <0x15>;
  417. };
  418. max15303@16 { /* u10 */
  419. compatible = "maxim,max15303";
  420. reg = <0x16>;
  421. };
  422. max15303@17 { /* u9 */
  423. compatible = "maxim,max15303";
  424. reg = <0x17>;
  425. };
  426. max15301@18 { /* u63 */
  427. compatible = "maxim,max15301";
  428. reg = <0x18>;
  429. };
  430. max15303@1a { /* u49 */
  431. compatible = "maxim,max15303";
  432. reg = <0x1a>;
  433. };
  434. max15303@1d { /* u18 */
  435. compatible = "maxim,max15303";
  436. reg = <0x1d>;
  437. };
  438. max15303@20 { /* u8 */
  439. compatible = "maxim,max15303";
  440. status = "disabled"; /* unreachable */
  441. reg = <0x20>;
  442. };
  443. max20751@72 { /* u95 */
  444. compatible = "maxim,max20751";
  445. reg = <0x72>;
  446. };
  447. max20751@73 { /* u96 */
  448. compatible = "maxim,max20751";
  449. reg = <0x73>;
  450. };
  451. };
  452. /* Bus 3 is not connected */
  453. };
  454. };
  455. &i2c1 {
  456. status = "okay";
  457. clock-frequency = <400000>;
  458. pinctrl-names = "default", "gpio";
  459. pinctrl-0 = <&pinctrl_i2c1_default>;
  460. pinctrl-1 = <&pinctrl_i2c1_gpio>;
  461. scl-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
  462. sda-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
  463. /* PL i2c via PCA9306 - u45 */
  464. i2c-mux@74 { /* u34 */
  465. compatible = "nxp,pca9548";
  466. #address-cells = <1>;
  467. #size-cells = <0>;
  468. reg = <0x74>;
  469. i2c@0 {
  470. #address-cells = <1>;
  471. #size-cells = <0>;
  472. reg = <0>;
  473. /*
  474. * IIC_EEPROM 1kB memory which uses 256B blocks
  475. * where every block has different address.
  476. * 0 - 256B address 0x54
  477. * 256B - 512B address 0x55
  478. * 512B - 768B address 0x56
  479. * 768B - 1024B address 0x57
  480. */
  481. eeprom: eeprom@54 { /* u23 */
  482. compatible = "atmel,24c08";
  483. reg = <0x54>;
  484. };
  485. };
  486. i2c@1 {
  487. #address-cells = <1>;
  488. #size-cells = <0>;
  489. reg = <1>;
  490. si5341: clock-generator@36 { /* SI5341 - u69 */
  491. compatible = "silabs,si5341";
  492. reg = <0x36>;
  493. #clock-cells = <2>;
  494. #address-cells = <1>;
  495. #size-cells = <0>;
  496. clocks = <&ref48>;
  497. clock-names = "xtal";
  498. clock-output-names = "si5341";
  499. si5341_0: out@0 {
  500. /* refclk0 for PS-GT, used for DP */
  501. reg = <0>;
  502. always-on;
  503. };
  504. si5341_2: out@2 {
  505. /* refclk2 for PS-GT, used for USB3 */
  506. reg = <2>;
  507. always-on;
  508. };
  509. si5341_3: out@3 {
  510. /* refclk3 for PS-GT, used for SATA */
  511. reg = <3>;
  512. always-on;
  513. };
  514. si5341_4: out@4 {
  515. /* refclk4 for PS-GT, used for PCIE slot */
  516. reg = <4>;
  517. always-on;
  518. };
  519. si5341_5: out@5 {
  520. /* refclk5 for PS-GT, used for PCIE */
  521. reg = <5>;
  522. always-on;
  523. };
  524. si5341_6: out@6 {
  525. /* refclk6 PL CLK125 */
  526. reg = <6>;
  527. always-on;
  528. };
  529. si5341_7: out@7 {
  530. /* refclk7 PL CLK74 */
  531. reg = <7>;
  532. always-on;
  533. };
  534. si5341_9: out@9 {
  535. /* refclk9 used for PS_REF_CLK 33.3 MHz */
  536. reg = <9>;
  537. always-on;
  538. };
  539. };
  540. };
  541. i2c@2 {
  542. #address-cells = <1>;
  543. #size-cells = <0>;
  544. reg = <2>;
  545. si570_1: clock-generator@5d { /* USER SI570 - u42 */
  546. #clock-cells = <0>;
  547. compatible = "silabs,si570";
  548. reg = <0x5d>;
  549. temperature-stability = <50>;
  550. factory-fout = <300000000>;
  551. clock-frequency = <300000000>;
  552. clock-output-names = "si570_user";
  553. };
  554. };
  555. i2c@3 {
  556. #address-cells = <1>;
  557. #size-cells = <0>;
  558. reg = <3>;
  559. si570_2: clock-generator@5d { /* USER MGT SI570 - u56 */
  560. #clock-cells = <0>;
  561. compatible = "silabs,si570";
  562. reg = <0x5d>;
  563. temperature-stability = <50>; /* copy from zc702 */
  564. factory-fout = <156250000>;
  565. clock-frequency = <148500000>;
  566. clock-output-names = "si570_mgt";
  567. };
  568. };
  569. i2c@4 {
  570. #address-cells = <1>;
  571. #size-cells = <0>;
  572. reg = <4>;
  573. /* SI5328 - u20 */
  574. };
  575. /* 5 - 7 unconnected */
  576. };
  577. i2c-mux@75 {
  578. compatible = "nxp,pca9548"; /* u135 */
  579. #address-cells = <1>;
  580. #size-cells = <0>;
  581. reg = <0x75>;
  582. i2c@0 {
  583. #address-cells = <1>;
  584. #size-cells = <0>;
  585. reg = <0>;
  586. /* HPC0_IIC */
  587. };
  588. i2c@1 {
  589. #address-cells = <1>;
  590. #size-cells = <0>;
  591. reg = <1>;
  592. /* HPC1_IIC */
  593. };
  594. i2c@2 {
  595. #address-cells = <1>;
  596. #size-cells = <0>;
  597. reg = <2>;
  598. /* SYSMON */
  599. };
  600. i2c@3 {
  601. #address-cells = <1>;
  602. #size-cells = <0>;
  603. reg = <3>;
  604. /* DDR4 SODIMM */
  605. };
  606. i2c@4 {
  607. #address-cells = <1>;
  608. #size-cells = <0>;
  609. reg = <4>;
  610. /* SEP 3 */
  611. };
  612. i2c@5 {
  613. #address-cells = <1>;
  614. #size-cells = <0>;
  615. reg = <5>;
  616. /* SEP 2 */
  617. };
  618. i2c@6 {
  619. #address-cells = <1>;
  620. #size-cells = <0>;
  621. reg = <6>;
  622. /* SEP 1 */
  623. };
  624. i2c@7 {
  625. #address-cells = <1>;
  626. #size-cells = <0>;
  627. reg = <7>;
  628. /* SEP 0 */
  629. };
  630. };
  631. };
  632. &pinctrl0 {
  633. status = "okay";
  634. pinctrl_i2c0_default: i2c0-default {
  635. mux {
  636. groups = "i2c0_3_grp";
  637. function = "i2c0";
  638. };
  639. conf {
  640. groups = "i2c0_3_grp";
  641. bias-pull-up;
  642. slew-rate = <SLEW_RATE_SLOW>;
  643. power-source = <IO_STANDARD_LVCMOS18>;
  644. };
  645. };
  646. pinctrl_i2c0_gpio: i2c0-gpio {
  647. mux {
  648. groups = "gpio0_14_grp", "gpio0_15_grp";
  649. function = "gpio0";
  650. };
  651. conf {
  652. groups = "gpio0_14_grp", "gpio0_15_grp";
  653. slew-rate = <SLEW_RATE_SLOW>;
  654. power-source = <IO_STANDARD_LVCMOS18>;
  655. };
  656. };
  657. pinctrl_i2c1_default: i2c1-default {
  658. mux {
  659. groups = "i2c1_4_grp";
  660. function = "i2c1";
  661. };
  662. conf {
  663. groups = "i2c1_4_grp";
  664. bias-pull-up;
  665. slew-rate = <SLEW_RATE_SLOW>;
  666. power-source = <IO_STANDARD_LVCMOS18>;
  667. };
  668. };
  669. pinctrl_i2c1_gpio: i2c1-gpio {
  670. mux {
  671. groups = "gpio0_16_grp", "gpio0_17_grp";
  672. function = "gpio0";
  673. };
  674. conf {
  675. groups = "gpio0_16_grp", "gpio0_17_grp";
  676. slew-rate = <SLEW_RATE_SLOW>;
  677. power-source = <IO_STANDARD_LVCMOS18>;
  678. };
  679. };
  680. pinctrl_uart0_default: uart0-default {
  681. mux {
  682. groups = "uart0_4_grp";
  683. function = "uart0";
  684. };
  685. conf {
  686. groups = "uart0_4_grp";
  687. slew-rate = <SLEW_RATE_SLOW>;
  688. power-source = <IO_STANDARD_LVCMOS18>;
  689. };
  690. conf-rx {
  691. pins = "MIO18";
  692. bias-high-impedance;
  693. };
  694. conf-tx {
  695. pins = "MIO19";
  696. bias-disable;
  697. };
  698. };
  699. pinctrl_uart1_default: uart1-default {
  700. mux {
  701. groups = "uart1_5_grp";
  702. function = "uart1";
  703. };
  704. conf {
  705. groups = "uart1_5_grp";
  706. slew-rate = <SLEW_RATE_SLOW>;
  707. power-source = <IO_STANDARD_LVCMOS18>;
  708. };
  709. conf-rx {
  710. pins = "MIO21";
  711. bias-high-impedance;
  712. };
  713. conf-tx {
  714. pins = "MIO20";
  715. bias-disable;
  716. };
  717. };
  718. pinctrl_usb0_default: usb0-default {
  719. mux {
  720. groups = "usb0_0_grp";
  721. function = "usb0";
  722. };
  723. conf {
  724. groups = "usb0_0_grp";
  725. slew-rate = <SLEW_RATE_SLOW>;
  726. power-source = <IO_STANDARD_LVCMOS18>;
  727. };
  728. conf-rx {
  729. pins = "MIO52", "MIO53", "MIO55";
  730. bias-high-impedance;
  731. };
  732. conf-tx {
  733. pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
  734. "MIO60", "MIO61", "MIO62", "MIO63";
  735. bias-disable;
  736. };
  737. };
  738. pinctrl_gem3_default: gem3-default {
  739. mux {
  740. function = "ethernet3";
  741. groups = "ethernet3_0_grp";
  742. };
  743. conf {
  744. groups = "ethernet3_0_grp";
  745. slew-rate = <SLEW_RATE_SLOW>;
  746. power-source = <IO_STANDARD_LVCMOS18>;
  747. };
  748. conf-rx {
  749. pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
  750. "MIO75";
  751. bias-high-impedance;
  752. low-power-disable;
  753. };
  754. conf-tx {
  755. pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
  756. "MIO69";
  757. bias-disable;
  758. low-power-enable;
  759. };
  760. mux-mdio {
  761. function = "mdio3";
  762. groups = "mdio3_0_grp";
  763. };
  764. conf-mdio {
  765. groups = "mdio3_0_grp";
  766. slew-rate = <SLEW_RATE_SLOW>;
  767. power-source = <IO_STANDARD_LVCMOS18>;
  768. bias-disable;
  769. };
  770. };
  771. pinctrl_can1_default: can1-default {
  772. mux {
  773. function = "can1";
  774. groups = "can1_6_grp";
  775. };
  776. conf {
  777. groups = "can1_6_grp";
  778. slew-rate = <SLEW_RATE_SLOW>;
  779. power-source = <IO_STANDARD_LVCMOS18>;
  780. };
  781. conf-rx {
  782. pins = "MIO25";
  783. bias-high-impedance;
  784. };
  785. conf-tx {
  786. pins = "MIO24";
  787. bias-disable;
  788. };
  789. };
  790. pinctrl_sdhci1_default: sdhci1-default {
  791. mux {
  792. groups = "sdio1_0_grp";
  793. function = "sdio1";
  794. };
  795. conf {
  796. groups = "sdio1_0_grp";
  797. slew-rate = <SLEW_RATE_SLOW>;
  798. power-source = <IO_STANDARD_LVCMOS18>;
  799. bias-disable;
  800. };
  801. mux-cd {
  802. groups = "sdio1_cd_0_grp";
  803. function = "sdio1_cd";
  804. };
  805. conf-cd {
  806. groups = "sdio1_cd_0_grp";
  807. bias-high-impedance;
  808. bias-pull-up;
  809. slew-rate = <SLEW_RATE_SLOW>;
  810. power-source = <IO_STANDARD_LVCMOS18>;
  811. };
  812. mux-wp {
  813. groups = "sdio1_wp_0_grp";
  814. function = "sdio1_wp";
  815. };
  816. conf-wp {
  817. groups = "sdio1_wp_0_grp";
  818. bias-high-impedance;
  819. bias-pull-up;
  820. slew-rate = <SLEW_RATE_SLOW>;
  821. power-source = <IO_STANDARD_LVCMOS18>;
  822. };
  823. };
  824. pinctrl_gpio_default: gpio-default {
  825. mux-sw {
  826. function = "gpio0";
  827. groups = "gpio0_22_grp", "gpio0_23_grp";
  828. };
  829. conf-sw {
  830. groups = "gpio0_22_grp", "gpio0_23_grp";
  831. slew-rate = <SLEW_RATE_SLOW>;
  832. power-source = <IO_STANDARD_LVCMOS18>;
  833. };
  834. mux-msp {
  835. function = "gpio0";
  836. groups = "gpio0_13_grp", "gpio0_38_grp";
  837. };
  838. conf-msp {
  839. groups = "gpio0_13_grp", "gpio0_38_grp";
  840. slew-rate = <SLEW_RATE_SLOW>;
  841. power-source = <IO_STANDARD_LVCMOS18>;
  842. };
  843. conf-pull-up {
  844. pins = "MIO22", "MIO23";
  845. bias-pull-up;
  846. };
  847. conf-pull-none {
  848. pins = "MIO13", "MIO38";
  849. bias-disable;
  850. };
  851. };
  852. };
  853. &pcie {
  854. status = "okay";
  855. };
  856. &psgtr {
  857. status = "okay";
  858. /* pcie, sata, usb3, dp */
  859. clocks = <&si5341 0 5>, <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
  860. clock-names = "ref0", "ref1", "ref2", "ref3";
  861. };
  862. &qspi {
  863. status = "okay";
  864. flash@0 {
  865. compatible = "m25p80", "jedec,spi-nor"; /* 16MB + 16MB */
  866. #address-cells = <1>;
  867. #size-cells = <1>;
  868. reg = <0x0>;
  869. spi-tx-bus-width = <1>;
  870. spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
  871. spi-max-frequency = <108000000>; /* Based on DC1 spec */
  872. };
  873. };
  874. &rtc {
  875. status = "okay";
  876. };
  877. &sata {
  878. status = "okay";
  879. /* SATA OOB timing settings */
  880. ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
  881. ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
  882. ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
  883. ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
  884. ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
  885. ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
  886. ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
  887. ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
  888. phy-names = "sata-phy";
  889. phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
  890. };
  891. /* SD1 with level shifter */
  892. &sdhci1 {
  893. status = "okay";
  894. /*
  895. * 1.0 revision has level shifter and this property should be
  896. * removed for supporting UHS mode
  897. */
  898. no-1-8-v;
  899. pinctrl-names = "default";
  900. pinctrl-0 = <&pinctrl_sdhci1_default>;
  901. xlnx,mio-bank = <1>;
  902. };
  903. &uart0 {
  904. status = "okay";
  905. pinctrl-names = "default";
  906. pinctrl-0 = <&pinctrl_uart0_default>;
  907. };
  908. &uart1 {
  909. status = "okay";
  910. pinctrl-names = "default";
  911. pinctrl-0 = <&pinctrl_uart1_default>;
  912. };
  913. /* ULPI SMSC USB3320 */
  914. &usb0 {
  915. status = "okay";
  916. pinctrl-names = "default";
  917. pinctrl-0 = <&pinctrl_usb0_default>;
  918. phy-names = "usb3-phy";
  919. phys = <&psgtr 2 PHY_TYPE_USB3 0 2>;
  920. };
  921. &dwc3_0 {
  922. status = "okay";
  923. dr_mode = "host";
  924. snps,usb3_lpm_capable;
  925. maximum-speed = "super-speed";
  926. };
  927. &watchdog0 {
  928. status = "okay";
  929. };
  930. &zynqmp_dpdma {
  931. status = "okay";
  932. };
  933. &zynqmp_dpsub {
  934. status = "okay";
  935. phy-names = "dp-phy0";
  936. phys = <&psgtr 1 PHY_TYPE_DP 0 3>;
  937. };