rk3288-r89.dts 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2015 Heiko Stuebner <[email protected]>
  4. */
  5. /dts-v1/;
  6. #include <dt-bindings/input/input.h>
  7. #include <dt-bindings/pwm/pwm.h>
  8. #include "rk3288.dtsi"
  9. / {
  10. model = "Netxeon R89";
  11. compatible = "netxeon,r89", "rockchip,rk3288";
  12. memory@0 {
  13. device_type = "memory";
  14. reg = <0x0 0x0 0x0 0x80000000>;
  15. };
  16. ext_gmac: external-gmac-clock {
  17. compatible = "fixed-clock";
  18. clock-frequency = <125000000>;
  19. clock-output-names = "ext_gmac";
  20. #clock-cells = <0>;
  21. };
  22. gpio-keys {
  23. compatible = "gpio-keys";
  24. autorepeat;
  25. pinctrl-names = "default";
  26. pinctrl-0 = <&pwrbtn>;
  27. key-power {
  28. gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
  29. linux,code = <KEY_POWER>;
  30. label = "GPIO Key Power";
  31. linux,input-type = <1>;
  32. wakeup-source;
  33. debounce-interval = <100>;
  34. };
  35. };
  36. ir: ir-receiver {
  37. compatible = "gpio-ir-receiver";
  38. gpios = <&gpio7 RK_PA0 GPIO_ACTIVE_LOW>;
  39. pinctrl-names = "default";
  40. pinctrl-0 = <&ir_int>;
  41. };
  42. vcc_host: vcc-host-regulator {
  43. compatible = "regulator-fixed";
  44. enable-active-high;
  45. gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
  46. pinctrl-names = "default";
  47. pinctrl-0 = <&host_vbus_drv>;
  48. regulator-name = "vcc_host";
  49. regulator-always-on;
  50. regulator-boot-on;
  51. };
  52. vcc_otg: vcc-otg-regulator {
  53. compatible = "regulator-fixed";
  54. enable-active-high;
  55. gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
  56. pinctrl-names = "default";
  57. pinctrl-0 = <&otg_vbus_drv>;
  58. regulator-name = "vcc_otg";
  59. regulator-always-on;
  60. regulator-boot-on;
  61. };
  62. vcc_sdmmc: sdmmc-regulator {
  63. compatible = "regulator-fixed";
  64. regulator-name = "sdmmc-supply";
  65. regulator-min-microvolt = <3300000>;
  66. regulator-max-microvolt = <3300000>;
  67. gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
  68. startup-delay-us = <100000>;
  69. vin-supply = <&vcc_io>;
  70. };
  71. vcc_sys: sys-regulator {
  72. compatible = "regulator-fixed";
  73. regulator-name = "sys-supply";
  74. regulator-min-microvolt = <5000000>;
  75. regulator-max-microvolt = <5000000>;
  76. regulator-always-on;
  77. regulator-boot-on;
  78. };
  79. };
  80. &cpu0 {
  81. cpu-supply = <&vdd_cpu>;
  82. };
  83. &cpu1 {
  84. cpu-supply = <&vdd_cpu>;
  85. };
  86. &cpu2 {
  87. cpu-supply = <&vdd_cpu>;
  88. };
  89. &cpu3 {
  90. cpu-supply = <&vdd_cpu>;
  91. };
  92. &gmac {
  93. phy-supply = <&vcc_lan>;
  94. phy-mode = "rgmii";
  95. clock_in_out = "input";
  96. snps,reset-gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
  97. snps,reset-active-low;
  98. snps,reset-delays-us = <0 10000 1000000>;
  99. assigned-clocks = <&cru SCLK_MAC>;
  100. assigned-clock-parents = <&ext_gmac>;
  101. pinctrl-names = "default";
  102. pinctrl-0 = <&rgmii_pins>;
  103. tx_delay = <0x30>;
  104. rx_delay = <0x10>;
  105. status = "okay";
  106. };
  107. &hdmi {
  108. status = "okay";
  109. };
  110. &i2c0 {
  111. status = "okay";
  112. vdd_cpu: pmic@40 {
  113. compatible = "silergy,syr827";
  114. reg = <0x40>;
  115. fcs,suspend-voltage-selector = <1>;
  116. regulator-name = "VDD_CPU";
  117. regulator-enable-ramp-delay = <300>;
  118. regulator-min-microvolt = <850000>;
  119. regulator-max-microvolt = <1350000>;
  120. regulator-ramp-delay = <8000>;
  121. regulator-always-on;
  122. regulator-boot-on;
  123. vin-supply = <&vcc_sys>;
  124. };
  125. vdd_gpu: pmic@41 {
  126. compatible = "silergy,syr828";
  127. reg = <0x41>;
  128. fcs,suspend-voltage-selector = <1>;
  129. regulator-name = "VDD_GPU";
  130. regulator-enable-ramp-delay = <300>;
  131. regulator-min-microvolt = <850000>;
  132. regulator-max-microvolt = <1350000>;
  133. regulator-ramp-delay = <8000>;
  134. regulator-always-on;
  135. regulator-boot-on;
  136. vin-supply = <&vcc_sys>;
  137. };
  138. rtc@51 {
  139. compatible = "haoyu,hym8563";
  140. reg = <0x51>;
  141. #clock-cells = <0>;
  142. clock-output-names = "xin32k";
  143. interrupt-parent = <&gpio0>;
  144. interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
  145. pinctrl-names = "default";
  146. pinctrl-0 = <&pmic_int>;
  147. };
  148. act8846: pmic@5a {
  149. compatible = "active-semi,act8846";
  150. reg = <0x5a>;
  151. pinctrl-names = "default";
  152. pinctrl-0 = <&pmic_vsel>, <&pwr_hold>;
  153. system-power-controller;
  154. regulators {
  155. vcc_ddr: REG1 {
  156. regulator-name = "VCC_DDR";
  157. regulator-min-microvolt = <1200000>;
  158. regulator-max-microvolt = <1200000>;
  159. regulator-always-on;
  160. };
  161. vcc_io: REG2 {
  162. regulator-name = "VCC_IO";
  163. regulator-min-microvolt = <3300000>;
  164. regulator-max-microvolt = <3300000>;
  165. regulator-always-on;
  166. };
  167. vdd_log: REG3 {
  168. regulator-name = "VDD_LOG";
  169. regulator-min-microvolt = <1000000>;
  170. regulator-max-microvolt = <1000000>;
  171. regulator-always-on;
  172. };
  173. vcc_20: REG4 {
  174. regulator-name = "VCC_20";
  175. regulator-min-microvolt = <2000000>;
  176. regulator-max-microvolt = <2000000>;
  177. regulator-always-on;
  178. };
  179. vccio_sd: REG5 {
  180. regulator-name = "VCCIO_SD";
  181. regulator-min-microvolt = <3300000>;
  182. regulator-max-microvolt = <3300000>;
  183. regulator-always-on;
  184. };
  185. vdd10_lcd: REG6 {
  186. regulator-name = "VDD10_LCD";
  187. regulator-min-microvolt = <1000000>;
  188. regulator-max-microvolt = <1000000>;
  189. regulator-always-on;
  190. };
  191. vcc_wl: REG7 {
  192. regulator-name = "VCC_WL";
  193. regulator-min-microvolt = <3300000>;
  194. regulator-max-microvolt = <3300000>;
  195. regulator-always-on;
  196. };
  197. vcca_33: REG8 {
  198. regulator-name = "VCCA_33";
  199. regulator-min-microvolt = <3300000>;
  200. regulator-max-microvolt = <3300000>;
  201. regulator-always-on;
  202. };
  203. vcc_lan: REG9 {
  204. regulator-name = "VCC_LAN";
  205. regulator-min-microvolt = <3300000>;
  206. regulator-max-microvolt = <3300000>;
  207. regulator-always-on;
  208. };
  209. vdd_10: REG10 {
  210. regulator-name = "VDD_10";
  211. regulator-min-microvolt = <1000000>;
  212. regulator-max-microvolt = <1000000>;
  213. regulator-always-on;
  214. };
  215. vcc_18: REG11 {
  216. regulator-name = "VCC_18";
  217. regulator-min-microvolt = <1800000>;
  218. regulator-max-microvolt = <1800000>;
  219. regulator-always-on;
  220. };
  221. vcc18_lcd: REG12 {
  222. regulator-name = "VCC18_LCD";
  223. regulator-min-microvolt = <1800000>;
  224. regulator-max-microvolt = <1800000>;
  225. regulator-always-on;
  226. };
  227. };
  228. };
  229. };
  230. &i2c5 {
  231. status = "okay";
  232. };
  233. &pinctrl {
  234. pcfg_output_high: pcfg-output-high {
  235. output-high;
  236. };
  237. pcfg_output_low: pcfg-output-low {
  238. output-low;
  239. };
  240. act8846 {
  241. pmic_vsel: pmic-vsel {
  242. rockchip,pins = <7 RK_PA1 RK_FUNC_GPIO &pcfg_output_low>;
  243. };
  244. pwr_hold: pwr-hold {
  245. rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_output_high>;
  246. };
  247. };
  248. buttons {
  249. pwrbtn: pwrbtn {
  250. rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
  251. };
  252. };
  253. ir {
  254. ir_int: ir-int {
  255. rockchip,pins = <7 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
  256. };
  257. };
  258. pmic {
  259. pmic_int: pmic-int {
  260. rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
  261. };
  262. };
  263. usb {
  264. host_vbus_drv: host-vbus-drv {
  265. rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
  266. };
  267. otg_vbus_drv: otg-vbus-drv {
  268. rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
  269. };
  270. };
  271. };
  272. &pwm0 {
  273. status = "okay";
  274. };
  275. &saradc {
  276. vref-supply = <&vcc_18>;
  277. status = "okay";
  278. };
  279. &sdmmc {
  280. bus-width = <4>;
  281. cap-mmc-highspeed;
  282. cap-sd-highspeed;
  283. card-detect-delay = <200>;
  284. disable-wp;
  285. pinctrl-names = "default";
  286. pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
  287. vmmc-supply = <&vcc_sdmmc>;
  288. vqmmc-supply = <&vccio_sd>;
  289. status = "okay";
  290. };
  291. &tsadc {
  292. rockchip,hw-tshut-mode = <0>;
  293. rockchip,hw-tshut-polarity = <0>;
  294. status = "okay";
  295. };
  296. &uart0 {
  297. status = "okay";
  298. };
  299. &uart1 {
  300. status = "okay";
  301. };
  302. &uart2 {
  303. status = "okay";
  304. };
  305. &uart3 {
  306. status = "okay";
  307. };
  308. &uart4 {
  309. status = "okay";
  310. };
  311. &usb_host0_ehci {
  312. status = "okay";
  313. };
  314. &usb_host1 {
  315. status = "okay";
  316. };
  317. &usb_otg {
  318. status = "okay";
  319. };
  320. &usbphy {
  321. status = "okay";
  322. };
  323. &vopb {
  324. status = "okay";
  325. };
  326. &vopb_mmu {
  327. status = "okay";
  328. };
  329. &vopl {
  330. status = "okay";
  331. };
  332. &vopl_mmu {
  333. status = "okay";
  334. };
  335. &wdt {
  336. status = "okay";
  337. };