rk3036-kylin.dts 8.3 KB

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