rk3399-ficus.dts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2018 Collabora Ltd.
  4. * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd.
  5. *
  6. * Schematics available at https://dl.vamrs.com/products/ficus/docs/hw
  7. */
  8. /dts-v1/;
  9. #include "rk3399.dtsi"
  10. #include "rk3399-opp.dtsi"
  11. / {
  12. model = "96boards RK3399 Ficus";
  13. compatible = "vamrs,ficus", "rockchip,rk3399";
  14. chosen {
  15. stdout-path = "serial2:1500000n8";
  16. };
  17. clkin_gmac: external-gmac-clock {
  18. compatible = "fixed-clock";
  19. clock-frequency = <125000000>;
  20. clock-output-names = "clkin_gmac";
  21. #clock-cells = <0>;
  22. };
  23. vcc1v8_s0: vcc1v8-s0 {
  24. compatible = "regulator-fixed";
  25. regulator-name = "vcc1v8_s0";
  26. regulator-min-microvolt = <1800000>;
  27. regulator-max-microvolt = <1800000>;
  28. regulator-always-on;
  29. };
  30. vcc_sys: vcc-sys {
  31. compatible = "regulator-fixed";
  32. regulator-name = "vcc_sys";
  33. regulator-min-microvolt = <5000000>;
  34. regulator-max-microvolt = <5000000>;
  35. regulator-always-on;
  36. };
  37. vcc3v3_sys: vcc3v3-sys {
  38. compatible = "regulator-fixed";
  39. regulator-name = "vcc3v3_sys";
  40. regulator-min-microvolt = <3300000>;
  41. regulator-max-microvolt = <3300000>;
  42. regulator-always-on;
  43. vin-supply = <&vcc_sys>;
  44. };
  45. vcc3v3_pcie: vcc3v3-pcie-regulator {
  46. compatible = "regulator-fixed";
  47. enable-active-high;
  48. gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>;
  49. pinctrl-names = "default";
  50. pinctrl-0 = <&pcie_drv>;
  51. regulator-boot-on;
  52. regulator-name = "vcc3v3_pcie";
  53. regulator-min-microvolt = <3300000>;
  54. regulator-max-microvolt = <3300000>;
  55. vin-supply = <&vcc3v3_sys>;
  56. };
  57. vcc5v0_host: vcc5v0-host-regulator {
  58. compatible = "regulator-fixed";
  59. enable-active-high;
  60. gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
  61. pinctrl-names = "default";
  62. pinctrl-0 = <&host_vbus_drv>;
  63. regulator-name = "vcc5v0_host";
  64. regulator-min-microvolt = <5000000>;
  65. regulator-max-microvolt = <5000000>;
  66. regulator-always-on;
  67. vin-supply = <&vcc_sys>;
  68. };
  69. };
  70. &cpu_l0 {
  71. cpu-supply = <&vdd_cpu_l>;
  72. };
  73. &cpu_l1 {
  74. cpu-supply = <&vdd_cpu_l>;
  75. };
  76. &cpu_l2 {
  77. cpu-supply = <&vdd_cpu_l>;
  78. };
  79. &cpu_l3 {
  80. cpu-supply = <&vdd_cpu_l>;
  81. };
  82. &cpu_b0 {
  83. cpu-supply = <&vdd_cpu_b>;
  84. };
  85. &cpu_b1 {
  86. cpu-supply = <&vdd_cpu_b>;
  87. };
  88. &emmc_phy {
  89. status = "okay";
  90. };
  91. &gmac {
  92. assigned-clocks = <&cru SCLK_RMII_SRC>;
  93. assigned-clock-parents = <&clkin_gmac>;
  94. clock_in_out = "input";
  95. phy-supply = <&vcc3v3_sys>;
  96. phy-mode = "rgmii";
  97. pinctrl-names = "default";
  98. pinctrl-0 = <&rgmii_pins>;
  99. snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
  100. snps,reset-active-low;
  101. snps,reset-delays-us = <0 10000 50000>;
  102. tx_delay = <0x28>;
  103. rx_delay = <0x11>;
  104. status = "okay";
  105. };
  106. &hdmi {
  107. ddc-i2c-bus = <&i2c3>;
  108. pinctrl-names = "default";
  109. pinctrl-0 = <&hdmi_cec>;
  110. status = "okay";
  111. };
  112. &i2c0 {
  113. clock-frequency = <400000>;
  114. i2c-scl-rising-time-ns = <168>;
  115. i2c-scl-falling-time-ns = <4>;
  116. status = "okay";
  117. vdd_cpu_b: regulator@40 {
  118. compatible = "silergy,syr827";
  119. reg = <0x40>;
  120. fcs,suspend-voltage-selector = <1>;
  121. regulator-name = "vdd_cpu_b";
  122. regulator-min-microvolt = <712500>;
  123. regulator-max-microvolt = <1500000>;
  124. regulator-ramp-delay = <1000>;
  125. regulator-always-on;
  126. regulator-boot-on;
  127. vin-supply = <&vcc_sys>;
  128. status = "okay";
  129. regulator-state-mem {
  130. regulator-off-in-suspend;
  131. };
  132. };
  133. vdd_gpu: regulator@41 {
  134. compatible = "silergy,syr828";
  135. reg = <0x41>;
  136. fcs,suspend-voltage-selector = <1>;
  137. regulator-name = "vdd_gpu";
  138. regulator-min-microvolt = <712500>;
  139. regulator-max-microvolt = <1500000>;
  140. regulator-ramp-delay = <1000>;
  141. regulator-always-on;
  142. regulator-boot-on;
  143. vin-supply = <&vcc_sys>;
  144. regulator-state-mem {
  145. regulator-off-in-suspend;
  146. };
  147. };
  148. rk808: pmic@1b {
  149. compatible = "rockchip,rk808";
  150. reg = <0x1b>;
  151. interrupt-parent = <&gpio1>;
  152. interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
  153. pinctrl-names = "default";
  154. pinctrl-0 = <&pmic_int_l>;
  155. rockchip,system-power-controller;
  156. wakeup-source;
  157. #clock-cells = <1>;
  158. clock-output-names = "xin32k", "rk808-clkout2";
  159. vcc1-supply = <&vcc_sys>;
  160. vcc2-supply = <&vcc_sys>;
  161. vcc3-supply = <&vcc_sys>;
  162. vcc4-supply = <&vcc_sys>;
  163. vcc6-supply = <&vcc_sys>;
  164. vcc7-supply = <&vcc_sys>;
  165. vcc8-supply = <&vcc3v3_sys>;
  166. vcc9-supply = <&vcc_sys>;
  167. vcc10-supply = <&vcc_sys>;
  168. vcc11-supply = <&vcc_sys>;
  169. vcc12-supply = <&vcc3v3_sys>;
  170. vddio-supply = <&vcc_1v8>;
  171. regulators {
  172. vdd_center: DCDC_REG1 {
  173. regulator-name = "vdd_center";
  174. regulator-min-microvolt = <750000>;
  175. regulator-max-microvolt = <1350000>;
  176. regulator-always-on;
  177. regulator-boot-on;
  178. regulator-state-mem {
  179. regulator-off-in-suspend;
  180. };
  181. };
  182. vdd_cpu_l: DCDC_REG2 {
  183. regulator-name = "vdd_cpu_l";
  184. regulator-min-microvolt = <750000>;
  185. regulator-max-microvolt = <1350000>;
  186. regulator-always-on;
  187. regulator-boot-on;
  188. regulator-state-mem {
  189. regulator-off-in-suspend;
  190. };
  191. };
  192. vcc_ddr: DCDC_REG3 {
  193. regulator-name = "vcc_ddr";
  194. regulator-always-on;
  195. regulator-boot-on;
  196. regulator-state-mem {
  197. regulator-on-in-suspend;
  198. };
  199. };
  200. vcc_1v8: DCDC_REG4 {
  201. regulator-name = "vcc_1v8";
  202. regulator-min-microvolt = <1800000>;
  203. regulator-max-microvolt = <1800000>;
  204. regulator-always-on;
  205. regulator-boot-on;
  206. regulator-state-mem {
  207. regulator-on-in-suspend;
  208. regulator-suspend-microvolt = <1800000>;
  209. };
  210. };
  211. vcc1v8_dvp: LDO_REG1 {
  212. regulator-name = "vcc1v8_dvp";
  213. regulator-min-microvolt = <1800000>;
  214. regulator-max-microvolt = <1800000>;
  215. regulator-always-on;
  216. regulator-boot-on;
  217. regulator-state-mem {
  218. regulator-on-in-suspend;
  219. regulator-suspend-microvolt = <1800000>;
  220. };
  221. };
  222. vcca1v8_hdmi: LDO_REG2 {
  223. regulator-name = "vcca1v8_hdmi";
  224. regulator-min-microvolt = <1800000>;
  225. regulator-max-microvolt = <1800000>;
  226. regulator-always-on;
  227. regulator-boot-on;
  228. regulator-state-mem {
  229. regulator-on-in-suspend;
  230. regulator-suspend-microvolt = <1800000>;
  231. };
  232. };
  233. vcca_1v8: LDO_REG3 {
  234. regulator-name = "vcca_1v8";
  235. regulator-min-microvolt = <1800000>;
  236. regulator-max-microvolt = <1800000>;
  237. regulator-always-on;
  238. regulator-boot-on;
  239. regulator-state-mem {
  240. regulator-on-in-suspend;
  241. regulator-suspend-microvolt = <1800000>;
  242. };
  243. };
  244. vcc_sd: LDO_REG4 {
  245. regulator-name = "vcc_sd";
  246. regulator-min-microvolt = <1800000>;
  247. regulator-max-microvolt = <3300000>;
  248. regulator-always-on;
  249. regulator-boot-on;
  250. regulator-state-mem {
  251. regulator-on-in-suspend;
  252. regulator-suspend-microvolt = <3300000>;
  253. };
  254. };
  255. vcc3v0_sd: LDO_REG5 {
  256. regulator-name = "vcc3v0_sd";
  257. regulator-min-microvolt = <3000000>;
  258. regulator-max-microvolt = <3000000>;
  259. regulator-always-on;
  260. regulator-boot-on;
  261. regulator-state-mem {
  262. regulator-on-in-suspend;
  263. regulator-suspend-microvolt = <3000000>;
  264. };
  265. };
  266. vcc_1v5: LDO_REG6 {
  267. regulator-name = "vcc_1v5";
  268. regulator-min-microvolt = <1500000>;
  269. regulator-max-microvolt = <1500000>;
  270. regulator-always-on;
  271. regulator-boot-on;
  272. regulator-state-mem {
  273. regulator-on-in-suspend;
  274. regulator-suspend-microvolt = <1500000>;
  275. };
  276. };
  277. vcca0v9_hdmi: LDO_REG7 {
  278. regulator-name = "vcca0v9_hdmi";
  279. regulator-min-microvolt = <900000>;
  280. regulator-max-microvolt = <900000>;
  281. regulator-always-on;
  282. regulator-boot-on;
  283. regulator-state-mem {
  284. regulator-on-in-suspend;
  285. regulator-suspend-microvolt = <900000>;
  286. };
  287. };
  288. vcc_3v0: LDO_REG8 {
  289. regulator-name = "vcc_3v0";
  290. regulator-min-microvolt = <3000000>;
  291. regulator-max-microvolt = <3000000>;
  292. regulator-always-on;
  293. regulator-boot-on;
  294. regulator-state-mem {
  295. regulator-on-in-suspend;
  296. regulator-suspend-microvolt = <3000000>;
  297. };
  298. };
  299. vcc3v3_s3: SWITCH_REG1 {
  300. regulator-name = "vcc3v3_s3";
  301. regulator-always-on;
  302. regulator-boot-on;
  303. regulator-state-mem {
  304. regulator-on-in-suspend;
  305. };
  306. };
  307. vcc3v3_s0: SWITCH_REG2 {
  308. regulator-name = "vcc3v3_s0";
  309. regulator-always-on;
  310. regulator-boot-on;
  311. regulator-state-mem {
  312. regulator-on-in-suspend;
  313. };
  314. };
  315. };
  316. };
  317. };
  318. &i2c1 {
  319. status = "okay";
  320. };
  321. &i2c2 {
  322. status = "okay";
  323. };
  324. &i2c3 {
  325. status = "okay";
  326. };
  327. &i2c4 {
  328. status = "okay";
  329. };
  330. &io_domains {
  331. bt656-supply = <&vcc1v8_s0>; /* bt656_gpio2ab_ms */
  332. audio-supply = <&vcc1v8_s0>; /* audio_gpio3d4a_ms */
  333. sdmmc-supply = <&vcc_sd>; /* sdmmc_gpio4b_ms */
  334. gpio1830-supply = <&vcc_3v0>; /* gpio1833_gpio4cd_ms */
  335. status = "okay";
  336. };
  337. &pcie_phy {
  338. status = "okay";
  339. };
  340. &pcie0 {
  341. ep-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>;
  342. num-lanes = <4>;
  343. pinctrl-names = "default";
  344. pinctrl-0 = <&pcie_clkreqn_cpm>;
  345. vpcie3v3-supply = <&vcc3v3_pcie>;
  346. status = "okay";
  347. };
  348. &pmu_io_domains {
  349. pmu1830-supply = <&vcc_1v8>;
  350. status = "okay";
  351. };
  352. &pinctrl {
  353. gmac {
  354. rgmii_sleep_pins: rgmii-sleep-pins {
  355. rockchip,pins =
  356. <3 15 RK_FUNC_GPIO &pcfg_output_low>;
  357. };
  358. };
  359. sdmmc {
  360. sdmmc_bus1: sdmmc-bus1 {
  361. rockchip,pins =
  362. <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>;
  363. };
  364. sdmmc_bus4: sdmmc-bus4 {
  365. rockchip,pins =
  366. <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>,
  367. <4 9 RK_FUNC_1 &pcfg_pull_up_8ma>,
  368. <4 10 RK_FUNC_1 &pcfg_pull_up_8ma>,
  369. <4 11 RK_FUNC_1 &pcfg_pull_up_8ma>;
  370. };
  371. sdmmc_clk: sdmmc-clk {
  372. rockchip,pins =
  373. <4 12 RK_FUNC_1 &pcfg_pull_none_18ma>;
  374. };
  375. sdmmc_cmd: sdmmc-cmd {
  376. rockchip,pins =
  377. <4 13 RK_FUNC_1 &pcfg_pull_up_8ma>;
  378. };
  379. };
  380. pcie {
  381. pcie_drv: pcie-drv {
  382. rockchip,pins =
  383. <1 24 RK_FUNC_GPIO &pcfg_pull_none>;
  384. };
  385. };
  386. pmic {
  387. pmic_int_l: pmic-int-l {
  388. rockchip,pins =
  389. <1 21 RK_FUNC_GPIO &pcfg_pull_up>;
  390. };
  391. vsel1_gpio: vsel1-gpio {
  392. rockchip,pins =
  393. <1 17 RK_FUNC_GPIO &pcfg_pull_down>;
  394. };
  395. vsel2_gpio: vsel2-gpio {
  396. rockchip,pins =
  397. <1 14 RK_FUNC_GPIO &pcfg_pull_down>;
  398. };
  399. };
  400. usb2 {
  401. host_vbus_drv: host-vbus-drv {
  402. rockchip,pins =
  403. <4 27 RK_FUNC_GPIO &pcfg_pull_none>;
  404. };
  405. };
  406. };
  407. &pwm2 {
  408. status = "okay";
  409. };
  410. &pwm3 {
  411. status = "okay";
  412. };
  413. &sdhci {
  414. bus-width = <8>;
  415. mmc-hs400-1_8v;
  416. mmc-hs400-enhanced-strobe;
  417. non-removable;
  418. status = "okay";
  419. };
  420. &sdmmc {
  421. bus-width = <4>;
  422. cap-mmc-highspeed;
  423. cap-sd-highspeed;
  424. clock-frequency = <100000000>;
  425. clock-freq-min-max = <100000 100000000>;
  426. disable-wp;
  427. sd-uhs-sdr104;
  428. vqmmc-supply = <&vcc_sd>;
  429. card-detect-delay = <800>;
  430. pinctrl-names = "default";
  431. pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
  432. status = "okay";
  433. };
  434. &tcphy0 {
  435. status = "okay";
  436. };
  437. &tcphy1 {
  438. status = "okay";
  439. };
  440. &u2phy0 {
  441. status = "okay";
  442. };
  443. &u2phy1 {
  444. status = "okay";
  445. };
  446. &u2phy0_host {
  447. phy-supply = <&vcc5v0_host>;
  448. status = "okay";
  449. };
  450. &u2phy1_host {
  451. phy-supply = <&vcc5v0_host>;
  452. status = "okay";
  453. };
  454. &u2phy0_otg {
  455. status = "okay";
  456. };
  457. &u2phy1_otg {
  458. status = "okay";
  459. };
  460. &uart0 {
  461. pinctrl-names = "default";
  462. pinctrl-0 = <&uart0_xfer &uart0_cts>;
  463. status = "okay";
  464. };
  465. &uart2 {
  466. status = "okay";
  467. };
  468. &usb_host0_ehci {
  469. status = "okay";
  470. };
  471. &usb_host0_ohci {
  472. status = "okay";
  473. };
  474. &usb_host1_ehci {
  475. status = "okay";
  476. };
  477. &usb_host1_ohci {
  478. status = "okay";
  479. };
  480. &usbdrd3_0 {
  481. status = "okay";
  482. };
  483. &usbdrd_dwc3_0 {
  484. status = "okay";
  485. dr_mode = "host";
  486. };
  487. &usbdrd3_1 {
  488. status = "okay";
  489. };
  490. &usbdrd_dwc3_1 {
  491. status = "okay";
  492. dr_mode = "host";
  493. };
  494. &vopb {
  495. status = "okay";
  496. };
  497. &vopb_mmu {
  498. status = "okay";
  499. };
  500. &vopl {
  501. status = "okay";
  502. };
  503. &vopl_mmu {
  504. status = "okay";
  505. };