rk3368.dtsi 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102
  1. /*
  2. * Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de>
  3. *
  4. * This file is dual-licensed: you can use it either under the terms
  5. * of the GPL or the X11 license, at your option. Note that this dual
  6. * licensing only applies to this file, and not this project as a
  7. * whole.
  8. *
  9. * a) This library is free software; you can redistribute it and/or
  10. * modify it under the terms of the GNU General Public License as
  11. * published by the Free Software Foundation; either version 2 of the
  12. * License, or (at your option) any later version.
  13. *
  14. * This library is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU General Public License for more details.
  18. *
  19. * Or, alternatively,
  20. *
  21. * b) Permission is hereby granted, free of charge, to any person
  22. * obtaining a copy of this software and associated documentation
  23. * files (the "Software"), to deal in the Software without
  24. * restriction, including without limitation the rights to use,
  25. * copy, modify, merge, publish, distribute, sublicense, and/or
  26. * sell copies of the Software, and to permit persons to whom the
  27. * Software is furnished to do so, subject to the following
  28. * conditions:
  29. *
  30. * The above copyright notice and this permission notice shall be
  31. * included in all copies or substantial portions of the Software.
  32. *
  33. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  34. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  35. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  36. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  37. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  38. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  39. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  40. * OTHER DEALINGS IN THE SOFTWARE.
  41. */
  42. #include <dt-bindings/clock/rk3368-cru.h>
  43. #include <dt-bindings/gpio/gpio.h>
  44. #include <dt-bindings/interrupt-controller/irq.h>
  45. #include <dt-bindings/interrupt-controller/arm-gic.h>
  46. #include <dt-bindings/pinctrl/rockchip.h>
  47. #include <dt-bindings/soc/rockchip,boot-mode.h>
  48. #include <dt-bindings/thermal/thermal.h>
  49. / {
  50. compatible = "rockchip,rk3368";
  51. interrupt-parent = <&gic>;
  52. #address-cells = <2>;
  53. #size-cells = <2>;
  54. aliases {
  55. ethernet0 = &gmac;
  56. i2c0 = &i2c0;
  57. i2c1 = &i2c1;
  58. i2c2 = &i2c2;
  59. i2c3 = &i2c3;
  60. i2c4 = &i2c4;
  61. i2c5 = &i2c5;
  62. serial0 = &uart0;
  63. serial1 = &uart1;
  64. serial2 = &uart2;
  65. serial3 = &uart3;
  66. serial4 = &uart4;
  67. spi0 = &spi0;
  68. spi1 = &spi1;
  69. spi2 = &spi2;
  70. };
  71. cpus {
  72. #address-cells = <0x2>;
  73. #size-cells = <0x0>;
  74. cpu-map {
  75. cluster0 {
  76. core0 {
  77. cpu = <&cpu_b0>;
  78. };
  79. core1 {
  80. cpu = <&cpu_b1>;
  81. };
  82. core2 {
  83. cpu = <&cpu_b2>;
  84. };
  85. core3 {
  86. cpu = <&cpu_b3>;
  87. };
  88. };
  89. cluster1 {
  90. core0 {
  91. cpu = <&cpu_l0>;
  92. };
  93. core1 {
  94. cpu = <&cpu_l1>;
  95. };
  96. core2 {
  97. cpu = <&cpu_l2>;
  98. };
  99. core3 {
  100. cpu = <&cpu_l3>;
  101. };
  102. };
  103. };
  104. idle-states {
  105. entry-method = "psci";
  106. cpu_sleep: cpu-sleep-0 {
  107. compatible = "arm,idle-state";
  108. arm,psci-suspend-param = <0x1010000>;
  109. entry-latency-us = <0x3fffffff>;
  110. exit-latency-us = <0x40000000>;
  111. min-residency-us = <0xffffffff>;
  112. };
  113. };
  114. cpu_l0: cpu@0 {
  115. device_type = "cpu";
  116. compatible = "arm,cortex-a53", "arm,armv8";
  117. reg = <0x0 0x0>;
  118. cpu-idle-states = <&cpu_sleep>;
  119. enable-method = "psci";
  120. #cooling-cells = <2>; /* min followed by max */
  121. };
  122. cpu_l1: cpu@1 {
  123. device_type = "cpu";
  124. compatible = "arm,cortex-a53", "arm,armv8";
  125. reg = <0x0 0x1>;
  126. cpu-idle-states = <&cpu_sleep>;
  127. enable-method = "psci";
  128. };
  129. cpu_l2: cpu@2 {
  130. device_type = "cpu";
  131. compatible = "arm,cortex-a53", "arm,armv8";
  132. reg = <0x0 0x2>;
  133. cpu-idle-states = <&cpu_sleep>;
  134. enable-method = "psci";
  135. };
  136. cpu_l3: cpu@3 {
  137. device_type = "cpu";
  138. compatible = "arm,cortex-a53", "arm,armv8";
  139. reg = <0x0 0x3>;
  140. cpu-idle-states = <&cpu_sleep>;
  141. enable-method = "psci";
  142. };
  143. cpu_b0: cpu@100 {
  144. device_type = "cpu";
  145. compatible = "arm,cortex-a53", "arm,armv8";
  146. reg = <0x0 0x100>;
  147. cpu-idle-states = <&cpu_sleep>;
  148. enable-method = "psci";
  149. #cooling-cells = <2>; /* min followed by max */
  150. };
  151. cpu_b1: cpu@101 {
  152. device_type = "cpu";
  153. compatible = "arm,cortex-a53", "arm,armv8";
  154. reg = <0x0 0x101>;
  155. cpu-idle-states = <&cpu_sleep>;
  156. enable-method = "psci";
  157. };
  158. cpu_b2: cpu@102 {
  159. device_type = "cpu";
  160. compatible = "arm,cortex-a53", "arm,armv8";
  161. reg = <0x0 0x102>;
  162. cpu-idle-states = <&cpu_sleep>;
  163. enable-method = "psci";
  164. };
  165. cpu_b3: cpu@103 {
  166. device_type = "cpu";
  167. compatible = "arm,cortex-a53", "arm,armv8";
  168. reg = <0x0 0x103>;
  169. cpu-idle-states = <&cpu_sleep>;
  170. enable-method = "psci";
  171. };
  172. };
  173. arm-pmu {
  174. compatible = "arm,armv8-pmuv3";
  175. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
  176. <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
  177. <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
  178. <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
  179. <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
  180. <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
  181. <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
  182. <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
  183. interrupt-affinity = <&cpu_l0>, <&cpu_l1>, <&cpu_l2>,
  184. <&cpu_l3>, <&cpu_b0>, <&cpu_b1>,
  185. <&cpu_b2>, <&cpu_b3>;
  186. };
  187. psci {
  188. compatible = "arm,psci-0.2";
  189. method = "smc";
  190. };
  191. timer {
  192. compatible = "arm,armv8-timer";
  193. interrupts = <GIC_PPI 13
  194. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
  195. <GIC_PPI 14
  196. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
  197. <GIC_PPI 11
  198. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
  199. <GIC_PPI 10
  200. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
  201. };
  202. xin24m: oscillator {
  203. compatible = "fixed-clock";
  204. clock-frequency = <24000000>;
  205. clock-output-names = "xin24m";
  206. #clock-cells = <0>;
  207. };
  208. sdmmc: dwmmc@ff0c0000 {
  209. compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
  210. reg = <0x0 0xff0c0000 0x0 0x4000>;
  211. max-frequency = <150000000>;
  212. clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
  213. <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
  214. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  215. fifo-depth = <0x100>;
  216. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  217. status = "disabled";
  218. };
  219. sdio0: dwmmc@ff0d0000 {
  220. compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
  221. reg = <0x0 0xff0d0000 0x0 0x4000>;
  222. max-frequency = <150000000>;
  223. clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
  224. <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
  225. clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
  226. fifo-depth = <0x100>;
  227. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  228. status = "disabled";
  229. };
  230. emmc: dwmmc@ff0f0000 {
  231. compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
  232. reg = <0x0 0xff0f0000 0x0 0x4000>;
  233. max-frequency = <150000000>;
  234. clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
  235. <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
  236. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  237. fifo-depth = <0x100>;
  238. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  239. status = "disabled";
  240. };
  241. saradc: saradc@ff100000 {
  242. compatible = "rockchip,saradc";
  243. reg = <0x0 0xff100000 0x0 0x100>;
  244. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  245. #io-channel-cells = <1>;
  246. clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
  247. clock-names = "saradc", "apb_pclk";
  248. resets = <&cru SRST_SARADC>;
  249. reset-names = "saradc-apb";
  250. status = "disabled";
  251. };
  252. spi0: spi@ff110000 {
  253. compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
  254. reg = <0x0 0xff110000 0x0 0x1000>;
  255. clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
  256. clock-names = "spiclk", "apb_pclk";
  257. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  258. pinctrl-names = "default";
  259. pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
  260. #address-cells = <1>;
  261. #size-cells = <0>;
  262. status = "disabled";
  263. };
  264. spi1: spi@ff120000 {
  265. compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
  266. reg = <0x0 0xff120000 0x0 0x1000>;
  267. clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
  268. clock-names = "spiclk", "apb_pclk";
  269. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  270. pinctrl-names = "default";
  271. pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
  272. #address-cells = <1>;
  273. #size-cells = <0>;
  274. status = "disabled";
  275. };
  276. spi2: spi@ff130000 {
  277. compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
  278. reg = <0x0 0xff130000 0x0 0x1000>;
  279. clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
  280. clock-names = "spiclk", "apb_pclk";
  281. interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
  282. pinctrl-names = "default";
  283. pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
  284. #address-cells = <1>;
  285. #size-cells = <0>;
  286. status = "disabled";
  287. };
  288. i2c2: i2c@ff140000 {
  289. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  290. reg = <0x0 0xff140000 0x0 0x1000>;
  291. interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
  292. #address-cells = <1>;
  293. #size-cells = <0>;
  294. clock-names = "i2c";
  295. clocks = <&cru PCLK_I2C2>;
  296. pinctrl-names = "default";
  297. pinctrl-0 = <&i2c2_xfer>;
  298. status = "disabled";
  299. };
  300. i2c3: i2c@ff150000 {
  301. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  302. reg = <0x0 0xff150000 0x0 0x1000>;
  303. interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
  304. #address-cells = <1>;
  305. #size-cells = <0>;
  306. clock-names = "i2c";
  307. clocks = <&cru PCLK_I2C3>;
  308. pinctrl-names = "default";
  309. pinctrl-0 = <&i2c3_xfer>;
  310. status = "disabled";
  311. };
  312. i2c4: i2c@ff160000 {
  313. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  314. reg = <0x0 0xff160000 0x0 0x1000>;
  315. interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
  316. #address-cells = <1>;
  317. #size-cells = <0>;
  318. clock-names = "i2c";
  319. clocks = <&cru PCLK_I2C4>;
  320. pinctrl-names = "default";
  321. pinctrl-0 = <&i2c4_xfer>;
  322. status = "disabled";
  323. };
  324. i2c5: i2c@ff170000 {
  325. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  326. reg = <0x0 0xff170000 0x0 0x1000>;
  327. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
  328. #address-cells = <1>;
  329. #size-cells = <0>;
  330. clock-names = "i2c";
  331. clocks = <&cru PCLK_I2C5>;
  332. pinctrl-names = "default";
  333. pinctrl-0 = <&i2c5_xfer>;
  334. status = "disabled";
  335. };
  336. uart0: serial@ff180000 {
  337. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  338. reg = <0x0 0xff180000 0x0 0x100>;
  339. clock-frequency = <24000000>;
  340. clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
  341. clock-names = "baudclk", "apb_pclk";
  342. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  343. reg-shift = <2>;
  344. reg-io-width = <4>;
  345. status = "disabled";
  346. };
  347. uart1: serial@ff190000 {
  348. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  349. reg = <0x0 0xff190000 0x0 0x100>;
  350. clock-frequency = <24000000>;
  351. clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
  352. clock-names = "baudclk", "apb_pclk";
  353. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  354. reg-shift = <2>;
  355. reg-io-width = <4>;
  356. status = "disabled";
  357. };
  358. uart3: serial@ff1b0000 {
  359. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  360. reg = <0x0 0xff1b0000 0x0 0x100>;
  361. clock-frequency = <24000000>;
  362. clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
  363. clock-names = "baudclk", "apb_pclk";
  364. interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
  365. reg-shift = <2>;
  366. reg-io-width = <4>;
  367. status = "disabled";
  368. };
  369. uart4: serial@ff1c0000 {
  370. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  371. reg = <0x0 0xff1c0000 0x0 0x100>;
  372. clock-frequency = <24000000>;
  373. clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
  374. clock-names = "baudclk", "apb_pclk";
  375. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
  376. reg-shift = <2>;
  377. reg-io-width = <4>;
  378. status = "disabled";
  379. };
  380. thermal-zones {
  381. cpu {
  382. polling-delay-passive = <100>; /* milliseconds */
  383. polling-delay = <5000>; /* milliseconds */
  384. thermal-sensors = <&tsadc 0>;
  385. trips {
  386. cpu_alert0: cpu_alert0 {
  387. temperature = <75000>; /* millicelsius */
  388. hysteresis = <2000>; /* millicelsius */
  389. type = "passive";
  390. };
  391. cpu_alert1: cpu_alert1 {
  392. temperature = <80000>; /* millicelsius */
  393. hysteresis = <2000>; /* millicelsius */
  394. type = "passive";
  395. };
  396. cpu_crit: cpu_crit {
  397. temperature = <95000>; /* millicelsius */
  398. hysteresis = <2000>; /* millicelsius */
  399. type = "critical";
  400. };
  401. };
  402. cooling-maps {
  403. map0 {
  404. trip = <&cpu_alert0>;
  405. cooling-device =
  406. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  407. };
  408. map1 {
  409. trip = <&cpu_alert1>;
  410. cooling-device =
  411. <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  412. };
  413. };
  414. };
  415. gpu {
  416. polling-delay-passive = <100>; /* milliseconds */
  417. polling-delay = <5000>; /* milliseconds */
  418. thermal-sensors = <&tsadc 1>;
  419. trips {
  420. gpu_alert0: gpu_alert0 {
  421. temperature = <80000>; /* millicelsius */
  422. hysteresis = <2000>; /* millicelsius */
  423. type = "passive";
  424. };
  425. gpu_crit: gpu_crit {
  426. temperature = <115000>; /* millicelsius */
  427. hysteresis = <2000>; /* millicelsius */
  428. type = "critical";
  429. };
  430. };
  431. cooling-maps {
  432. map0 {
  433. trip = <&gpu_alert0>;
  434. cooling-device =
  435. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  436. };
  437. };
  438. };
  439. };
  440. tsadc: tsadc@ff280000 {
  441. compatible = "rockchip,rk3368-tsadc";
  442. reg = <0x0 0xff280000 0x0 0x100>;
  443. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  444. clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
  445. clock-names = "tsadc", "apb_pclk";
  446. resets = <&cru SRST_TSADC>;
  447. reset-names = "tsadc-apb";
  448. pinctrl-names = "init", "default", "sleep";
  449. pinctrl-0 = <&otp_gpio>;
  450. pinctrl-1 = <&otp_out>;
  451. pinctrl-2 = <&otp_gpio>;
  452. #thermal-sensor-cells = <1>;
  453. rockchip,hw-tshut-temp = <95000>;
  454. status = "disabled";
  455. };
  456. gmac: ethernet@ff290000 {
  457. compatible = "rockchip,rk3368-gmac";
  458. reg = <0x0 0xff290000 0x0 0x10000>;
  459. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  460. interrupt-names = "macirq";
  461. rockchip,grf = <&grf>;
  462. clocks = <&cru SCLK_MAC>,
  463. <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
  464. <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
  465. <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
  466. clock-names = "stmmaceth",
  467. "mac_clk_rx", "mac_clk_tx",
  468. "clk_mac_ref", "clk_mac_refout",
  469. "aclk_mac", "pclk_mac";
  470. status = "disabled";
  471. };
  472. usb_host0_ehci: usb@ff500000 {
  473. compatible = "generic-ehci";
  474. reg = <0x0 0xff500000 0x0 0x100>;
  475. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
  476. clocks = <&cru HCLK_HOST0>;
  477. clock-names = "usbhost";
  478. status = "disabled";
  479. };
  480. usb_otg: usb@ff580000 {
  481. compatible = "rockchip,rk3368-usb", "rockchip,rk3066-usb",
  482. "snps,dwc2";
  483. reg = <0x0 0xff580000 0x0 0x40000>;
  484. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  485. clocks = <&cru HCLK_OTG0>;
  486. clock-names = "otg";
  487. dr_mode = "otg";
  488. g-np-tx-fifo-size = <16>;
  489. g-rx-fifo-size = <275>;
  490. g-tx-fifo-size = <256 128 128 64 64 32>;
  491. status = "disabled";
  492. };
  493. i2c0: i2c@ff650000 {
  494. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  495. reg = <0x0 0xff650000 0x0 0x1000>;
  496. clocks = <&cru PCLK_I2C0>;
  497. clock-names = "i2c";
  498. interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
  499. pinctrl-names = "default";
  500. pinctrl-0 = <&i2c0_xfer>;
  501. #address-cells = <1>;
  502. #size-cells = <0>;
  503. status = "disabled";
  504. };
  505. i2c1: i2c@ff660000 {
  506. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  507. reg = <0x0 0xff660000 0x0 0x1000>;
  508. interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
  509. #address-cells = <1>;
  510. #size-cells = <0>;
  511. clock-names = "i2c";
  512. clocks = <&cru PCLK_I2C1>;
  513. pinctrl-names = "default";
  514. pinctrl-0 = <&i2c1_xfer>;
  515. status = "disabled";
  516. };
  517. pwm0: pwm@ff680000 {
  518. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  519. reg = <0x0 0xff680000 0x0 0x10>;
  520. #pwm-cells = <3>;
  521. pinctrl-names = "default";
  522. pinctrl-0 = <&pwm0_pin>;
  523. clocks = <&cru PCLK_PWM1>;
  524. clock-names = "pwm";
  525. status = "disabled";
  526. };
  527. pwm1: pwm@ff680010 {
  528. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  529. reg = <0x0 0xff680010 0x0 0x10>;
  530. #pwm-cells = <3>;
  531. pinctrl-names = "default";
  532. pinctrl-0 = <&pwm1_pin>;
  533. clocks = <&cru PCLK_PWM1>;
  534. clock-names = "pwm";
  535. status = "disabled";
  536. };
  537. pwm2: pwm@ff680020 {
  538. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  539. reg = <0x0 0xff680020 0x0 0x10>;
  540. #pwm-cells = <3>;
  541. clocks = <&cru PCLK_PWM1>;
  542. clock-names = "pwm";
  543. status = "disabled";
  544. };
  545. pwm3: pwm@ff680030 {
  546. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  547. reg = <0x0 0xff680030 0x0 0x10>;
  548. #pwm-cells = <3>;
  549. pinctrl-names = "default";
  550. pinctrl-0 = <&pwm3_pin>;
  551. clocks = <&cru PCLK_PWM1>;
  552. clock-names = "pwm";
  553. status = "disabled";
  554. };
  555. uart2: serial@ff690000 {
  556. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  557. reg = <0x0 0xff690000 0x0 0x100>;
  558. clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
  559. clock-names = "baudclk", "apb_pclk";
  560. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  561. pinctrl-names = "default";
  562. pinctrl-0 = <&uart2_xfer>;
  563. reg-shift = <2>;
  564. reg-io-width = <4>;
  565. status = "disabled";
  566. };
  567. mbox: mbox@ff6b0000 {
  568. compatible = "rockchip,rk3368-mailbox";
  569. reg = <0x0 0xff6b0000 0x0 0x1000>;
  570. interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
  571. <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
  572. <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
  573. <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
  574. clocks = <&cru PCLK_MAILBOX>;
  575. clock-names = "pclk_mailbox";
  576. #mbox-cells = <1>;
  577. };
  578. pmugrf: syscon@ff738000 {
  579. compatible = "rockchip,rk3368-pmugrf", "syscon", "simple-mfd";
  580. reg = <0x0 0xff738000 0x0 0x1000>;
  581. pmu_io_domains: io-domains {
  582. compatible = "rockchip,rk3368-pmu-io-voltage-domain";
  583. status = "disabled";
  584. };
  585. reboot-mode {
  586. compatible = "syscon-reboot-mode";
  587. offset = <0x200>;
  588. mode-normal = <BOOT_NORMAL>;
  589. mode-recovery = <BOOT_RECOVERY>;
  590. mode-bootloader = <BOOT_FASTBOOT>;
  591. mode-loader = <BOOT_BL_DOWNLOAD>;
  592. };
  593. };
  594. cru: clock-controller@ff760000 {
  595. compatible = "rockchip,rk3368-cru";
  596. reg = <0x0 0xff760000 0x0 0x1000>;
  597. rockchip,grf = <&grf>;
  598. #clock-cells = <1>;
  599. #reset-cells = <1>;
  600. };
  601. grf: syscon@ff770000 {
  602. compatible = "rockchip,rk3368-grf", "syscon", "simple-mfd";
  603. reg = <0x0 0xff770000 0x0 0x1000>;
  604. io_domains: io-domains {
  605. compatible = "rockchip,rk3368-io-voltage-domain";
  606. status = "disabled";
  607. };
  608. };
  609. wdt: watchdog@ff800000 {
  610. compatible = "rockchip,rk3368-wdt", "snps,dw-wdt";
  611. reg = <0x0 0xff800000 0x0 0x100>;
  612. clocks = <&cru PCLK_WDT>;
  613. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  614. status = "disabled";
  615. };
  616. timer@ff810000 {
  617. compatible = "rockchip,rk3368-timer", "rockchip,rk3288-timer";
  618. reg = <0x0 0xff810000 0x0 0x20>;
  619. interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
  620. };
  621. gic: interrupt-controller@ffb71000 {
  622. compatible = "arm,gic-400";
  623. interrupt-controller;
  624. #interrupt-cells = <3>;
  625. #address-cells = <0>;
  626. reg = <0x0 0xffb71000 0x0 0x1000>,
  627. <0x0 0xffb72000 0x0 0x2000>,
  628. <0x0 0xffb74000 0x0 0x2000>,
  629. <0x0 0xffb76000 0x0 0x2000>;
  630. interrupts = <GIC_PPI 9
  631. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
  632. };
  633. pinctrl: pinctrl {
  634. compatible = "rockchip,rk3368-pinctrl";
  635. rockchip,grf = <&grf>;
  636. rockchip,pmu = <&pmugrf>;
  637. #address-cells = <0x2>;
  638. #size-cells = <0x2>;
  639. ranges;
  640. gpio0: gpio0@ff750000 {
  641. compatible = "rockchip,gpio-bank";
  642. reg = <0x0 0xff750000 0x0 0x100>;
  643. clocks = <&cru PCLK_GPIO0>;
  644. interrupts = <GIC_SPI 0x51 IRQ_TYPE_LEVEL_HIGH>;
  645. gpio-controller;
  646. #gpio-cells = <0x2>;
  647. interrupt-controller;
  648. #interrupt-cells = <0x2>;
  649. };
  650. gpio1: gpio1@ff780000 {
  651. compatible = "rockchip,gpio-bank";
  652. reg = <0x0 0xff780000 0x0 0x100>;
  653. clocks = <&cru PCLK_GPIO1>;
  654. interrupts = <GIC_SPI 0x52 IRQ_TYPE_LEVEL_HIGH>;
  655. gpio-controller;
  656. #gpio-cells = <0x2>;
  657. interrupt-controller;
  658. #interrupt-cells = <0x2>;
  659. };
  660. gpio2: gpio2@ff790000 {
  661. compatible = "rockchip,gpio-bank";
  662. reg = <0x0 0xff790000 0x0 0x100>;
  663. clocks = <&cru PCLK_GPIO2>;
  664. interrupts = <GIC_SPI 0x53 IRQ_TYPE_LEVEL_HIGH>;
  665. gpio-controller;
  666. #gpio-cells = <0x2>;
  667. interrupt-controller;
  668. #interrupt-cells = <0x2>;
  669. };
  670. gpio3: gpio3@ff7a0000 {
  671. compatible = "rockchip,gpio-bank";
  672. reg = <0x0 0xff7a0000 0x0 0x100>;
  673. clocks = <&cru PCLK_GPIO3>;
  674. interrupts = <GIC_SPI 0x54 IRQ_TYPE_LEVEL_HIGH>;
  675. gpio-controller;
  676. #gpio-cells = <0x2>;
  677. interrupt-controller;
  678. #interrupt-cells = <0x2>;
  679. };
  680. pcfg_pull_up: pcfg-pull-up {
  681. bias-pull-up;
  682. };
  683. pcfg_pull_down: pcfg-pull-down {
  684. bias-pull-down;
  685. };
  686. pcfg_pull_none: pcfg-pull-none {
  687. bias-disable;
  688. };
  689. pcfg_pull_none_12ma: pcfg-pull-none-12ma {
  690. bias-disable;
  691. drive-strength = <12>;
  692. };
  693. emmc {
  694. emmc_clk: emmc-clk {
  695. rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
  696. };
  697. emmc_cmd: emmc-cmd {
  698. rockchip,pins = <1 26 RK_FUNC_2 &pcfg_pull_up>;
  699. };
  700. emmc_pwr: emmc-pwr {
  701. rockchip,pins = <1 27 RK_FUNC_2 &pcfg_pull_up>;
  702. };
  703. emmc_bus1: emmc-bus1 {
  704. rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>;
  705. };
  706. emmc_bus4: emmc-bus4 {
  707. rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>,
  708. <1 19 RK_FUNC_2 &pcfg_pull_up>,
  709. <1 20 RK_FUNC_2 &pcfg_pull_up>,
  710. <1 21 RK_FUNC_2 &pcfg_pull_up>;
  711. };
  712. emmc_bus8: emmc-bus8 {
  713. rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>,
  714. <1 19 RK_FUNC_2 &pcfg_pull_up>,
  715. <1 20 RK_FUNC_2 &pcfg_pull_up>,
  716. <1 21 RK_FUNC_2 &pcfg_pull_up>,
  717. <1 22 RK_FUNC_2 &pcfg_pull_up>,
  718. <1 23 RK_FUNC_2 &pcfg_pull_up>,
  719. <1 24 RK_FUNC_2 &pcfg_pull_up>,
  720. <1 25 RK_FUNC_2 &pcfg_pull_up>;
  721. };
  722. };
  723. gmac {
  724. rgmii_pins: rgmii-pins {
  725. rockchip,pins = <3 22 RK_FUNC_1 &pcfg_pull_none>,
  726. <3 24 RK_FUNC_1 &pcfg_pull_none>,
  727. <3 19 RK_FUNC_1 &pcfg_pull_none>,
  728. <3 8 RK_FUNC_1 &pcfg_pull_none_12ma>,
  729. <3 9 RK_FUNC_1 &pcfg_pull_none_12ma>,
  730. <3 10 RK_FUNC_1 &pcfg_pull_none_12ma>,
  731. <3 14 RK_FUNC_1 &pcfg_pull_none_12ma>,
  732. <3 28 RK_FUNC_1 &pcfg_pull_none_12ma>,
  733. <3 13 RK_FUNC_1 &pcfg_pull_none_12ma>,
  734. <3 15 RK_FUNC_1 &pcfg_pull_none>,
  735. <3 16 RK_FUNC_1 &pcfg_pull_none>,
  736. <3 17 RK_FUNC_1 &pcfg_pull_none>,
  737. <3 18 RK_FUNC_1 &pcfg_pull_none>,
  738. <3 25 RK_FUNC_1 &pcfg_pull_none>,
  739. <3 20 RK_FUNC_1 &pcfg_pull_none>;
  740. };
  741. rmii_pins: rmii-pins {
  742. rockchip,pins = <3 22 RK_FUNC_1 &pcfg_pull_none>,
  743. <3 24 RK_FUNC_1 &pcfg_pull_none>,
  744. <3 19 RK_FUNC_1 &pcfg_pull_none>,
  745. <3 8 RK_FUNC_1 &pcfg_pull_none_12ma>,
  746. <3 9 RK_FUNC_1 &pcfg_pull_none_12ma>,
  747. <3 13 RK_FUNC_1 &pcfg_pull_none_12ma>,
  748. <3 15 RK_FUNC_1 &pcfg_pull_none>,
  749. <3 16 RK_FUNC_1 &pcfg_pull_none>,
  750. <3 20 RK_FUNC_1 &pcfg_pull_none>,
  751. <3 21 RK_FUNC_1 &pcfg_pull_none>;
  752. };
  753. };
  754. i2c0 {
  755. i2c0_xfer: i2c0-xfer {
  756. rockchip,pins = <0 6 RK_FUNC_1 &pcfg_pull_none>,
  757. <0 7 RK_FUNC_1 &pcfg_pull_none>;
  758. };
  759. };
  760. i2c1 {
  761. i2c1_xfer: i2c1-xfer {
  762. rockchip,pins = <2 21 RK_FUNC_1 &pcfg_pull_none>,
  763. <2 22 RK_FUNC_1 &pcfg_pull_none>;
  764. };
  765. };
  766. i2c2 {
  767. i2c2_xfer: i2c2-xfer {
  768. rockchip,pins = <0 9 RK_FUNC_2 &pcfg_pull_none>,
  769. <3 31 RK_FUNC_2 &pcfg_pull_none>;
  770. };
  771. };
  772. i2c3 {
  773. i2c3_xfer: i2c3-xfer {
  774. rockchip,pins = <1 16 RK_FUNC_1 &pcfg_pull_none>,
  775. <1 17 RK_FUNC_1 &pcfg_pull_none>;
  776. };
  777. };
  778. i2c4 {
  779. i2c4_xfer: i2c4-xfer {
  780. rockchip,pins = <3 24 RK_FUNC_2 &pcfg_pull_none>,
  781. <3 25 RK_FUNC_2 &pcfg_pull_none>;
  782. };
  783. };
  784. i2c5 {
  785. i2c5_xfer: i2c5-xfer {
  786. rockchip,pins = <3 26 RK_FUNC_2 &pcfg_pull_none>,
  787. <3 27 RK_FUNC_2 &pcfg_pull_none>;
  788. };
  789. };
  790. pwm0 {
  791. pwm0_pin: pwm0-pin {
  792. rockchip,pins = <3 8 RK_FUNC_2 &pcfg_pull_none>;
  793. };
  794. };
  795. pwm1 {
  796. pwm1_pin: pwm1-pin {
  797. rockchip,pins = <0 8 RK_FUNC_2 &pcfg_pull_none>;
  798. };
  799. };
  800. pwm3 {
  801. pwm3_pin: pwm3-pin {
  802. rockchip,pins = <3 29 RK_FUNC_3 &pcfg_pull_none>;
  803. };
  804. };
  805. sdio0 {
  806. sdio0_bus1: sdio0-bus1 {
  807. rockchip,pins = <2 28 RK_FUNC_1 &pcfg_pull_up>;
  808. };
  809. sdio0_bus4: sdio0-bus4 {
  810. rockchip,pins = <2 28 RK_FUNC_1 &pcfg_pull_up>,
  811. <2 29 RK_FUNC_1 &pcfg_pull_up>,
  812. <2 30 RK_FUNC_1 &pcfg_pull_up>,
  813. <2 31 RK_FUNC_1 &pcfg_pull_up>;
  814. };
  815. sdio0_cmd: sdio0-cmd {
  816. rockchip,pins = <3 0 RK_FUNC_1 &pcfg_pull_up>;
  817. };
  818. sdio0_clk: sdio0-clk {
  819. rockchip,pins = <3 1 RK_FUNC_1 &pcfg_pull_none>;
  820. };
  821. sdio0_cd: sdio0-cd {
  822. rockchip,pins = <3 2 RK_FUNC_1 &pcfg_pull_up>;
  823. };
  824. sdio0_wp: sdio0-wp {
  825. rockchip,pins = <3 3 RK_FUNC_1 &pcfg_pull_up>;
  826. };
  827. sdio0_pwr: sdio0-pwr {
  828. rockchip,pins = <3 4 RK_FUNC_1 &pcfg_pull_up>;
  829. };
  830. sdio0_bkpwr: sdio0-bkpwr {
  831. rockchip,pins = <3 5 RK_FUNC_1 &pcfg_pull_up>;
  832. };
  833. sdio0_int: sdio0-int {
  834. rockchip,pins = <3 6 RK_FUNC_1 &pcfg_pull_up>;
  835. };
  836. };
  837. sdmmc {
  838. sdmmc_clk: sdmmc-clk {
  839. rockchip,pins = <2 9 RK_FUNC_1 &pcfg_pull_none>;
  840. };
  841. sdmmc_cmd: sdmmc-cmd {
  842. rockchip,pins = <2 10 RK_FUNC_1 &pcfg_pull_up>;
  843. };
  844. sdmmc_cd: sdmmc-cd {
  845. rockchip,pins = <2 11 RK_FUNC_1 &pcfg_pull_up>;
  846. };
  847. sdmmc_bus1: sdmmc-bus1 {
  848. rockchip,pins = <2 5 RK_FUNC_1 &pcfg_pull_up>;
  849. };
  850. sdmmc_bus4: sdmmc-bus4 {
  851. rockchip,pins = <2 5 RK_FUNC_1 &pcfg_pull_up>,
  852. <2 6 RK_FUNC_1 &pcfg_pull_up>,
  853. <2 7 RK_FUNC_1 &pcfg_pull_up>,
  854. <2 8 RK_FUNC_1 &pcfg_pull_up>;
  855. };
  856. };
  857. spi0 {
  858. spi0_clk: spi0-clk {
  859. rockchip,pins = <1 29 RK_FUNC_2 &pcfg_pull_up>;
  860. };
  861. spi0_cs0: spi0-cs0 {
  862. rockchip,pins = <1 24 RK_FUNC_3 &pcfg_pull_up>;
  863. };
  864. spi0_cs1: spi0-cs1 {
  865. rockchip,pins = <1 25 RK_FUNC_3 &pcfg_pull_up>;
  866. };
  867. spi0_tx: spi0-tx {
  868. rockchip,pins = <1 23 RK_FUNC_3 &pcfg_pull_up>;
  869. };
  870. spi0_rx: spi0-rx {
  871. rockchip,pins = <1 22 RK_FUNC_3 &pcfg_pull_up>;
  872. };
  873. };
  874. spi1 {
  875. spi1_clk: spi1-clk {
  876. rockchip,pins = <1 14 RK_FUNC_2 &pcfg_pull_up>;
  877. };
  878. spi1_cs0: spi1-cs0 {
  879. rockchip,pins = <1 15 RK_FUNC_2 &pcfg_pull_up>;
  880. };
  881. spi1_cs1: spi1-cs1 {
  882. rockchip,pins = <3 28 RK_FUNC_2 &pcfg_pull_up>;
  883. };
  884. spi1_rx: spi1-rx {
  885. rockchip,pins = <1 16 RK_FUNC_2 &pcfg_pull_up>;
  886. };
  887. spi1_tx: spi1-tx {
  888. rockchip,pins = <1 17 RK_FUNC_2 &pcfg_pull_up>;
  889. };
  890. };
  891. spi2 {
  892. spi2_clk: spi2-clk {
  893. rockchip,pins = <0 12 RK_FUNC_2 &pcfg_pull_up>;
  894. };
  895. spi2_cs0: spi2-cs0 {
  896. rockchip,pins = <0 13 RK_FUNC_2 &pcfg_pull_up>;
  897. };
  898. spi2_rx: spi2-rx {
  899. rockchip,pins = <0 10 RK_FUNC_2 &pcfg_pull_up>;
  900. };
  901. spi2_tx: spi2-tx {
  902. rockchip,pins = <0 11 RK_FUNC_2 &pcfg_pull_up>;
  903. };
  904. };
  905. tsadc {
  906. otp_gpio: otp-gpio {
  907. rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_none>;
  908. };
  909. otp_out: otp-out {
  910. rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_none>;
  911. };
  912. };
  913. uart0 {
  914. uart0_xfer: uart0-xfer {
  915. rockchip,pins = <2 24 RK_FUNC_1 &pcfg_pull_up>,
  916. <2 25 RK_FUNC_1 &pcfg_pull_none>;
  917. };
  918. uart0_cts: uart0-cts {
  919. rockchip,pins = <2 26 RK_FUNC_1 &pcfg_pull_none>;
  920. };
  921. uart0_rts: uart0-rts {
  922. rockchip,pins = <2 27 RK_FUNC_1 &pcfg_pull_none>;
  923. };
  924. };
  925. uart1 {
  926. uart1_xfer: uart1-xfer {
  927. rockchip,pins = <0 20 RK_FUNC_3 &pcfg_pull_up>,
  928. <0 21 RK_FUNC_3 &pcfg_pull_none>;
  929. };
  930. uart1_cts: uart1-cts {
  931. rockchip,pins = <0 22 RK_FUNC_3 &pcfg_pull_none>;
  932. };
  933. uart1_rts: uart1-rts {
  934. rockchip,pins = <0 23 RK_FUNC_3 &pcfg_pull_none>;
  935. };
  936. };
  937. uart2 {
  938. uart2_xfer: uart2-xfer {
  939. rockchip,pins = <2 6 RK_FUNC_2 &pcfg_pull_up>,
  940. <2 5 RK_FUNC_2 &pcfg_pull_none>;
  941. };
  942. /* no rts / cts for uart2 */
  943. };
  944. uart3 {
  945. uart3_xfer: uart3-xfer {
  946. rockchip,pins = <3 29 RK_FUNC_2 &pcfg_pull_up>,
  947. <3 30 RK_FUNC_3 &pcfg_pull_none>;
  948. };
  949. uart3_cts: uart3-cts {
  950. rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none>;
  951. };
  952. uart3_rts: uart3-rts {
  953. rockchip,pins = <3 17 RK_FUNC_2 &pcfg_pull_none>;
  954. };
  955. };
  956. uart4 {
  957. uart4_xfer: uart4-xfer {
  958. rockchip,pins = <0 27 RK_FUNC_3 &pcfg_pull_up>,
  959. <0 26 RK_FUNC_3 &pcfg_pull_none>;
  960. };
  961. uart4_cts: uart4-cts {
  962. rockchip,pins = <0 24 RK_FUNC_3 &pcfg_pull_none>;
  963. };
  964. uart4_rts: uart4-rts {
  965. rockchip,pins = <0 25 RK_FUNC_3 &pcfg_pull_none>;
  966. };
  967. };
  968. };
  969. };