rk3036-kylin.dts 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /dts-v1/;
  3. #include "rk3036.dtsi"
  4. / {
  5. model = "Rockchip RK3036 KylinBoard";
  6. compatible = "rockchip,rk3036-kylin", "rockchip,rk3036";
  7. memory@60000000 {
  8. device_type = "memory";
  9. reg = <0x60000000 0x20000000>;
  10. };
  11. leds: gpio-leds {
  12. compatible = "gpio-leds";
  13. work_led: led-0 {
  14. gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
  15. label = "kylin:red:led";
  16. pinctrl-names = "default";
  17. pinctrl-0 = <&led_ctl>;
  18. };
  19. };
  20. sdio_pwrseq: sdio-pwrseq {
  21. compatible = "mmc-pwrseq-simple";
  22. pinctrl-names = "default";
  23. pinctrl-0 = <&bt_wake_h>;
  24. /*
  25. * On the module itself this is one of these (depending
  26. * on the actual card populated):
  27. * - SDIO_RESET_L_WL_REG_ON
  28. * - SDIO_RESET_L_WL_RST
  29. * - SDIO_RESET_L_BT_EN
  30. */
  31. reset-gpios = <&gpio0 RK_PD2 GPIO_ACTIVE_LOW>, /* WL_REG_ON */
  32. <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>, /* WL_RST */
  33. <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; /* BT_EN */
  34. };
  35. sound {
  36. compatible = "simple-audio-card";
  37. simple-audio-card,format = "i2s";
  38. simple-audio-card,name = "rockchip,rt5616-codec";
  39. simple-audio-card,mclk-fs = <512>;
  40. simple-audio-card,widgets =
  41. "Microphone", "Microphone Jack",
  42. "Headphone", "Headphone Jack";
  43. simple-audio-card,routing =
  44. "MIC1", "Microphone Jack",
  45. "MIC2", "Microphone Jack",
  46. "Microphone Jack", "micbias1",
  47. "Headphone Jack", "HPOL",
  48. "Headphone Jack", "HPOR";
  49. simple-audio-card,cpu {
  50. sound-dai = <&i2s>;
  51. };
  52. simple-audio-card,codec {
  53. sound-dai = <&rt5616>;
  54. };
  55. };
  56. vcc_sys: vsys-regulator {
  57. compatible = "regulator-fixed";
  58. regulator-name = "vcc_sys";
  59. regulator-min-microvolt = <5000000>;
  60. regulator-max-microvolt = <5000000>;
  61. regulator-always-on;
  62. regulator-boot-on;
  63. };
  64. };
  65. &acodec {
  66. status = "okay";
  67. };
  68. &emac {
  69. phy = <&phy0>;
  70. phy-reset-duration = <10>; /* millisecond */
  71. phy-reset-gpios = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; /* PHY_RST */
  72. pinctrl-names = "default";
  73. pinctrl-0 = <&emac_xfer>, <&emac_mdio>;
  74. status = "okay";
  75. mdio {
  76. #address-cells = <1>;
  77. #size-cells = <0>;
  78. phy0: ethernet-phy@0 {
  79. reg = <0>;
  80. };
  81. };
  82. };
  83. &emmc {
  84. status = "okay";
  85. };
  86. &gpu {
  87. mali-supply = <&vdd_gpu>;
  88. status = "okay";
  89. };
  90. &hdmi {
  91. status = "okay";
  92. };
  93. &i2c1 {
  94. clock-frequency = <400000>;
  95. status = "okay";
  96. rk808: pmic@1b {
  97. compatible = "rockchip,rk808";
  98. reg = <0x1b>;
  99. interrupt-parent = <&gpio2>;
  100. interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
  101. pinctrl-names = "default";
  102. pinctrl-0 = <&pmic_int &global_pwroff>;
  103. rockchip,system-power-controller;
  104. wakeup-source;
  105. #clock-cells = <1>;
  106. clock-output-names = "xin32k", "rk808-clkout2";
  107. vcc1-supply = <&vcc_sys>;
  108. vcc2-supply = <&vcc_sys>;
  109. vcc3-supply = <&vcc_sys>;
  110. vcc4-supply = <&vcc_sys>;
  111. vcc6-supply = <&vcc_sys>;
  112. vcc7-supply = <&vcc_sys>;
  113. vcc8-supply = <&vcc_18>;
  114. vcc9-supply = <&vcc_io>;
  115. vcc10-supply = <&vcc_io>;
  116. vcc11-supply = <&vcc_sys>;
  117. vcc12-supply = <&vcc_io>;
  118. vddio-supply = <&vccio_pmu>;
  119. regulators {
  120. vdd_cpu: DCDC_REG1 {
  121. regulator-always-on;
  122. regulator-boot-on;
  123. regulator-min-microvolt = <750000>;
  124. regulator-max-microvolt = <1350000>;
  125. regulator-name = "vdd_arm";
  126. regulator-state-mem {
  127. regulator-off-in-suspend;
  128. };
  129. };
  130. vdd_gpu: DCDC_REG2 {
  131. regulator-always-on;
  132. regulator-boot-on;
  133. regulator-min-microvolt = <850000>;
  134. regulator-max-microvolt = <1250000>;
  135. regulator-name = "vdd_gpu";
  136. regulator-state-mem {
  137. regulator-on-in-suspend;
  138. regulator-suspend-microvolt = <1000000>;
  139. };
  140. };
  141. vcc_ddr: DCDC_REG3 {
  142. regulator-always-on;
  143. regulator-boot-on;
  144. regulator-name = "vcc_ddr";
  145. regulator-state-mem {
  146. regulator-on-in-suspend;
  147. };
  148. };
  149. vcc_io: DCDC_REG4 {
  150. regulator-always-on;
  151. regulator-boot-on;
  152. regulator-min-microvolt = <3300000>;
  153. regulator-max-microvolt = <3300000>;
  154. regulator-name = "vcc_io";
  155. regulator-state-mem {
  156. regulator-on-in-suspend;
  157. regulator-suspend-microvolt = <3300000>;
  158. };
  159. };
  160. vccio_pmu: LDO_REG1 {
  161. regulator-always-on;
  162. regulator-boot-on;
  163. regulator-min-microvolt = <3300000>;
  164. regulator-max-microvolt = <3300000>;
  165. regulator-name = "vccio_pmu";
  166. regulator-state-mem {
  167. regulator-on-in-suspend;
  168. regulator-suspend-microvolt = <3300000>;
  169. };
  170. };
  171. vcc_tp: LDO_REG2 {
  172. regulator-always-on;
  173. regulator-boot-on;
  174. regulator-min-microvolt = <3300000>;
  175. regulator-max-microvolt = <3300000>;
  176. regulator-name = "vcc_tp";
  177. regulator-state-mem {
  178. regulator-off-in-suspend;
  179. };
  180. };
  181. vdd_10: LDO_REG3 {
  182. regulator-always-on;
  183. regulator-boot-on;
  184. regulator-min-microvolt = <1000000>;
  185. regulator-max-microvolt = <1000000>;
  186. regulator-name = "vdd_10";
  187. regulator-state-mem {
  188. regulator-on-in-suspend;
  189. regulator-suspend-microvolt = <1000000>;
  190. };
  191. };
  192. vcc18_lcd: LDO_REG4 {
  193. regulator-always-on;
  194. regulator-boot-on;
  195. regulator-min-microvolt = <1800000>;
  196. regulator-max-microvolt = <1800000>;
  197. regulator-name = "vcc18_lcd";
  198. regulator-state-mem {
  199. regulator-on-in-suspend;
  200. regulator-suspend-microvolt = <1800000>;
  201. };
  202. };
  203. vccio_sd: LDO_REG5 {
  204. regulator-always-on;
  205. regulator-boot-on;
  206. regulator-min-microvolt = <1800000>;
  207. regulator-max-microvolt = <3300000>;
  208. regulator-name = "vccio_sd";
  209. regulator-state-mem {
  210. regulator-on-in-suspend;
  211. regulator-suspend-microvolt = <3300000>;
  212. };
  213. };
  214. vout5: LDO_REG6 {
  215. regulator-always-on;
  216. regulator-boot-on;
  217. regulator-min-microvolt = <1800000>;
  218. regulator-max-microvolt = <2500000>;
  219. regulator-name = "vout5";
  220. regulator-state-mem {
  221. regulator-on-in-suspend;
  222. regulator-suspend-microvolt = <1800000>;
  223. };
  224. };
  225. vcc_18: LDO_REG7 {
  226. regulator-always-on;
  227. regulator-boot-on;
  228. regulator-min-microvolt = <1800000>;
  229. regulator-max-microvolt = <1800000>;
  230. regulator-name = "vcc_18";
  231. regulator-state-mem {
  232. regulator-on-in-suspend;
  233. regulator-suspend-microvolt = <1800000>;
  234. };
  235. };
  236. vcca_codec: LDO_REG8 {
  237. regulator-always-on;
  238. regulator-boot-on;
  239. regulator-min-microvolt = <1800000>;
  240. regulator-max-microvolt = <1800000>;
  241. regulator-name = "vcca_codec";
  242. regulator-state-mem {
  243. regulator-on-in-suspend;
  244. regulator-suspend-microvolt = <1800000>;
  245. };
  246. };
  247. vcc_wl: SWITCH_REG1 {
  248. regulator-always-on;
  249. regulator-boot-on;
  250. regulator-name = "vcc_wl";
  251. regulator-state-mem {
  252. regulator-on-in-suspend;
  253. };
  254. };
  255. vcc_lcd: SWITCH_REG2 {
  256. regulator-always-on;
  257. regulator-boot-on;
  258. regulator-name = "vcc_lcd";
  259. regulator-state-mem {
  260. regulator-on-in-suspend;
  261. };
  262. };
  263. };
  264. };
  265. };
  266. &i2c2 {
  267. status = "okay";
  268. rt5616: rt5616@1b {
  269. compatible = "rt5616";
  270. reg = <0x1b>;
  271. clocks = <&cru SCLK_I2S_OUT>;
  272. clock-names = "mclk";
  273. #sound-dai-cells = <0>;
  274. };
  275. };
  276. &i2s {
  277. status = "okay";
  278. };
  279. &sdio {
  280. status = "okay";
  281. bus-width = <4>;
  282. cap-sd-highspeed;
  283. cap-sdio-irq;
  284. rockchip,default-sample-phase = <90>;
  285. keep-power-in-suspend;
  286. mmc-pwrseq = <&sdio_pwrseq>;
  287. non-removable;
  288. pinctrl-names = "default";
  289. pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
  290. sd-uhs-sdr12;
  291. sd-uhs-sdr25;
  292. sd-uhs-sdr50;
  293. sd-uhs-sdr104;
  294. };
  295. &sdmmc {
  296. bus-width = <4>;
  297. cap-mmc-highspeed;
  298. cap-sd-highspeed;
  299. card-detect-delay = <200>;
  300. disable-wp;
  301. pinctrl-names = "default";
  302. pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
  303. };
  304. &uart0 {
  305. status = "okay";
  306. };
  307. &uart2 {
  308. status = "okay";
  309. };
  310. &usb_host {
  311. status = "okay";
  312. };
  313. &usb_otg {
  314. status = "okay";
  315. };
  316. &vop {
  317. status = "okay";
  318. };
  319. &vop_mmu {
  320. status = "okay";
  321. };
  322. &pinctrl {
  323. leds {
  324. led_ctl: led-ctl {
  325. rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
  326. };
  327. };
  328. pmic {
  329. pmic_int: pmic-int {
  330. rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_default>;
  331. };
  332. };
  333. sdio {
  334. bt_wake_h: bt-wake-h {
  335. rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_default>;
  336. };
  337. };
  338. sdmmc {
  339. sdmmc_pwr: sdmmc-pwr {
  340. rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
  341. };
  342. };
  343. suspend {
  344. global_pwroff: global-pwroff {
  345. rockchip,pins = <2 RK_PA7 1 &pcfg_pull_none>;
  346. };
  347. };
  348. };