rk3368-r88.dts 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de>
  4. */
  5. /dts-v1/;
  6. #include "rk3368.dtsi"
  7. #include <dt-bindings/input/input.h>
  8. / {
  9. model = "Rockchip R88";
  10. compatible = "rockchip,r88", "rockchip,rk3368";
  11. chosen {
  12. stdout-path = "serial2:115200n8";
  13. };
  14. memory {
  15. device_type = "memory";
  16. reg = <0x0 0x0 0x0 0x40000000>;
  17. };
  18. emmc_pwrseq: emmc-pwrseq {
  19. compatible = "mmc-pwrseq-emmc";
  20. pinctrl-0 = <&emmc_reset>;
  21. pinctrl-names = "default";
  22. reset-gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
  23. };
  24. keys: gpio-keys {
  25. compatible = "gpio-keys";
  26. pinctrl-names = "default";
  27. pinctrl-0 = <&pwr_key>;
  28. power {
  29. wakeup-source;
  30. gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
  31. label = "GPIO Power";
  32. linux,code = <KEY_POWER>;
  33. };
  34. };
  35. leds: gpio-leds {
  36. compatible = "gpio-leds";
  37. work {
  38. gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;
  39. label = "r88:green:led";
  40. pinctrl-names = "default";
  41. pinctrl-0 = <&led_ctl>;
  42. };
  43. };
  44. ir: ir-receiver {
  45. compatible = "gpio-ir-receiver";
  46. gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_LOW>;
  47. pinctrl-names = "default";
  48. pinctrl-0 = <&ir_int>;
  49. };
  50. sdio_pwrseq: sdio-pwrseq {
  51. compatible = "mmc-pwrseq-simple";
  52. clocks = <&hym8563>;
  53. clock-names = "ext_clock";
  54. pinctrl-names = "default";
  55. pinctrl-0 = <&bt_rst>, <&wifi_reg_on>;
  56. reset-gpios =
  57. /* BT_RST_N */
  58. <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>,
  59. /* WL_REG_ON */
  60. <&gpio3 RK_PA4 GPIO_ACTIVE_LOW>;
  61. };
  62. vcc_18: vcc18-regulator {
  63. compatible = "regulator-fixed";
  64. regulator-name = "vcc_18";
  65. regulator-min-microvolt = <1800000>;
  66. regulator-max-microvolt = <1800000>;
  67. regulator-always-on;
  68. regulator-boot-on;
  69. vin-supply = <&vcc_sys>;
  70. };
  71. /* supplies both host and otg */
  72. vcc_host: vcc-host-regulator {
  73. compatible = "regulator-fixed";
  74. enable-active-high;
  75. gpio = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
  76. pinctrl-names = "default";
  77. pinctrl-0 = <&host_vbus_drv>;
  78. regulator-name = "vcc_host";
  79. regulator-always-on;
  80. regulator-boot-on;
  81. vin-supply = <&vcc_sys>;
  82. };
  83. vcc_io: vcc-io-regulator {
  84. compatible = "regulator-fixed";
  85. regulator-name = "vcc_io";
  86. regulator-min-microvolt = <3300000>;
  87. regulator-max-microvolt = <3300000>;
  88. regulator-always-on;
  89. regulator-boot-on;
  90. vin-supply = <&vcc_sys>;
  91. };
  92. vcc_lan: vcc-lan-regulator {
  93. compatible = "regulator-fixed";
  94. regulator-name = "vcc_lan";
  95. regulator-min-microvolt = <3300000>;
  96. regulator-max-microvolt = <3300000>;
  97. regulator-always-on;
  98. regulator-boot-on;
  99. vin-supply = <&vcc_io>;
  100. };
  101. vcc_sys: vcc-sys-regulator {
  102. compatible = "regulator-fixed";
  103. regulator-name = "vcc_sys";
  104. regulator-min-microvolt = <5000000>;
  105. regulator-max-microvolt = <5000000>;
  106. regulator-always-on;
  107. regulator-boot-on;
  108. };
  109. vccio_wl: vccio-wl-regulator {
  110. compatible = "regulator-fixed";
  111. regulator-name = "vccio_wl";
  112. regulator-min-microvolt = <3300000>;
  113. regulator-max-microvolt = <3300000>;
  114. regulator-always-on;
  115. regulator-boot-on;
  116. vin-supply = <&vcc_io>;
  117. };
  118. vdd_10: vdd-10-regulator {
  119. compatible = "regulator-fixed";
  120. regulator-name = "vdd_10";
  121. regulator-min-microvolt = <1000000>;
  122. regulator-max-microvolt = <1000000>;
  123. regulator-always-on;
  124. regulator-boot-on;
  125. vin-supply = <&vcc_sys>;
  126. };
  127. };
  128. &emmc {
  129. bus-width = <8>;
  130. cap-mmc-highspeed;
  131. disable-wp;
  132. mmc-pwrseq = <&emmc_pwrseq>;
  133. non-removable;
  134. pinctrl-names = "default";
  135. pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
  136. status = "okay";
  137. };
  138. &gmac {
  139. phy-supply = <&vcc_lan>;
  140. phy-mode = "rmii";
  141. clock_in_out = "output";
  142. snps,reset-gpio = <&gpio3 RK_PB4 GPIO_ACTIVE_HIGH>;
  143. snps,reset-active-low;
  144. snps,reset-delays-us = <0 10000 1000000>;
  145. pinctrl-names = "default";
  146. pinctrl-0 = <&rmii_pins>;
  147. tx_delay = <0x30>;
  148. rx_delay = <0x10>;
  149. status = "ok";
  150. };
  151. &i2c0 {
  152. status = "okay";
  153. vdd_cpu: syr827@40 {
  154. compatible = "silergy,syr827";
  155. reg = <0x40>;
  156. fcs,suspend-voltage-selector = <1>;
  157. regulator-name = "vdd_cpu";
  158. regulator-enable-ramp-delay = <300>;
  159. regulator-min-microvolt = <712500>;
  160. regulator-max-microvolt = <1500000>;
  161. regulator-ramp-delay = <8000>;
  162. regulator-always-on;
  163. regulator-boot-on;
  164. vin-supply = <&vcc_sys>;
  165. };
  166. hym8563: hym8563@51 {
  167. compatible = "haoyu,hym8563";
  168. reg = <0x51>;
  169. #clock-cells = <0>;
  170. clock-frequency = <32768>;
  171. clock-output-names = "xin32k";
  172. /* rtc_int is not connected */
  173. };
  174. };
  175. &io_domains {
  176. status = "ok";
  177. audio-supply = <&vcc_io>;
  178. gpio30-supply = <&vcc_io>;
  179. gpio1830-supply = <&vcc_io>;
  180. wifi-supply = <&vccio_wl>;
  181. };
  182. &sdio0 {
  183. assigned-clocks = <&cru SCLK_SDIO0>;
  184. assigned-clock-parents = <&cru PLL_CPLL>;
  185. bus-width = <4>;
  186. cap-sd-highspeed;
  187. cap-sdio-irq;
  188. keep-power-in-suspend;
  189. mmc-pwrseq = <&sdio_pwrseq>;
  190. non-removable;
  191. pinctrl-names = "default";
  192. pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
  193. vmmc-supply = <&vcc_io>;
  194. vqmmc-supply = <&vccio_wl>;
  195. status = "okay";
  196. };
  197. &pinctrl {
  198. pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
  199. bias-disable;
  200. drive-strength = <8>;
  201. };
  202. pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
  203. bias-pull-up;
  204. drive-strength = <8>;
  205. };
  206. emmc {
  207. emmc_bus8: emmc-bus8 {
  208. rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
  209. <1 19 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
  210. <1 20 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
  211. <1 21 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
  212. <1 22 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
  213. <1 23 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
  214. <1 24 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
  215. <1 25 RK_FUNC_2 &pcfg_pull_up_drv_8ma>;
  216. };
  217. emmc-clk {
  218. rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
  219. };
  220. emmc-cmd {
  221. rockchip,pins = <1 26 RK_FUNC_2 &pcfg_pull_up_drv_8ma>;
  222. };
  223. emmc_reset: emmc-reset {
  224. rockchip,pins = <2 3 RK_FUNC_GPIO &pcfg_pull_none>;
  225. };
  226. };
  227. ir {
  228. ir_int: ir-int {
  229. rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_up>;
  230. };
  231. };
  232. keys {
  233. pwr_key: pwr-key {
  234. rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_up>;
  235. };
  236. };
  237. leds {
  238. stby_pwren: stby-pwren {
  239. rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
  240. };
  241. led_ctl: led-ctl {
  242. rockchip,pins = <3 29 RK_FUNC_GPIO &pcfg_pull_none>;
  243. };
  244. };
  245. sdio {
  246. wifi_reg_on: wifi-reg-on {
  247. rockchip,pins = <3 4 RK_FUNC_GPIO &pcfg_pull_none>;
  248. };
  249. bt_rst: bt-rst {
  250. rockchip,pins = <3 5 RK_FUNC_GPIO &pcfg_pull_none>;
  251. };
  252. };
  253. usb {
  254. host_vbus_drv: host-vbus-drv {
  255. rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_none>;
  256. };
  257. };
  258. };
  259. &pmu_io_domains {
  260. status = "okay";
  261. pmu-supply = <&vcc_io>;
  262. vop-supply = <&vcc_io>;
  263. };
  264. &saradc {
  265. vref-supply = <&vcc_18>;
  266. status = "okay";
  267. };
  268. &tsadc {
  269. rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
  270. rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
  271. status = "okay";
  272. };
  273. &uart2 {
  274. status = "okay";
  275. };
  276. &usb_host0_ehci {
  277. status = "okay";
  278. };
  279. &usb_otg {
  280. dr_mode = "host";
  281. status = "okay";
  282. };
  283. &wdt {
  284. status = "okay";
  285. };