rk3368-r88.dts 6.7 KB

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