rk3288-vyasa.dts 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (C) 2017 Jagan Teki <[email protected]>
  4. */
  5. /dts-v1/;
  6. #include "rk3288.dtsi"
  7. / {
  8. model = "Amarula Vyasa-RK3288";
  9. compatible = "amarula,vyasa-rk3288", "rockchip,rk3288";
  10. chosen {
  11. stdout-path = &uart2;
  12. };
  13. memory {
  14. reg = <0x0 0x0 0x0 0x80000000>;
  15. device_type = "memory";
  16. };
  17. dc12_vbat: dc12-vbat {
  18. compatible = "regulator-fixed";
  19. regulator-name = "dc12_vbat";
  20. regulator-min-microvolt = <12000000>;
  21. regulator-max-microvolt = <12000000>;
  22. regulator-always-on;
  23. regulator-boot-on;
  24. };
  25. vboot_3v3: vboot-3v3 {
  26. compatible = "regulator-fixed";
  27. regulator-name = "vboot_3v3";
  28. regulator-min-microvolt = <3300000>;
  29. regulator-max-microvolt = <3300000>;
  30. regulator-always-on;
  31. regulator-boot-on;
  32. vin-supply = <&dc12_vbat>;
  33. };
  34. vcc_sys: vsys-regulator {
  35. compatible = "regulator-fixed";
  36. regulator-name = "vcc_sys";
  37. regulator-min-microvolt = <3700000>;
  38. regulator-max-microvolt = <3700000>;
  39. regulator-always-on;
  40. regulator-boot-on;
  41. vin-supply = <&dc12_vbat>;
  42. };
  43. vboot_5v: vboot-5v {
  44. compatible = "regulator-fixed";
  45. regulator-name = "vboot_sv";
  46. regulator-min-microvolt = <5000000>;
  47. regulator-max-microvolt = <5000000>;
  48. regulator-always-on;
  49. regulator-boot-on;
  50. vin-supply = <&dc12_vbat>;
  51. };
  52. v3g_3v3: v3g-3v3 {
  53. compatible = "regulator-fixed";
  54. regulator-name = "v3g_3v3";
  55. regulator-min-microvolt = <3300000>;
  56. regulator-max-microvolt = <3300000>;
  57. regulator-always-on;
  58. regulator-boot-on;
  59. vin-supply = <&dc12_vbat>;
  60. };
  61. vsus_5v: vsus-5v {
  62. compatible = "regulator-fixed";
  63. regulator-name = "vsus_5v";
  64. regulator-min-microvolt = <5000000>;
  65. regulator-max-microvolt = <5000000>;
  66. regulator-always-on;
  67. regulator-boot-on;
  68. vin-supply = <&vcc_io>;
  69. };
  70. vcc50_hdmi: vcc50-hdmi {
  71. compatible = "regulator-fixed";
  72. regulator-name = "vcc50_hdmi";
  73. enable-active-high;
  74. gpio = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>; /* HDMI_EN */
  75. pinctrl-names = "default";
  76. pinctrl-0 = <&vcc50_hdmi_en>;
  77. regulator-always-on;
  78. regulator-boot-on;
  79. vin-supply = <&vsus_5v>;
  80. };
  81. vusb1_5v: vusb1-5v {
  82. compatible = "regulator-fixed";
  83. regulator-name = "vusb1_5v";
  84. enable-active-high;
  85. gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; /* OTG_VBUS_DRV */
  86. pinctrl-names = "default";
  87. pinctrl-0 = <&otg_vbus_drv>;
  88. regulator-min-microvolt = <5000000>;
  89. regulator-max-microvolt = <5000000>;
  90. vin-supply = <&vsus_5v>;
  91. };
  92. vusb2_5v: vusb2-5v {
  93. compatible = "regulator-fixed";
  94. regulator-name = "vusb2_5v";
  95. enable-active-high;
  96. gpio = <&gpio8 RK_PB1 GPIO_ACTIVE_HIGH>; /* USB2_PWR_EN */
  97. pinctrl-names = "default";
  98. pinctrl-0 = <&usb2_pwr_en>;
  99. regulator-min-microvolt = <5000000>;
  100. regulator-max-microvolt = <5000000>;
  101. regulator-always-on;
  102. regulator-boot-on;
  103. vin-supply = <&vsus_5v>;
  104. };
  105. ext_gmac: external-gmac-clock {
  106. compatible = "fixed-clock";
  107. #clock-cells = <0>;
  108. clock-frequency = <125000000>;
  109. clock-output-names = "ext_gmac";
  110. };
  111. };
  112. &cpu0 {
  113. cpu-supply = <&vdd_cpu>;
  114. };
  115. &cpu1 {
  116. cpu-supply = <&vdd_cpu>;
  117. };
  118. &cpu2 {
  119. cpu-supply = <&vdd_cpu>;
  120. };
  121. &cpu3 {
  122. cpu-supply = <&vdd_cpu>;
  123. };
  124. &emmc {
  125. bus-width = <8>;
  126. cap-mmc-highspeed;
  127. non-removable;
  128. pinctrl-names = "default";
  129. pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
  130. vmmc-supply = <&vcc_io>;
  131. status = "okay";
  132. };
  133. &gmac {
  134. assigned-clocks = <&cru SCLK_MAC>;
  135. assigned-clock-parents = <&ext_gmac>;
  136. clock_in_out = "input";
  137. pinctrl-names = "default";
  138. pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
  139. phy-supply = <&vcc_lan>;
  140. phy-mode = "rgmii";
  141. snps,reset-active-low;
  142. snps,reset-delays-us = <0 10000 1000000>;
  143. snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
  144. tx_delay = <0x30>;
  145. rx_delay = <0x10>;
  146. status = "okay";
  147. };
  148. &gpu {
  149. mali-supply = <&vdd_gpu>;
  150. status = "okay";
  151. };
  152. &hdmi {
  153. ddc-i2c-bus = <&i2c5>;
  154. status = "okay";
  155. };
  156. &i2c0 {
  157. clock-frequency = <400000>;
  158. status = "okay";
  159. rk808: pmic@1b {
  160. compatible = "rockchip,rk808";
  161. reg = <0x1b>;
  162. interrupt-parent = <&gpio0>;
  163. interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
  164. #clock-cells = <1>;
  165. clock-output-names = "xin32k", "rk808-clkout2";
  166. pinctrl-names = "default";
  167. pinctrl-0 = <&pmic_int &global_pwroff>;
  168. rockchip,system-power-controller;
  169. wakeup-source;
  170. vcc1-supply = <&vcc_sys>;
  171. vcc2-supply = <&vcc_sys>;
  172. vcc3-supply = <&vcc_sys>;
  173. vcc4-supply = <&vcc_sys>;
  174. vcc6-supply = <&vcc_sys>;
  175. vcc7-supply = <&vcc_sys>;
  176. vcc8-supply = <&vcc_io>;
  177. vcc9-supply = <&vcc_sys>;
  178. vcc10-supply = <&vcc_sys>;
  179. vcc11-supply = <&vcc_sys>;
  180. vcc12-supply = <&vcc_io>;
  181. regulators {
  182. vdd_cpu: DCDC_REG1 {
  183. regulator-name = "vdd_arm";
  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. vdd_gpu: DCDC_REG2 {
  193. regulator-name = "vdd_gpu";
  194. regulator-min-microvolt = <850000>;
  195. regulator-max-microvolt = <1250000>;
  196. regulator-always-on;
  197. regulator-boot-on;
  198. regulator-state-mem {
  199. regulator-on-in-suspend;
  200. regulator-suspend-microvolt = <1000000>;
  201. };
  202. };
  203. vcc_ddr: DCDC_REG3 {
  204. regulator-name = "vcc_ddr";
  205. regulator-always-on;
  206. regulator-boot-on;
  207. regulator-state-mem {
  208. regulator-on-in-suspend;
  209. };
  210. };
  211. vcc_io: DCDC_REG4 {
  212. regulator-name = "vcc_io";
  213. regulator-min-microvolt = <3300000>;
  214. regulator-max-microvolt = <3300000>;
  215. regulator-always-on;
  216. regulator-boot-on;
  217. regulator-state-mem {
  218. regulator-on-in-suspend;
  219. regulator-suspend-microvolt = <3300000>;
  220. };
  221. };
  222. vcca_tp: LDO_REG1 {
  223. regulator-name = "vcc_tp";
  224. regulator-min-microvolt = <3300000>;
  225. regulator-max-microvolt = <3300000>;
  226. regulator-always-on;
  227. regulator-boot-on;
  228. regulator-state-mem {
  229. regulator-on-in-suspend;
  230. regulator-suspend-microvolt = <3300000>;
  231. };
  232. };
  233. vcc_codec: LDO_REG2 {
  234. regulator-name = "vcc_codec";
  235. regulator-min-microvolt = <3300000>;
  236. regulator-max-microvolt = <3300000>;
  237. regulator-always-on;
  238. regulator-boot-on;
  239. regulator-state-mem {
  240. regulator-off-in-suspend;
  241. };
  242. };
  243. vdd_10: LDO_REG3 {
  244. regulator-name = "vdd_10";
  245. regulator-min-microvolt = <1000000>;
  246. regulator-max-microvolt = <1000000>;
  247. regulator-always-on;
  248. regulator-boot-on;
  249. regulator-state-mem {
  250. regulator-on-in-suspend;
  251. regulator-suspend-microvolt = <1000000>;
  252. };
  253. };
  254. vcc_gps: LDO_REG4 {
  255. regulator-name = "vcc_gps";
  256. regulator-min-microvolt = <1800000>;
  257. regulator-max-microvolt = <1800000>;
  258. regulator-always-on;
  259. regulator-boot-on;
  260. regulator-state-mem {
  261. regulator-on-in-suspend;
  262. regulator-suspend-microvolt = <1800000>;
  263. };
  264. };
  265. vccio_sd: LDO_REG5 {
  266. regulator-name = "vccio_sd";
  267. regulator-min-microvolt = <1800000>;
  268. regulator-max-microvolt = <3300000>;
  269. regulator-always-on;
  270. regulator-boot-on;
  271. regulator-state-mem {
  272. regulator-on-in-suspend;
  273. regulator-suspend-microvolt = <3300000>;
  274. };
  275. };
  276. vdd10_lcd: LDO_REG6 {
  277. regulator-name = "vdd10_lcd";
  278. regulator-min-microvolt = <1000000>;
  279. regulator-max-microvolt = <1000000>;
  280. regulator-always-on;
  281. regulator-boot-on;
  282. regulator-state-mem {
  283. regulator-on-in-suspend;
  284. regulator-suspend-microvolt = <1000000>;
  285. };
  286. };
  287. vcc_18: LDO_REG7 {
  288. regulator-name = "vcc_18";
  289. regulator-min-microvolt = <1800000>;
  290. regulator-max-microvolt = <1800000>;
  291. regulator-always-on;
  292. regulator-boot-on;
  293. regulator-state-mem {
  294. regulator-on-in-suspend;
  295. regulator-suspend-microvolt = <1800000>;
  296. };
  297. };
  298. vcc18_lcd: LDO_REG8 {
  299. regulator-name = "vcc18_lcd";
  300. regulator-min-microvolt = <1800000>;
  301. regulator-max-microvolt = <1800000>;
  302. regulator-always-on;
  303. regulator-boot-on;
  304. regulator-state-mem {
  305. regulator-on-in-suspend;
  306. regulator-suspend-microvolt = <1800000>;
  307. };
  308. };
  309. vcc_sd: SWITCH_REG1 {
  310. regulator-name = "vcc_sd";
  311. regulator-min-microvolt = <3300000>;
  312. regulator-max-microvolt = <3300000>;
  313. regulator-always-on;
  314. regulator-boot-on;
  315. regulator-state-mem {
  316. regulator-on-in-suspend;
  317. };
  318. };
  319. vcc_lan: SWITCH_REG2 {
  320. regulator-name = "vcc_lan";
  321. regulator-min-microvolt = <3300000>;
  322. regulator-max-microvolt = <3300000>;
  323. regulator-always-on;
  324. regulator-boot-on;
  325. regulator-state-mem {
  326. regulator-on-in-suspend;
  327. };
  328. };
  329. };
  330. };
  331. };
  332. &i2c5 {
  333. status = "okay";
  334. };
  335. &io_domains {
  336. status = "okay";
  337. audio-supply = <&vcc_18>;
  338. bb-supply = <&vcc_io>;
  339. dvp-supply = <&vcc_io>;
  340. flash0-supply = <&vcc_18>;
  341. flash1-supply = <&vcc_lan>;
  342. gpio30-supply = <&vcc_io>;
  343. gpio1830-supply = <&vcc_io>;
  344. lcdc-supply = <&vcc_io>;
  345. sdcard-supply = <&vccio_sd>;
  346. wifi-supply = <&vcc_18>;
  347. };
  348. &sdmmc {
  349. bus-width = <4>;
  350. cap-mmc-highspeed;
  351. cap-sd-highspeed;
  352. card-detect-delay = <200>;
  353. disable-wp;
  354. pinctrl-names = "default";
  355. pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
  356. vmmc-supply = <&vcc_sd>;
  357. vqmmc-supply = <&vccio_sd>;
  358. status = "okay";
  359. };
  360. &tsadc {
  361. rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
  362. rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
  363. status = "okay";
  364. };
  365. &uart2 {
  366. status = "okay";
  367. };
  368. &usbphy {
  369. status = "okay";
  370. };
  371. &usb_host0_ehci {
  372. status = "okay";
  373. };
  374. &usb_host1 {
  375. pinctrl-names = "default";
  376. pinctrl-0 = <&phy_pwr_en>;
  377. status = "okay";
  378. };
  379. &usb_otg {
  380. vbus-supply = <&vusb1_5v>;
  381. status = "okay";
  382. };
  383. &vopb {
  384. status = "okay";
  385. };
  386. &vopb_mmu {
  387. status = "okay";
  388. };
  389. &vopl {
  390. status = "okay";
  391. };
  392. &vopl_mmu {
  393. status = "okay";
  394. };
  395. &wdt {
  396. status = "okay";
  397. };
  398. &pinctrl {
  399. pcfg_output_high: pcfg-output-high {
  400. output-high;
  401. };
  402. gmac {
  403. phy_int: phy-int {
  404. rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
  405. };
  406. phy_pmeb: phy-pmeb {
  407. rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
  408. };
  409. phy_rst: phy-rst {
  410. rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
  411. };
  412. };
  413. hdmi {
  414. vcc50_hdmi_en: vcc50-hdmi-en {
  415. rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
  416. };
  417. };
  418. pmic {
  419. pmic_int: pmic-int {
  420. rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
  421. };
  422. };
  423. usb_host {
  424. phy_pwr_en: phy-pwr-en {
  425. rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_output_high>;
  426. };
  427. usb2_pwr_en: usb2-pwr-en {
  428. rockchip,pins = <8 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
  429. };
  430. };
  431. usb_otg {
  432. otg_vbus_drv: otg-vbus-drv {
  433. rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
  434. };
  435. };
  436. };