rk3288-r89.dts 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  1. /*
  2. * Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de>
  3. *
  4. * This file is dual-licensed: you can use it either under the terms
  5. * of the GPL or the X11 license, at your option. Note that this dual
  6. * licensing only applies to this file, and not this project as a
  7. * whole.
  8. *
  9. * a) This file is free software; you can redistribute it and/or
  10. * modify it under the terms of the GNU General Public License as
  11. * published by the Free Software Foundation; either version 2 of the
  12. * License, or (at your option) any later version.
  13. *
  14. * This file is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU General Public License for more details.
  18. *
  19. * Or, alternatively,
  20. *
  21. * b) Permission is hereby granted, free of charge, to any person
  22. * obtaining a copy of this software and associated documentation
  23. * files (the "Software"), to deal in the Software without
  24. * restriction, including without limitation the rights to use,
  25. * copy, modify, merge, publish, distribute, sublicense, and/or
  26. * sell copies of the Software, and to permit persons to whom the
  27. * Software is furnished to do so, subject to the following
  28. * conditions:
  29. *
  30. * The above copyright notice and this permission notice shall be
  31. * included in all copies or substantial portions of the Software.
  32. *
  33. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  34. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  35. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  36. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  37. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  38. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  39. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  40. * OTHER DEALINGS IN THE SOFTWARE.
  41. */
  42. /dts-v1/;
  43. #include <dt-bindings/input/input.h>
  44. #include <dt-bindings/pwm/pwm.h>
  45. #include "rk3288.dtsi"
  46. / {
  47. compatible = "netxeon,r89", "rockchip,rk3288";
  48. memory {
  49. device_type = "memory";
  50. reg = <0x0 0x80000000>;
  51. };
  52. ext_gmac: external-gmac-clock {
  53. compatible = "fixed-clock";
  54. clock-frequency = <125000000>;
  55. clock-output-names = "ext_gmac";
  56. #clock-cells = <0>;
  57. };
  58. gpio-keys {
  59. compatible = "gpio-keys";
  60. autorepeat;
  61. pinctrl-names = "default";
  62. pinctrl-0 = <&pwrbtn>;
  63. power {
  64. gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
  65. linux,code = <KEY_POWER>;
  66. label = "GPIO Key Power";
  67. linux,input-type = <1>;
  68. wakeup-source;
  69. debounce-interval = <100>;
  70. };
  71. };
  72. ir: ir-receiver {
  73. compatible = "gpio-ir-receiver";
  74. gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
  75. pinctrl-names = "default";
  76. pinctrl-0 = <&ir_int>;
  77. };
  78. vcc_host: vcc-host-regulator {
  79. compatible = "regulator-fixed";
  80. enable-active-high;
  81. gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
  82. pinctrl-names = "default";
  83. pinctrl-0 = <&host_vbus_drv>;
  84. regulator-name = "vcc_host";
  85. regulator-always-on;
  86. regulator-boot-on;
  87. };
  88. vcc_otg: vcc-otg-regulator {
  89. compatible = "regulator-fixed";
  90. enable-active-high;
  91. gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
  92. pinctrl-names = "default";
  93. pinctrl-0 = <&otg_vbus_drv>;
  94. regulator-name = "vcc_otg";
  95. regulator-always-on;
  96. regulator-boot-on;
  97. };
  98. vcc_sdmmc: sdmmc-regulator {
  99. compatible = "regulator-fixed";
  100. regulator-name = "sdmmc-supply";
  101. regulator-min-microvolt = <3300000>;
  102. regulator-max-microvolt = <3300000>;
  103. gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
  104. startup-delay-us = <100000>;
  105. vin-supply = <&vcc_io>;
  106. };
  107. vcc_sys: sys-regulator {
  108. compatible = "regulator-fixed";
  109. regulator-name = "sys-supply";
  110. regulator-min-microvolt = <5000000>;
  111. regulator-max-microvolt = <5000000>;
  112. regulator-always-on;
  113. regulator-boot-on;
  114. };
  115. };
  116. &cpu0 {
  117. cpu0-supply = <&vdd_cpu>;
  118. };
  119. &gmac {
  120. phy-supply = <&vcc_lan>;
  121. phy-mode = "rgmii";
  122. clock_in_out = "input";
  123. snps,reset-gpio = <&gpio4 7 0>;
  124. snps,reset-active-low;
  125. snps,reset-delays-us = <0 10000 1000000>;
  126. assigned-clocks = <&cru SCLK_MAC>;
  127. assigned-clock-parents = <&ext_gmac>;
  128. pinctrl-names = "default";
  129. pinctrl-0 = <&rgmii_pins>;
  130. tx_delay = <0x30>;
  131. rx_delay = <0x10>;
  132. status = "ok";
  133. };
  134. &hdmi {
  135. status = "okay";
  136. };
  137. &i2c0 {
  138. status = "okay";
  139. vdd_cpu: pmic@40 {
  140. compatible = "silergy,syr827";
  141. reg = <0x40>;
  142. fcs,suspend-voltage-selector = <1>;
  143. regulator-name = "VDD_CPU";
  144. regulator-enable-ramp-delay = <300>;
  145. regulator-min-microvolt = <850000>;
  146. regulator-max-microvolt = <1350000>;
  147. regulator-ramp-delay = <8000>;
  148. regulator-always-on;
  149. regulator-boot-on;
  150. vin-supply = <&vcc_sys>;
  151. };
  152. vdd_gpu: pmic@41 {
  153. compatible = "silergy,syr828";
  154. reg = <0x41>;
  155. fcs,suspend-voltage-selector = <1>;
  156. regulator-name = "VDD_GPU";
  157. regulator-enable-ramp-delay = <300>;
  158. regulator-min-microvolt = <850000>;
  159. regulator-max-microvolt = <1350000>;
  160. regulator-ramp-delay = <8000>;
  161. regulator-always-on;
  162. regulator-boot-on;
  163. vin-supply = <&vcc_sys>;
  164. };
  165. rtc@51 {
  166. compatible = "haoyu,hym8563";
  167. reg = <0x51>;
  168. #clock-cells = <0>;
  169. clock-output-names = "xin32k";
  170. interrupt-parent = <&gpio0>;
  171. interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
  172. pinctrl-names = "default";
  173. pinctrl-0 = <&pmic_int>;
  174. };
  175. act8846: pmic@5a {
  176. compatible = "active-semi,act8846";
  177. reg = <0x5a>;
  178. pinctrl-names = "default";
  179. pinctrl-0 = <&pmic_vsel>, <&pwr_hold>;
  180. system-power-controller;
  181. regulators {
  182. vcc_ddr: REG1 {
  183. regulator-name = "VCC_DDR";
  184. regulator-min-microvolt = <1200000>;
  185. regulator-max-microvolt = <1200000>;
  186. regulator-always-on;
  187. };
  188. vcc_io: REG2 {
  189. regulator-name = "VCC_IO";
  190. regulator-min-microvolt = <3300000>;
  191. regulator-max-microvolt = <3300000>;
  192. regulator-always-on;
  193. };
  194. vdd_log: REG3 {
  195. regulator-name = "VDD_LOG";
  196. regulator-min-microvolt = <1000000>;
  197. regulator-max-microvolt = <1000000>;
  198. regulator-always-on;
  199. };
  200. vcc_20: REG4 {
  201. regulator-name = "VCC_20";
  202. regulator-min-microvolt = <2000000>;
  203. regulator-max-microvolt = <2000000>;
  204. regulator-always-on;
  205. };
  206. vccio_sd: REG5 {
  207. regulator-name = "VCCIO_SD";
  208. regulator-min-microvolt = <3300000>;
  209. regulator-max-microvolt = <3300000>;
  210. regulator-always-on;
  211. };
  212. vdd10_lcd: REG6 {
  213. regulator-name = "VDD10_LCD";
  214. regulator-min-microvolt = <1000000>;
  215. regulator-max-microvolt = <1000000>;
  216. regulator-always-on;
  217. };
  218. vcc_wl: REG7 {
  219. regulator-name = "VCC_WL";
  220. regulator-min-microvolt = <3300000>;
  221. regulator-max-microvolt = <3300000>;
  222. regulator-always-on;
  223. };
  224. vcca_33: REG8 {
  225. regulator-name = "VCCA_33";
  226. regulator-min-microvolt = <3300000>;
  227. regulator-max-microvolt = <3300000>;
  228. regulator-always-on;
  229. };
  230. vcc_lan: REG9 {
  231. regulator-name = "VCC_LAN";
  232. regulator-min-microvolt = <3300000>;
  233. regulator-max-microvolt = <3300000>;
  234. regulator-always-on;
  235. };
  236. vdd_10: REG10 {
  237. regulator-name = "VDD_10";
  238. regulator-min-microvolt = <1000000>;
  239. regulator-max-microvolt = <1000000>;
  240. regulator-always-on;
  241. };
  242. vcc_18: REG11 {
  243. regulator-name = "VCC_18";
  244. regulator-min-microvolt = <1800000>;
  245. regulator-max-microvolt = <1800000>;
  246. regulator-always-on;
  247. };
  248. vcc18_lcd: REG12 {
  249. regulator-name = "VCC18_LCD";
  250. regulator-min-microvolt = <1800000>;
  251. regulator-max-microvolt = <1800000>;
  252. regulator-always-on;
  253. };
  254. };
  255. };
  256. };
  257. &i2c5 {
  258. status = "okay";
  259. };
  260. &pinctrl {
  261. pcfg_output_high: pcfg-output-high {
  262. output-high;
  263. };
  264. pcfg_output_low: pcfg-output-low {
  265. output-low;
  266. };
  267. act8846 {
  268. pmic_vsel: pmic-vsel {
  269. rockchip,pins = <7 1 RK_FUNC_GPIO &pcfg_output_low>;
  270. };
  271. pwr_hold: pwr-hold {
  272. rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_output_high>;
  273. };
  274. };
  275. buttons {
  276. pwrbtn: pwrbtn {
  277. rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
  278. };
  279. };
  280. ir {
  281. ir_int: ir-int {
  282. rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>;
  283. };
  284. };
  285. pmic {
  286. pmic_int: pmic-int {
  287. rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
  288. };
  289. };
  290. usb {
  291. host_vbus_drv: host-vbus-drv {
  292. rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
  293. };
  294. otg_vbus_drv: otg-vbus-drv {
  295. rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
  296. };
  297. };
  298. };
  299. &pwm0 {
  300. status = "okay";
  301. };
  302. &saradc {
  303. vref-supply = <&vcc_18>;
  304. status = "okay";
  305. };
  306. &sdmmc {
  307. bus-width = <4>;
  308. cap-mmc-highspeed;
  309. cap-sd-highspeed;
  310. card-detect-delay = <200>;
  311. disable-wp;
  312. num-slots = <1>;
  313. pinctrl-names = "default";
  314. pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
  315. vmmc-supply = <&vcc_sdmmc>;
  316. vqmmc-supply = <&vccio_sd>;
  317. status = "okay";
  318. };
  319. &tsadc {
  320. rockchip,hw-tshut-mode = <0>;
  321. rockchip,hw-tshut-polarity = <0>;
  322. status = "okay";
  323. };
  324. &uart0 {
  325. status = "okay";
  326. };
  327. &uart1 {
  328. status = "okay";
  329. };
  330. &uart2 {
  331. status = "okay";
  332. };
  333. &uart3 {
  334. status = "okay";
  335. };
  336. &uart4 {
  337. status = "okay";
  338. };
  339. &usb_host0_ehci {
  340. status = "okay";
  341. };
  342. &usb_host1 {
  343. status = "okay";
  344. };
  345. &usb_otg {
  346. status = "okay";
  347. };
  348. &usbphy {
  349. status = "okay";
  350. };
  351. &vopb {
  352. status = "okay";
  353. };
  354. &vopb_mmu {
  355. status = "okay";
  356. };
  357. &vopl {
  358. status = "okay";
  359. };
  360. &vopl_mmu {
  361. status = "okay";
  362. };
  363. &wdt {
  364. status = "okay";
  365. };