rk3368.dtsi 34 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2015 Heiko Stuebner <[email protected]>
  4. */
  5. #include <dt-bindings/clock/rk3368-cru.h>
  6. #include <dt-bindings/gpio/gpio.h>
  7. #include <dt-bindings/interrupt-controller/irq.h>
  8. #include <dt-bindings/interrupt-controller/arm-gic.h>
  9. #include <dt-bindings/pinctrl/rockchip.h>
  10. #include <dt-bindings/power/rk3368-power.h>
  11. #include <dt-bindings/soc/rockchip,boot-mode.h>
  12. #include <dt-bindings/thermal/thermal.h>
  13. / {
  14. compatible = "rockchip,rk3368";
  15. interrupt-parent = <&gic>;
  16. #address-cells = <2>;
  17. #size-cells = <2>;
  18. aliases {
  19. ethernet0 = &gmac;
  20. i2c0 = &i2c0;
  21. i2c1 = &i2c1;
  22. i2c2 = &i2c2;
  23. i2c3 = &i2c3;
  24. i2c4 = &i2c4;
  25. i2c5 = &i2c5;
  26. serial0 = &uart0;
  27. serial1 = &uart1;
  28. serial2 = &uart2;
  29. serial3 = &uart3;
  30. serial4 = &uart4;
  31. spi0 = &spi0;
  32. spi1 = &spi1;
  33. spi2 = &spi2;
  34. };
  35. cpus {
  36. #address-cells = <0x2>;
  37. #size-cells = <0x0>;
  38. cpu-map {
  39. cluster0 {
  40. core0 {
  41. cpu = <&cpu_b0>;
  42. };
  43. core1 {
  44. cpu = <&cpu_b1>;
  45. };
  46. core2 {
  47. cpu = <&cpu_b2>;
  48. };
  49. core3 {
  50. cpu = <&cpu_b3>;
  51. };
  52. };
  53. cluster1 {
  54. core0 {
  55. cpu = <&cpu_l0>;
  56. };
  57. core1 {
  58. cpu = <&cpu_l1>;
  59. };
  60. core2 {
  61. cpu = <&cpu_l2>;
  62. };
  63. core3 {
  64. cpu = <&cpu_l3>;
  65. };
  66. };
  67. };
  68. cpu_l0: cpu@0 {
  69. device_type = "cpu";
  70. compatible = "arm,cortex-a53";
  71. reg = <0x0 0x0>;
  72. enable-method = "psci";
  73. #cooling-cells = <2>; /* min followed by max */
  74. };
  75. cpu_l1: cpu@1 {
  76. device_type = "cpu";
  77. compatible = "arm,cortex-a53";
  78. reg = <0x0 0x1>;
  79. enable-method = "psci";
  80. #cooling-cells = <2>; /* min followed by max */
  81. };
  82. cpu_l2: cpu@2 {
  83. device_type = "cpu";
  84. compatible = "arm,cortex-a53";
  85. reg = <0x0 0x2>;
  86. enable-method = "psci";
  87. #cooling-cells = <2>; /* min followed by max */
  88. };
  89. cpu_l3: cpu@3 {
  90. device_type = "cpu";
  91. compatible = "arm,cortex-a53";
  92. reg = <0x0 0x3>;
  93. enable-method = "psci";
  94. #cooling-cells = <2>; /* min followed by max */
  95. };
  96. cpu_b0: cpu@100 {
  97. device_type = "cpu";
  98. compatible = "arm,cortex-a53";
  99. reg = <0x0 0x100>;
  100. enable-method = "psci";
  101. #cooling-cells = <2>; /* min followed by max */
  102. };
  103. cpu_b1: cpu@101 {
  104. device_type = "cpu";
  105. compatible = "arm,cortex-a53";
  106. reg = <0x0 0x101>;
  107. enable-method = "psci";
  108. #cooling-cells = <2>; /* min followed by max */
  109. };
  110. cpu_b2: cpu@102 {
  111. device_type = "cpu";
  112. compatible = "arm,cortex-a53";
  113. reg = <0x0 0x102>;
  114. enable-method = "psci";
  115. #cooling-cells = <2>; /* min followed by max */
  116. };
  117. cpu_b3: cpu@103 {
  118. device_type = "cpu";
  119. compatible = "arm,cortex-a53";
  120. reg = <0x0 0x103>;
  121. enable-method = "psci";
  122. #cooling-cells = <2>; /* min followed by max */
  123. };
  124. };
  125. arm-pmu {
  126. compatible = "arm,armv8-pmuv3";
  127. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
  128. <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
  129. <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
  130. <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
  131. <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
  132. <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
  133. <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
  134. <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
  135. interrupt-affinity = <&cpu_l0>, <&cpu_l1>, <&cpu_l2>,
  136. <&cpu_l3>, <&cpu_b0>, <&cpu_b1>,
  137. <&cpu_b2>, <&cpu_b3>;
  138. };
  139. psci {
  140. compatible = "arm,psci-0.2";
  141. method = "smc";
  142. };
  143. timer {
  144. compatible = "arm,armv8-timer";
  145. interrupts = <GIC_PPI 13
  146. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
  147. <GIC_PPI 14
  148. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
  149. <GIC_PPI 11
  150. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
  151. <GIC_PPI 10
  152. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
  153. };
  154. xin24m: oscillator {
  155. compatible = "fixed-clock";
  156. clock-frequency = <24000000>;
  157. clock-output-names = "xin24m";
  158. #clock-cells = <0>;
  159. };
  160. sdmmc: mmc@ff0c0000 {
  161. compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
  162. reg = <0x0 0xff0c0000 0x0 0x4000>;
  163. max-frequency = <150000000>;
  164. clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
  165. <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
  166. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  167. fifo-depth = <0x100>;
  168. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  169. resets = <&cru SRST_MMC0>;
  170. reset-names = "reset";
  171. status = "disabled";
  172. };
  173. sdio0: mmc@ff0d0000 {
  174. compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
  175. reg = <0x0 0xff0d0000 0x0 0x4000>;
  176. max-frequency = <150000000>;
  177. clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
  178. <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
  179. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  180. fifo-depth = <0x100>;
  181. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  182. resets = <&cru SRST_SDIO0>;
  183. reset-names = "reset";
  184. status = "disabled";
  185. };
  186. emmc: mmc@ff0f0000 {
  187. compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
  188. reg = <0x0 0xff0f0000 0x0 0x4000>;
  189. max-frequency = <150000000>;
  190. clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
  191. <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
  192. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  193. fifo-depth = <0x100>;
  194. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  195. resets = <&cru SRST_EMMC>;
  196. reset-names = "reset";
  197. status = "disabled";
  198. };
  199. saradc: saradc@ff100000 {
  200. compatible = "rockchip,saradc";
  201. reg = <0x0 0xff100000 0x0 0x100>;
  202. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  203. #io-channel-cells = <1>;
  204. clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
  205. clock-names = "saradc", "apb_pclk";
  206. resets = <&cru SRST_SARADC>;
  207. reset-names = "saradc-apb";
  208. status = "disabled";
  209. };
  210. spi0: spi@ff110000 {
  211. compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
  212. reg = <0x0 0xff110000 0x0 0x1000>;
  213. clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
  214. clock-names = "spiclk", "apb_pclk";
  215. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  216. pinctrl-names = "default";
  217. pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
  218. #address-cells = <1>;
  219. #size-cells = <0>;
  220. status = "disabled";
  221. };
  222. spi1: spi@ff120000 {
  223. compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
  224. reg = <0x0 0xff120000 0x0 0x1000>;
  225. clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
  226. clock-names = "spiclk", "apb_pclk";
  227. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  228. pinctrl-names = "default";
  229. pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
  230. #address-cells = <1>;
  231. #size-cells = <0>;
  232. status = "disabled";
  233. };
  234. spi2: spi@ff130000 {
  235. compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
  236. reg = <0x0 0xff130000 0x0 0x1000>;
  237. clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
  238. clock-names = "spiclk", "apb_pclk";
  239. interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
  240. pinctrl-names = "default";
  241. pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
  242. #address-cells = <1>;
  243. #size-cells = <0>;
  244. status = "disabled";
  245. };
  246. i2c2: i2c@ff140000 {
  247. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  248. reg = <0x0 0xff140000 0x0 0x1000>;
  249. interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
  250. #address-cells = <1>;
  251. #size-cells = <0>;
  252. clock-names = "i2c";
  253. clocks = <&cru PCLK_I2C2>;
  254. pinctrl-names = "default";
  255. pinctrl-0 = <&i2c2_xfer>;
  256. status = "disabled";
  257. };
  258. i2c3: i2c@ff150000 {
  259. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  260. reg = <0x0 0xff150000 0x0 0x1000>;
  261. interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
  262. #address-cells = <1>;
  263. #size-cells = <0>;
  264. clock-names = "i2c";
  265. clocks = <&cru PCLK_I2C3>;
  266. pinctrl-names = "default";
  267. pinctrl-0 = <&i2c3_xfer>;
  268. status = "disabled";
  269. };
  270. i2c4: i2c@ff160000 {
  271. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  272. reg = <0x0 0xff160000 0x0 0x1000>;
  273. interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
  274. #address-cells = <1>;
  275. #size-cells = <0>;
  276. clock-names = "i2c";
  277. clocks = <&cru PCLK_I2C4>;
  278. pinctrl-names = "default";
  279. pinctrl-0 = <&i2c4_xfer>;
  280. status = "disabled";
  281. };
  282. i2c5: i2c@ff170000 {
  283. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  284. reg = <0x0 0xff170000 0x0 0x1000>;
  285. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
  286. #address-cells = <1>;
  287. #size-cells = <0>;
  288. clock-names = "i2c";
  289. clocks = <&cru PCLK_I2C5>;
  290. pinctrl-names = "default";
  291. pinctrl-0 = <&i2c5_xfer>;
  292. status = "disabled";
  293. };
  294. uart0: serial@ff180000 {
  295. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  296. reg = <0x0 0xff180000 0x0 0x100>;
  297. clock-frequency = <24000000>;
  298. clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
  299. clock-names = "baudclk", "apb_pclk";
  300. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  301. reg-shift = <2>;
  302. reg-io-width = <4>;
  303. status = "disabled";
  304. };
  305. uart1: serial@ff190000 {
  306. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  307. reg = <0x0 0xff190000 0x0 0x100>;
  308. clock-frequency = <24000000>;
  309. clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
  310. clock-names = "baudclk", "apb_pclk";
  311. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  312. reg-shift = <2>;
  313. reg-io-width = <4>;
  314. status = "disabled";
  315. };
  316. uart3: serial@ff1b0000 {
  317. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  318. reg = <0x0 0xff1b0000 0x0 0x100>;
  319. clock-frequency = <24000000>;
  320. clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
  321. clock-names = "baudclk", "apb_pclk";
  322. interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
  323. reg-shift = <2>;
  324. reg-io-width = <4>;
  325. status = "disabled";
  326. };
  327. uart4: serial@ff1c0000 {
  328. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  329. reg = <0x0 0xff1c0000 0x0 0x100>;
  330. clock-frequency = <24000000>;
  331. clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
  332. clock-names = "baudclk", "apb_pclk";
  333. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
  334. reg-shift = <2>;
  335. reg-io-width = <4>;
  336. status = "disabled";
  337. };
  338. dmac_peri: dma-controller@ff250000 {
  339. compatible = "arm,pl330", "arm,primecell";
  340. reg = <0x0 0xff250000 0x0 0x4000>;
  341. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
  342. <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
  343. #dma-cells = <1>;
  344. arm,pl330-broken-no-flushp;
  345. arm,pl330-periph-burst;
  346. clocks = <&cru ACLK_DMAC_PERI>;
  347. clock-names = "apb_pclk";
  348. };
  349. thermal-zones {
  350. cpu_thermal: cpu-thermal {
  351. polling-delay-passive = <100>; /* milliseconds */
  352. polling-delay = <5000>; /* milliseconds */
  353. thermal-sensors = <&tsadc 0>;
  354. trips {
  355. cpu_alert0: cpu_alert0 {
  356. temperature = <75000>; /* millicelsius */
  357. hysteresis = <2000>; /* millicelsius */
  358. type = "passive";
  359. };
  360. cpu_alert1: cpu_alert1 {
  361. temperature = <80000>; /* millicelsius */
  362. hysteresis = <2000>; /* millicelsius */
  363. type = "passive";
  364. };
  365. cpu_crit: cpu_crit {
  366. temperature = <95000>; /* millicelsius */
  367. hysteresis = <2000>; /* millicelsius */
  368. type = "critical";
  369. };
  370. };
  371. cooling-maps {
  372. map0 {
  373. trip = <&cpu_alert0>;
  374. cooling-device =
  375. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  376. <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  377. <&cpu_b2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  378. <&cpu_b3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  379. };
  380. map1 {
  381. trip = <&cpu_alert1>;
  382. cooling-device =
  383. <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  384. <&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  385. <&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  386. <&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  387. };
  388. };
  389. };
  390. gpu_thermal: gpu-thermal {
  391. polling-delay-passive = <100>; /* milliseconds */
  392. polling-delay = <5000>; /* milliseconds */
  393. thermal-sensors = <&tsadc 1>;
  394. trips {
  395. gpu_alert0: gpu_alert0 {
  396. temperature = <80000>; /* millicelsius */
  397. hysteresis = <2000>; /* millicelsius */
  398. type = "passive";
  399. };
  400. gpu_crit: gpu_crit {
  401. temperature = <115000>; /* millicelsius */
  402. hysteresis = <2000>; /* millicelsius */
  403. type = "critical";
  404. };
  405. };
  406. cooling-maps {
  407. map0 {
  408. trip = <&gpu_alert0>;
  409. cooling-device =
  410. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  411. <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  412. <&cpu_b2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  413. <&cpu_b3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  414. };
  415. };
  416. };
  417. };
  418. tsadc: tsadc@ff280000 {
  419. compatible = "rockchip,rk3368-tsadc";
  420. reg = <0x0 0xff280000 0x0 0x100>;
  421. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  422. clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
  423. clock-names = "tsadc", "apb_pclk";
  424. resets = <&cru SRST_TSADC>;
  425. reset-names = "tsadc-apb";
  426. pinctrl-names = "init", "default", "sleep";
  427. pinctrl-0 = <&otp_pin>;
  428. pinctrl-1 = <&otp_out>;
  429. pinctrl-2 = <&otp_pin>;
  430. #thermal-sensor-cells = <1>;
  431. rockchip,hw-tshut-temp = <95000>;
  432. status = "disabled";
  433. };
  434. gmac: ethernet@ff290000 {
  435. compatible = "rockchip,rk3368-gmac";
  436. reg = <0x0 0xff290000 0x0 0x10000>;
  437. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  438. interrupt-names = "macirq";
  439. rockchip,grf = <&grf>;
  440. clocks = <&cru SCLK_MAC>,
  441. <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
  442. <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
  443. <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
  444. clock-names = "stmmaceth",
  445. "mac_clk_rx", "mac_clk_tx",
  446. "clk_mac_ref", "clk_mac_refout",
  447. "aclk_mac", "pclk_mac";
  448. status = "disabled";
  449. };
  450. usb_host0_ehci: usb@ff500000 {
  451. compatible = "generic-ehci";
  452. reg = <0x0 0xff500000 0x0 0x100>;
  453. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
  454. clocks = <&cru HCLK_HOST0>;
  455. status = "disabled";
  456. };
  457. usb_otg: usb@ff580000 {
  458. compatible = "rockchip,rk3368-usb", "rockchip,rk3066-usb",
  459. "snps,dwc2";
  460. reg = <0x0 0xff580000 0x0 0x40000>;
  461. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  462. clocks = <&cru HCLK_OTG0>;
  463. clock-names = "otg";
  464. dr_mode = "otg";
  465. g-np-tx-fifo-size = <16>;
  466. g-rx-fifo-size = <275>;
  467. g-tx-fifo-size = <256 128 128 64 64 32>;
  468. status = "disabled";
  469. };
  470. dmac_bus: dma-controller@ff600000 {
  471. compatible = "arm,pl330", "arm,primecell";
  472. reg = <0x0 0xff600000 0x0 0x4000>;
  473. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  474. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
  475. #dma-cells = <1>;
  476. arm,pl330-broken-no-flushp;
  477. arm,pl330-periph-burst;
  478. clocks = <&cru ACLK_DMAC_BUS>;
  479. clock-names = "apb_pclk";
  480. };
  481. i2c0: i2c@ff650000 {
  482. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  483. reg = <0x0 0xff650000 0x0 0x1000>;
  484. clocks = <&cru PCLK_I2C0>;
  485. clock-names = "i2c";
  486. interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
  487. pinctrl-names = "default";
  488. pinctrl-0 = <&i2c0_xfer>;
  489. #address-cells = <1>;
  490. #size-cells = <0>;
  491. status = "disabled";
  492. };
  493. i2c1: i2c@ff660000 {
  494. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  495. reg = <0x0 0xff660000 0x0 0x1000>;
  496. interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
  497. #address-cells = <1>;
  498. #size-cells = <0>;
  499. clock-names = "i2c";
  500. clocks = <&cru PCLK_I2C1>;
  501. pinctrl-names = "default";
  502. pinctrl-0 = <&i2c1_xfer>;
  503. status = "disabled";
  504. };
  505. pwm0: pwm@ff680000 {
  506. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  507. reg = <0x0 0xff680000 0x0 0x10>;
  508. #pwm-cells = <3>;
  509. pinctrl-names = "default";
  510. pinctrl-0 = <&pwm0_pin>;
  511. clocks = <&cru PCLK_PWM1>;
  512. status = "disabled";
  513. };
  514. pwm1: pwm@ff680010 {
  515. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  516. reg = <0x0 0xff680010 0x0 0x10>;
  517. #pwm-cells = <3>;
  518. pinctrl-names = "default";
  519. pinctrl-0 = <&pwm1_pin>;
  520. clocks = <&cru PCLK_PWM1>;
  521. status = "disabled";
  522. };
  523. pwm2: pwm@ff680020 {
  524. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  525. reg = <0x0 0xff680020 0x0 0x10>;
  526. #pwm-cells = <3>;
  527. clocks = <&cru PCLK_PWM1>;
  528. status = "disabled";
  529. };
  530. pwm3: pwm@ff680030 {
  531. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  532. reg = <0x0 0xff680030 0x0 0x10>;
  533. #pwm-cells = <3>;
  534. pinctrl-names = "default";
  535. pinctrl-0 = <&pwm3_pin>;
  536. clocks = <&cru PCLK_PWM1>;
  537. status = "disabled";
  538. };
  539. uart2: serial@ff690000 {
  540. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  541. reg = <0x0 0xff690000 0x0 0x100>;
  542. clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
  543. clock-names = "baudclk", "apb_pclk";
  544. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  545. pinctrl-names = "default";
  546. pinctrl-0 = <&uart2_xfer>;
  547. reg-shift = <2>;
  548. reg-io-width = <4>;
  549. status = "disabled";
  550. };
  551. mbox: mbox@ff6b0000 {
  552. compatible = "rockchip,rk3368-mailbox";
  553. reg = <0x0 0xff6b0000 0x0 0x1000>;
  554. interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
  555. <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
  556. <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
  557. <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
  558. clocks = <&cru PCLK_MAILBOX>;
  559. clock-names = "pclk_mailbox";
  560. #mbox-cells = <1>;
  561. status = "disabled";
  562. };
  563. pmu: power-management@ff730000 {
  564. compatible = "rockchip,rk3368-pmu", "syscon", "simple-mfd";
  565. reg = <0x0 0xff730000 0x0 0x1000>;
  566. power: power-controller {
  567. compatible = "rockchip,rk3368-power-controller";
  568. #power-domain-cells = <1>;
  569. #address-cells = <1>;
  570. #size-cells = <0>;
  571. /*
  572. * Note: Although SCLK_* are the working clocks
  573. * of device without including on the NOC, needed for
  574. * synchronous reset.
  575. *
  576. * The clocks on the which NOC:
  577. * ACLK_IEP/ACLK_VIP/ACLK_VOP0 are on ACLK_VIO0_NIU.
  578. * ACLK_ISP/ACLK_VOP1 are on ACLK_VIO1_NIU.
  579. * ACLK_RGA is on ACLK_RGA_NIU.
  580. * The others (HCLK_*,PLCK_*) are on HCLK_VIO_NIU.
  581. *
  582. * Which clock are device clocks:
  583. * clocks devices
  584. * *_IEP IEP:Image Enhancement Processor
  585. * *_ISP ISP:Image Signal Processing
  586. * *_VIP VIP:Video Input Processor
  587. * *_VOP* VOP:Visual Output Processor
  588. * *_RGA RGA
  589. * *_EDP* EDP
  590. * *_DPHY* LVDS
  591. * *_HDMI HDMI
  592. * *_MIPI_* MIPI
  593. */
  594. power-domain@RK3368_PD_VIO {
  595. reg = <RK3368_PD_VIO>;
  596. clocks = <&cru ACLK_IEP>,
  597. <&cru ACLK_ISP>,
  598. <&cru ACLK_VIP>,
  599. <&cru ACLK_RGA>,
  600. <&cru ACLK_VOP>,
  601. <&cru ACLK_VOP_IEP>,
  602. <&cru DCLK_VOP>,
  603. <&cru HCLK_IEP>,
  604. <&cru HCLK_ISP>,
  605. <&cru HCLK_RGA>,
  606. <&cru HCLK_VIP>,
  607. <&cru HCLK_VOP>,
  608. <&cru HCLK_VIO_HDCPMMU>,
  609. <&cru PCLK_EDP_CTRL>,
  610. <&cru PCLK_HDMI_CTRL>,
  611. <&cru PCLK_HDCP>,
  612. <&cru PCLK_ISP>,
  613. <&cru PCLK_VIP>,
  614. <&cru PCLK_DPHYRX>,
  615. <&cru PCLK_DPHYTX0>,
  616. <&cru PCLK_MIPI_CSI>,
  617. <&cru PCLK_MIPI_DSI0>,
  618. <&cru SCLK_VOP0_PWM>,
  619. <&cru SCLK_EDP_24M>,
  620. <&cru SCLK_EDP>,
  621. <&cru SCLK_HDCP>,
  622. <&cru SCLK_ISP>,
  623. <&cru SCLK_RGA>,
  624. <&cru SCLK_HDMI_CEC>,
  625. <&cru SCLK_HDMI_HDCP>;
  626. pm_qos = <&qos_iep>,
  627. <&qos_isp_r0>,
  628. <&qos_isp_r1>,
  629. <&qos_isp_w0>,
  630. <&qos_isp_w1>,
  631. <&qos_vip>,
  632. <&qos_vop>,
  633. <&qos_rga_r>,
  634. <&qos_rga_w>;
  635. #power-domain-cells = <0>;
  636. };
  637. /*
  638. * Note: ACLK_VCODEC/HCLK_VCODEC are VCODEC
  639. * (video endecoder & decoder) clocks that on the
  640. * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
  641. */
  642. power-domain@RK3368_PD_VIDEO {
  643. reg = <RK3368_PD_VIDEO>;
  644. clocks = <&cru ACLK_VIDEO>,
  645. <&cru HCLK_VIDEO>,
  646. <&cru SCLK_HEVC_CABAC>,
  647. <&cru SCLK_HEVC_CORE>;
  648. pm_qos = <&qos_hevc_r>,
  649. <&qos_vpu_r>,
  650. <&qos_vpu_w>;
  651. #power-domain-cells = <0>;
  652. };
  653. /*
  654. * Note: ACLK_GPU is the GPU clock,
  655. * and on the ACLK_GPU_NIU (NOC).
  656. */
  657. power-domain@RK3368_PD_GPU_1 {
  658. reg = <RK3368_PD_GPU_1>;
  659. clocks = <&cru ACLK_GPU_CFG>,
  660. <&cru ACLK_GPU_MEM>,
  661. <&cru SCLK_GPU_CORE>;
  662. pm_qos = <&qos_gpu>;
  663. #power-domain-cells = <0>;
  664. };
  665. };
  666. };
  667. pmugrf: syscon@ff738000 {
  668. compatible = "rockchip,rk3368-pmugrf", "syscon", "simple-mfd";
  669. reg = <0x0 0xff738000 0x0 0x1000>;
  670. pmu_io_domains: io-domains {
  671. compatible = "rockchip,rk3368-pmu-io-voltage-domain";
  672. status = "disabled";
  673. };
  674. reboot-mode {
  675. compatible = "syscon-reboot-mode";
  676. offset = <0x200>;
  677. mode-normal = <BOOT_NORMAL>;
  678. mode-recovery = <BOOT_RECOVERY>;
  679. mode-bootloader = <BOOT_FASTBOOT>;
  680. mode-loader = <BOOT_BL_DOWNLOAD>;
  681. };
  682. };
  683. cru: clock-controller@ff760000 {
  684. compatible = "rockchip,rk3368-cru";
  685. reg = <0x0 0xff760000 0x0 0x1000>;
  686. clocks = <&xin24m>;
  687. clock-names = "xin24m";
  688. rockchip,grf = <&grf>;
  689. #clock-cells = <1>;
  690. #reset-cells = <1>;
  691. };
  692. grf: syscon@ff770000 {
  693. compatible = "rockchip,rk3368-grf", "syscon", "simple-mfd";
  694. reg = <0x0 0xff770000 0x0 0x1000>;
  695. io_domains: io-domains {
  696. compatible = "rockchip,rk3368-io-voltage-domain";
  697. status = "disabled";
  698. };
  699. };
  700. wdt: watchdog@ff800000 {
  701. compatible = "rockchip,rk3368-wdt", "snps,dw-wdt";
  702. reg = <0x0 0xff800000 0x0 0x100>;
  703. clocks = <&cru PCLK_WDT>;
  704. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  705. status = "disabled";
  706. };
  707. timer0: timer@ff810000 {
  708. compatible = "rockchip,rk3368-timer", "rockchip,rk3288-timer";
  709. reg = <0x0 0xff810000 0x0 0x20>;
  710. interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
  711. clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
  712. clock-names = "pclk", "timer";
  713. };
  714. spdif: spdif@ff880000 {
  715. compatible = "rockchip,rk3368-spdif";
  716. reg = <0x0 0xff880000 0x0 0x1000>;
  717. interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
  718. clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
  719. clock-names = "mclk", "hclk";
  720. dmas = <&dmac_bus 3>;
  721. dma-names = "tx";
  722. pinctrl-names = "default";
  723. pinctrl-0 = <&spdif_tx>;
  724. status = "disabled";
  725. };
  726. i2s_2ch: i2s-2ch@ff890000 {
  727. compatible = "rockchip,rk3368-i2s", "rockchip,rk3066-i2s";
  728. reg = <0x0 0xff890000 0x0 0x1000>;
  729. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
  730. clock-names = "i2s_clk", "i2s_hclk";
  731. clocks = <&cru SCLK_I2S_2CH>, <&cru HCLK_I2S_2CH>;
  732. dmas = <&dmac_bus 6>, <&dmac_bus 7>;
  733. dma-names = "tx", "rx";
  734. status = "disabled";
  735. };
  736. i2s_8ch: i2s-8ch@ff898000 {
  737. compatible = "rockchip,rk3368-i2s", "rockchip,rk3066-i2s";
  738. reg = <0x0 0xff898000 0x0 0x1000>;
  739. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  740. clock-names = "i2s_clk", "i2s_hclk";
  741. clocks = <&cru SCLK_I2S_8CH>, <&cru HCLK_I2S_8CH>;
  742. dmas = <&dmac_bus 0>, <&dmac_bus 1>;
  743. dma-names = "tx", "rx";
  744. pinctrl-names = "default";
  745. pinctrl-0 = <&i2s_8ch_bus>;
  746. status = "disabled";
  747. };
  748. iep_mmu: iommu@ff900800 {
  749. compatible = "rockchip,iommu";
  750. reg = <0x0 0xff900800 0x0 0x100>;
  751. interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
  752. clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
  753. clock-names = "aclk", "iface";
  754. power-domains = <&power RK3368_PD_VIO>;
  755. #iommu-cells = <0>;
  756. status = "disabled";
  757. };
  758. isp_mmu: iommu@ff914000 {
  759. compatible = "rockchip,iommu";
  760. reg = <0x0 0xff914000 0x0 0x100>,
  761. <0x0 0xff915000 0x0 0x100>;
  762. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  763. clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>;
  764. clock-names = "aclk", "iface";
  765. #iommu-cells = <0>;
  766. power-domains = <&power RK3368_PD_VIO>;
  767. rockchip,disable-mmu-reset;
  768. status = "disabled";
  769. };
  770. vop_mmu: iommu@ff930300 {
  771. compatible = "rockchip,iommu";
  772. reg = <0x0 0xff930300 0x0 0x100>;
  773. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  774. clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
  775. clock-names = "aclk", "iface";
  776. power-domains = <&power RK3368_PD_VIO>;
  777. #iommu-cells = <0>;
  778. status = "disabled";
  779. };
  780. hevc_mmu: iommu@ff9a0440 {
  781. compatible = "rockchip,iommu";
  782. reg = <0x0 0xff9a0440 0x0 0x40>,
  783. <0x0 0xff9a0480 0x0 0x40>;
  784. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  785. clocks = <&cru ACLK_VIDEO>, <&cru HCLK_VIDEO>;
  786. clock-names = "aclk", "iface";
  787. #iommu-cells = <0>;
  788. status = "disabled";
  789. };
  790. vpu_mmu: iommu@ff9a0800 {
  791. compatible = "rockchip,iommu";
  792. reg = <0x0 0xff9a0800 0x0 0x100>;
  793. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
  794. <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  795. clocks = <&cru ACLK_VIDEO>, <&cru HCLK_VIDEO>;
  796. clock-names = "aclk", "iface";
  797. #iommu-cells = <0>;
  798. status = "disabled";
  799. };
  800. qos_iep: qos@ffad0000 {
  801. compatible = "rockchip,rk3368-qos", "syscon";
  802. reg = <0x0 0xffad0000 0x0 0x20>;
  803. };
  804. qos_isp_r0: qos@ffad0080 {
  805. compatible = "rockchip,rk3368-qos", "syscon";
  806. reg = <0x0 0xffad0080 0x0 0x20>;
  807. };
  808. qos_isp_r1: qos@ffad0100 {
  809. compatible = "rockchip,rk3368-qos", "syscon";
  810. reg = <0x0 0xffad0100 0x0 0x20>;
  811. };
  812. qos_isp_w0: qos@ffad0180 {
  813. compatible = "rockchip,rk3368-qos", "syscon";
  814. reg = <0x0 0xffad0180 0x0 0x20>;
  815. };
  816. qos_isp_w1: qos@ffad0200 {
  817. compatible = "rockchip,rk3368-qos", "syscon";
  818. reg = <0x0 0xffad0200 0x0 0x20>;
  819. };
  820. qos_vip: qos@ffad0280 {
  821. compatible = "rockchip,rk3368-qos", "syscon";
  822. reg = <0x0 0xffad0280 0x0 0x20>;
  823. };
  824. qos_vop: qos@ffad0300 {
  825. compatible = "rockchip,rk3368-qos", "syscon";
  826. reg = <0x0 0xffad0300 0x0 0x20>;
  827. };
  828. qos_rga_r: qos@ffad0380 {
  829. compatible = "rockchip,rk3368-qos", "syscon";
  830. reg = <0x0 0xffad0380 0x0 0x20>;
  831. };
  832. qos_rga_w: qos@ffad0400 {
  833. compatible = "rockchip,rk3368-qos", "syscon";
  834. reg = <0x0 0xffad0400 0x0 0x20>;
  835. };
  836. qos_hevc_r: qos@ffae0000 {
  837. compatible = "rockchip,rk3368-qos", "syscon";
  838. reg = <0x0 0xffae0000 0x0 0x20>;
  839. };
  840. qos_vpu_r: qos@ffae0100 {
  841. compatible = "rockchip,rk3368-qos", "syscon";
  842. reg = <0x0 0xffae0100 0x0 0x20>;
  843. };
  844. qos_vpu_w: qos@ffae0180 {
  845. compatible = "rockchip,rk3368-qos", "syscon";
  846. reg = <0x0 0xffae0180 0x0 0x20>;
  847. };
  848. qos_gpu: qos@ffaf0000 {
  849. compatible = "rockchip,rk3368-qos", "syscon";
  850. reg = <0x0 0xffaf0000 0x0 0x20>;
  851. };
  852. efuse256: efuse@ffb00000 {
  853. compatible = "rockchip,rk3368-efuse";
  854. reg = <0x0 0xffb00000 0x0 0x20>;
  855. #address-cells = <1>;
  856. #size-cells = <1>;
  857. clocks = <&cru PCLK_EFUSE256>;
  858. clock-names = "pclk_efuse";
  859. cpu_leakage: cpu-leakage@17 {
  860. reg = <0x17 0x1>;
  861. };
  862. temp_adjust: temp-adjust@1f {
  863. reg = <0x1f 0x1>;
  864. };
  865. };
  866. gic: interrupt-controller@ffb71000 {
  867. compatible = "arm,gic-400";
  868. interrupt-controller;
  869. #interrupt-cells = <3>;
  870. #address-cells = <0>;
  871. reg = <0x0 0xffb71000 0x0 0x1000>,
  872. <0x0 0xffb72000 0x0 0x2000>,
  873. <0x0 0xffb74000 0x0 0x2000>,
  874. <0x0 0xffb76000 0x0 0x2000>;
  875. interrupts = <GIC_PPI 9
  876. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
  877. };
  878. pinctrl: pinctrl {
  879. compatible = "rockchip,rk3368-pinctrl";
  880. rockchip,grf = <&grf>;
  881. rockchip,pmu = <&pmugrf>;
  882. #address-cells = <0x2>;
  883. #size-cells = <0x2>;
  884. ranges;
  885. gpio0: gpio@ff750000 {
  886. compatible = "rockchip,gpio-bank";
  887. reg = <0x0 0xff750000 0x0 0x100>;
  888. clocks = <&cru PCLK_GPIO0>;
  889. interrupts = <GIC_SPI 0x51 IRQ_TYPE_LEVEL_HIGH>;
  890. gpio-controller;
  891. #gpio-cells = <0x2>;
  892. interrupt-controller;
  893. #interrupt-cells = <0x2>;
  894. };
  895. gpio1: gpio@ff780000 {
  896. compatible = "rockchip,gpio-bank";
  897. reg = <0x0 0xff780000 0x0 0x100>;
  898. clocks = <&cru PCLK_GPIO1>;
  899. interrupts = <GIC_SPI 0x52 IRQ_TYPE_LEVEL_HIGH>;
  900. gpio-controller;
  901. #gpio-cells = <0x2>;
  902. interrupt-controller;
  903. #interrupt-cells = <0x2>;
  904. };
  905. gpio2: gpio@ff790000 {
  906. compatible = "rockchip,gpio-bank";
  907. reg = <0x0 0xff790000 0x0 0x100>;
  908. clocks = <&cru PCLK_GPIO2>;
  909. interrupts = <GIC_SPI 0x53 IRQ_TYPE_LEVEL_HIGH>;
  910. gpio-controller;
  911. #gpio-cells = <0x2>;
  912. interrupt-controller;
  913. #interrupt-cells = <0x2>;
  914. };
  915. gpio3: gpio@ff7a0000 {
  916. compatible = "rockchip,gpio-bank";
  917. reg = <0x0 0xff7a0000 0x0 0x100>;
  918. clocks = <&cru PCLK_GPIO3>;
  919. interrupts = <GIC_SPI 0x54 IRQ_TYPE_LEVEL_HIGH>;
  920. gpio-controller;
  921. #gpio-cells = <0x2>;
  922. interrupt-controller;
  923. #interrupt-cells = <0x2>;
  924. };
  925. pcfg_pull_up: pcfg-pull-up {
  926. bias-pull-up;
  927. };
  928. pcfg_pull_down: pcfg-pull-down {
  929. bias-pull-down;
  930. };
  931. pcfg_pull_none: pcfg-pull-none {
  932. bias-disable;
  933. };
  934. pcfg_pull_none_12ma: pcfg-pull-none-12ma {
  935. bias-disable;
  936. drive-strength = <12>;
  937. };
  938. emmc {
  939. emmc_clk: emmc-clk {
  940. rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>;
  941. };
  942. emmc_cmd: emmc-cmd {
  943. rockchip,pins = <1 RK_PD2 2 &pcfg_pull_up>;
  944. };
  945. emmc_pwr: emmc-pwr {
  946. rockchip,pins = <1 RK_PD3 2 &pcfg_pull_up>;
  947. };
  948. emmc_bus1: emmc-bus1 {
  949. rockchip,pins = <1 RK_PC2 2 &pcfg_pull_up>;
  950. };
  951. emmc_bus4: emmc-bus4 {
  952. rockchip,pins = <1 RK_PC2 2 &pcfg_pull_up>,
  953. <1 RK_PC3 2 &pcfg_pull_up>,
  954. <1 RK_PC4 2 &pcfg_pull_up>,
  955. <1 RK_PC5 2 &pcfg_pull_up>;
  956. };
  957. emmc_bus8: emmc-bus8 {
  958. rockchip,pins = <1 RK_PC2 2 &pcfg_pull_up>,
  959. <1 RK_PC3 2 &pcfg_pull_up>,
  960. <1 RK_PC4 2 &pcfg_pull_up>,
  961. <1 RK_PC5 2 &pcfg_pull_up>,
  962. <1 RK_PC6 2 &pcfg_pull_up>,
  963. <1 RK_PC7 2 &pcfg_pull_up>,
  964. <1 RK_PD0 2 &pcfg_pull_up>,
  965. <1 RK_PD1 2 &pcfg_pull_up>;
  966. };
  967. };
  968. gmac {
  969. rgmii_pins: rgmii-pins {
  970. rockchip,pins = <3 RK_PC6 1 &pcfg_pull_none>,
  971. <3 RK_PD0 1 &pcfg_pull_none>,
  972. <3 RK_PC3 1 &pcfg_pull_none>,
  973. <3 RK_PB0 1 &pcfg_pull_none_12ma>,
  974. <3 RK_PB1 1 &pcfg_pull_none_12ma>,
  975. <3 RK_PB2 1 &pcfg_pull_none_12ma>,
  976. <3 RK_PB6 1 &pcfg_pull_none_12ma>,
  977. <3 RK_PD4 1 &pcfg_pull_none_12ma>,
  978. <3 RK_PB5 1 &pcfg_pull_none_12ma>,
  979. <3 RK_PB7 1 &pcfg_pull_none>,
  980. <3 RK_PC0 1 &pcfg_pull_none>,
  981. <3 RK_PC1 1 &pcfg_pull_none>,
  982. <3 RK_PC2 1 &pcfg_pull_none>,
  983. <3 RK_PD1 1 &pcfg_pull_none>,
  984. <3 RK_PC4 1 &pcfg_pull_none>;
  985. };
  986. rmii_pins: rmii-pins {
  987. rockchip,pins = <3 RK_PC6 1 &pcfg_pull_none>,
  988. <3 RK_PD0 1 &pcfg_pull_none>,
  989. <3 RK_PC3 1 &pcfg_pull_none>,
  990. <3 RK_PB0 1 &pcfg_pull_none_12ma>,
  991. <3 RK_PB1 1 &pcfg_pull_none_12ma>,
  992. <3 RK_PB5 1 &pcfg_pull_none_12ma>,
  993. <3 RK_PB7 1 &pcfg_pull_none>,
  994. <3 RK_PC0 1 &pcfg_pull_none>,
  995. <3 RK_PC4 1 &pcfg_pull_none>,
  996. <3 RK_PC5 1 &pcfg_pull_none>;
  997. };
  998. };
  999. i2c0 {
  1000. i2c0_xfer: i2c0-xfer {
  1001. rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>,
  1002. <0 RK_PA7 1 &pcfg_pull_none>;
  1003. };
  1004. };
  1005. i2c1 {
  1006. i2c1_xfer: i2c1-xfer {
  1007. rockchip,pins = <2 RK_PC5 1 &pcfg_pull_none>,
  1008. <2 RK_PC6 1 &pcfg_pull_none>;
  1009. };
  1010. };
  1011. i2c2 {
  1012. i2c2_xfer: i2c2-xfer {
  1013. rockchip,pins = <0 RK_PB1 2 &pcfg_pull_none>,
  1014. <3 RK_PD7 2 &pcfg_pull_none>;
  1015. };
  1016. };
  1017. i2c3 {
  1018. i2c3_xfer: i2c3-xfer {
  1019. rockchip,pins = <1 RK_PC0 1 &pcfg_pull_none>,
  1020. <1 RK_PC1 1 &pcfg_pull_none>;
  1021. };
  1022. };
  1023. i2c4 {
  1024. i2c4_xfer: i2c4-xfer {
  1025. rockchip,pins = <3 RK_PD0 2 &pcfg_pull_none>,
  1026. <3 RK_PD1 2 &pcfg_pull_none>;
  1027. };
  1028. };
  1029. i2c5 {
  1030. i2c5_xfer: i2c5-xfer {
  1031. rockchip,pins = <3 RK_PD2 2 &pcfg_pull_none>,
  1032. <3 RK_PD3 2 &pcfg_pull_none>;
  1033. };
  1034. };
  1035. i2s {
  1036. i2s_8ch_bus: i2s-8ch-bus {
  1037. rockchip,pins = <2 RK_PB4 1 &pcfg_pull_none>,
  1038. <2 RK_PB5 1 &pcfg_pull_none>,
  1039. <2 RK_PB6 1 &pcfg_pull_none>,
  1040. <2 RK_PB7 1 &pcfg_pull_none>,
  1041. <2 RK_PC0 1 &pcfg_pull_none>,
  1042. <2 RK_PC1 1 &pcfg_pull_none>,
  1043. <2 RK_PC2 1 &pcfg_pull_none>,
  1044. <2 RK_PC3 1 &pcfg_pull_none>,
  1045. <2 RK_PC4 1 &pcfg_pull_none>;
  1046. };
  1047. };
  1048. pwm0 {
  1049. pwm0_pin: pwm0-pin {
  1050. rockchip,pins = <3 RK_PB0 2 &pcfg_pull_none>;
  1051. };
  1052. };
  1053. pwm1 {
  1054. pwm1_pin: pwm1-pin {
  1055. rockchip,pins = <0 RK_PB0 2 &pcfg_pull_none>;
  1056. };
  1057. };
  1058. pwm3 {
  1059. pwm3_pin: pwm3-pin {
  1060. rockchip,pins = <3 RK_PD5 3 &pcfg_pull_none>;
  1061. };
  1062. };
  1063. sdio0 {
  1064. sdio0_bus1: sdio0-bus1 {
  1065. rockchip,pins = <2 RK_PD4 1 &pcfg_pull_up>;
  1066. };
  1067. sdio0_bus4: sdio0-bus4 {
  1068. rockchip,pins = <2 RK_PD4 1 &pcfg_pull_up>,
  1069. <2 RK_PD5 1 &pcfg_pull_up>,
  1070. <2 RK_PD6 1 &pcfg_pull_up>,
  1071. <2 RK_PD7 1 &pcfg_pull_up>;
  1072. };
  1073. sdio0_cmd: sdio0-cmd {
  1074. rockchip,pins = <3 RK_PA0 1 &pcfg_pull_up>;
  1075. };
  1076. sdio0_clk: sdio0-clk {
  1077. rockchip,pins = <3 RK_PA1 1 &pcfg_pull_none>;
  1078. };
  1079. sdio0_cd: sdio0-cd {
  1080. rockchip,pins = <3 RK_PA2 1 &pcfg_pull_up>;
  1081. };
  1082. sdio0_wp: sdio0-wp {
  1083. rockchip,pins = <3 RK_PA3 1 &pcfg_pull_up>;
  1084. };
  1085. sdio0_pwr: sdio0-pwr {
  1086. rockchip,pins = <3 RK_PA4 1 &pcfg_pull_up>;
  1087. };
  1088. sdio0_bkpwr: sdio0-bkpwr {
  1089. rockchip,pins = <3 RK_PA5 1 &pcfg_pull_up>;
  1090. };
  1091. sdio0_int: sdio0-int {
  1092. rockchip,pins = <3 RK_PA6 1 &pcfg_pull_up>;
  1093. };
  1094. };
  1095. sdmmc {
  1096. sdmmc_clk: sdmmc-clk {
  1097. rockchip,pins = <2 RK_PB1 1 &pcfg_pull_none>;
  1098. };
  1099. sdmmc_cmd: sdmmc-cmd {
  1100. rockchip,pins = <2 RK_PB2 1 &pcfg_pull_up>;
  1101. };
  1102. sdmmc_cd: sdmmc-cd {
  1103. rockchip,pins = <2 RK_PB3 1 &pcfg_pull_up>;
  1104. };
  1105. sdmmc_bus1: sdmmc-bus1 {
  1106. rockchip,pins = <2 RK_PA5 1 &pcfg_pull_up>;
  1107. };
  1108. sdmmc_bus4: sdmmc-bus4 {
  1109. rockchip,pins = <2 RK_PA5 1 &pcfg_pull_up>,
  1110. <2 RK_PA6 1 &pcfg_pull_up>,
  1111. <2 RK_PA7 1 &pcfg_pull_up>,
  1112. <2 RK_PB0 1 &pcfg_pull_up>;
  1113. };
  1114. };
  1115. spdif {
  1116. spdif_tx: spdif-tx {
  1117. rockchip,pins = <2 RK_PC7 1 &pcfg_pull_none>;
  1118. };
  1119. };
  1120. spi0 {
  1121. spi0_clk: spi0-clk {
  1122. rockchip,pins = <1 RK_PD5 2 &pcfg_pull_up>;
  1123. };
  1124. spi0_cs0: spi0-cs0 {
  1125. rockchip,pins = <1 RK_PD0 3 &pcfg_pull_up>;
  1126. };
  1127. spi0_cs1: spi0-cs1 {
  1128. rockchip,pins = <1 RK_PD1 3 &pcfg_pull_up>;
  1129. };
  1130. spi0_tx: spi0-tx {
  1131. rockchip,pins = <1 RK_PC7 3 &pcfg_pull_up>;
  1132. };
  1133. spi0_rx: spi0-rx {
  1134. rockchip,pins = <1 RK_PC6 3 &pcfg_pull_up>;
  1135. };
  1136. };
  1137. spi1 {
  1138. spi1_clk: spi1-clk {
  1139. rockchip,pins = <1 RK_PB6 2 &pcfg_pull_up>;
  1140. };
  1141. spi1_cs0: spi1-cs0 {
  1142. rockchip,pins = <1 RK_PB7 2 &pcfg_pull_up>;
  1143. };
  1144. spi1_cs1: spi1-cs1 {
  1145. rockchip,pins = <3 RK_PD4 2 &pcfg_pull_up>;
  1146. };
  1147. spi1_rx: spi1-rx {
  1148. rockchip,pins = <1 RK_PC0 2 &pcfg_pull_up>;
  1149. };
  1150. spi1_tx: spi1-tx {
  1151. rockchip,pins = <1 RK_PC1 2 &pcfg_pull_up>;
  1152. };
  1153. };
  1154. spi2 {
  1155. spi2_clk: spi2-clk {
  1156. rockchip,pins = <0 RK_PB4 2 &pcfg_pull_up>;
  1157. };
  1158. spi2_cs0: spi2-cs0 {
  1159. rockchip,pins = <0 RK_PB5 2 &pcfg_pull_up>;
  1160. };
  1161. spi2_rx: spi2-rx {
  1162. rockchip,pins = <0 RK_PB2 2 &pcfg_pull_up>;
  1163. };
  1164. spi2_tx: spi2-tx {
  1165. rockchip,pins = <0 RK_PB3 2 &pcfg_pull_up>;
  1166. };
  1167. };
  1168. tsadc {
  1169. otp_pin: otp-pin {
  1170. rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
  1171. };
  1172. otp_out: otp-out {
  1173. rockchip,pins = <0 RK_PA3 1 &pcfg_pull_none>;
  1174. };
  1175. };
  1176. uart0 {
  1177. uart0_xfer: uart0-xfer {
  1178. rockchip,pins = <2 RK_PD0 1 &pcfg_pull_up>,
  1179. <2 RK_PD1 1 &pcfg_pull_none>;
  1180. };
  1181. uart0_cts: uart0-cts {
  1182. rockchip,pins = <2 RK_PD2 1 &pcfg_pull_none>;
  1183. };
  1184. uart0_rts: uart0-rts {
  1185. rockchip,pins = <2 RK_PD3 1 &pcfg_pull_none>;
  1186. };
  1187. };
  1188. uart1 {
  1189. uart1_xfer: uart1-xfer {
  1190. rockchip,pins = <0 RK_PC4 3 &pcfg_pull_up>,
  1191. <0 RK_PC5 3 &pcfg_pull_none>;
  1192. };
  1193. uart1_cts: uart1-cts {
  1194. rockchip,pins = <0 RK_PC6 3 &pcfg_pull_none>;
  1195. };
  1196. uart1_rts: uart1-rts {
  1197. rockchip,pins = <0 RK_PC7 3 &pcfg_pull_none>;
  1198. };
  1199. };
  1200. uart2 {
  1201. uart2_xfer: uart2-xfer {
  1202. rockchip,pins = <2 RK_PA6 2 &pcfg_pull_up>,
  1203. <2 RK_PA5 2 &pcfg_pull_none>;
  1204. };
  1205. /* no rts / cts for uart2 */
  1206. };
  1207. uart3 {
  1208. uart3_xfer: uart3-xfer {
  1209. rockchip,pins = <3 RK_PD5 2 &pcfg_pull_up>,
  1210. <3 RK_PD6 3 &pcfg_pull_none>;
  1211. };
  1212. uart3_cts: uart3-cts {
  1213. rockchip,pins = <3 RK_PC0 2 &pcfg_pull_none>;
  1214. };
  1215. uart3_rts: uart3-rts {
  1216. rockchip,pins = <3 RK_PC1 2 &pcfg_pull_none>;
  1217. };
  1218. };
  1219. uart4 {
  1220. uart4_xfer: uart4-xfer {
  1221. rockchip,pins = <0 RK_PD3 3 &pcfg_pull_up>,
  1222. <0 RK_PD2 3 &pcfg_pull_none>;
  1223. };
  1224. uart4_cts: uart4-cts {
  1225. rockchip,pins = <0 RK_PD0 3 &pcfg_pull_none>;
  1226. };
  1227. uart4_rts: uart4-rts {
  1228. rockchip,pins = <0 RK_PD1 3 &pcfg_pull_none>;
  1229. };
  1230. };
  1231. };
  1232. };