rk3399.dtsi 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884
  1. /*
  2. * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
  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/rk3399-cru.h>
  43. #include <dt-bindings/gpio/gpio.h>
  44. #include <dt-bindings/interrupt-controller/arm-gic.h>
  45. #include <dt-bindings/interrupt-controller/irq.h>
  46. #include <dt-bindings/pinctrl/rockchip.h>
  47. #include <dt-bindings/power/rk3399-power.h>
  48. #include <dt-bindings/thermal/thermal.h>
  49. / {
  50. compatible = "rockchip,rk3399";
  51. interrupt-parent = <&gic>;
  52. #address-cells = <2>;
  53. #size-cells = <2>;
  54. aliases {
  55. i2c0 = &i2c0;
  56. i2c1 = &i2c1;
  57. i2c2 = &i2c2;
  58. i2c3 = &i2c3;
  59. i2c4 = &i2c4;
  60. i2c5 = &i2c5;
  61. i2c6 = &i2c6;
  62. i2c7 = &i2c7;
  63. i2c8 = &i2c8;
  64. serial0 = &uart0;
  65. serial1 = &uart1;
  66. serial2 = &uart2;
  67. serial3 = &uart3;
  68. serial4 = &uart4;
  69. };
  70. cpus {
  71. #address-cells = <2>;
  72. #size-cells = <0>;
  73. cpu-map {
  74. cluster0 {
  75. core0 {
  76. cpu = <&cpu_l0>;
  77. };
  78. core1 {
  79. cpu = <&cpu_l1>;
  80. };
  81. core2 {
  82. cpu = <&cpu_l2>;
  83. };
  84. core3 {
  85. cpu = <&cpu_l3>;
  86. };
  87. };
  88. cluster1 {
  89. core0 {
  90. cpu = <&cpu_b0>;
  91. };
  92. core1 {
  93. cpu = <&cpu_b1>;
  94. };
  95. };
  96. };
  97. cpu_l0: cpu@0 {
  98. device_type = "cpu";
  99. compatible = "arm,cortex-a53", "arm,armv8";
  100. reg = <0x0 0x0>;
  101. enable-method = "psci";
  102. #cooling-cells = <2>; /* min followed by max */
  103. clocks = <&cru ARMCLKL>;
  104. };
  105. cpu_l1: cpu@1 {
  106. device_type = "cpu";
  107. compatible = "arm,cortex-a53", "arm,armv8";
  108. reg = <0x0 0x1>;
  109. enable-method = "psci";
  110. clocks = <&cru ARMCLKL>;
  111. };
  112. cpu_l2: cpu@2 {
  113. device_type = "cpu";
  114. compatible = "arm,cortex-a53", "arm,armv8";
  115. reg = <0x0 0x2>;
  116. enable-method = "psci";
  117. clocks = <&cru ARMCLKL>;
  118. };
  119. cpu_l3: cpu@3 {
  120. device_type = "cpu";
  121. compatible = "arm,cortex-a53", "arm,armv8";
  122. reg = <0x0 0x3>;
  123. enable-method = "psci";
  124. clocks = <&cru ARMCLKL>;
  125. };
  126. cpu_b0: cpu@100 {
  127. device_type = "cpu";
  128. compatible = "arm,cortex-a72", "arm,armv8";
  129. reg = <0x0 0x100>;
  130. enable-method = "psci";
  131. #cooling-cells = <2>; /* min followed by max */
  132. clocks = <&cru ARMCLKB>;
  133. };
  134. cpu_b1: cpu@101 {
  135. device_type = "cpu";
  136. compatible = "arm,cortex-a72", "arm,armv8";
  137. reg = <0x0 0x101>;
  138. enable-method = "psci";
  139. clocks = <&cru ARMCLKB>;
  140. };
  141. };
  142. pmu_a53 {
  143. compatible = "arm,cortex-a53-pmu";
  144. interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
  145. };
  146. pmu_a72 {
  147. compatible = "arm,cortex-a72-pmu";
  148. interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
  149. };
  150. psci {
  151. compatible = "arm,psci-1.0";
  152. method = "smc";
  153. };
  154. timer {
  155. compatible = "arm,armv8-timer";
  156. interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
  157. <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
  158. <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
  159. <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
  160. arm,no-tick-in-suspend;
  161. };
  162. xin24m: xin24m {
  163. compatible = "fixed-clock";
  164. clock-frequency = <24000000>;
  165. clock-output-names = "xin24m";
  166. #clock-cells = <0>;
  167. };
  168. amba {
  169. compatible = "simple-bus";
  170. #address-cells = <2>;
  171. #size-cells = <2>;
  172. ranges;
  173. dmac_bus: dma-controller@ff6d0000 {
  174. compatible = "arm,pl330", "arm,primecell";
  175. reg = <0x0 0xff6d0000 0x0 0x4000>;
  176. interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
  177. <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
  178. #dma-cells = <1>;
  179. clocks = <&cru ACLK_DMAC0_PERILP>;
  180. clock-names = "apb_pclk";
  181. };
  182. dmac_peri: dma-controller@ff6e0000 {
  183. compatible = "arm,pl330", "arm,primecell";
  184. reg = <0x0 0xff6e0000 0x0 0x4000>;
  185. interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
  186. <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
  187. #dma-cells = <1>;
  188. clocks = <&cru ACLK_DMAC1_PERILP>;
  189. clock-names = "apb_pclk";
  190. };
  191. };
  192. gmac: ethernet@fe300000 {
  193. compatible = "rockchip,rk3399-gmac";
  194. reg = <0x0 0xfe300000 0x0 0x10000>;
  195. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
  196. interrupt-names = "macirq";
  197. clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
  198. <&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>,
  199. <&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>,
  200. <&cru PCLK_GMAC>;
  201. clock-names = "stmmaceth", "mac_clk_rx",
  202. "mac_clk_tx", "clk_mac_ref",
  203. "clk_mac_refout", "aclk_mac",
  204. "pclk_mac";
  205. power-domains = <&power RK3399_PD_GMAC>;
  206. resets = <&cru SRST_A_GMAC>;
  207. reset-names = "stmmaceth";
  208. rockchip,grf = <&grf>;
  209. status = "disabled";
  210. };
  211. sdio0: dwmmc@fe310000 {
  212. compatible = "rockchip,rk3399-dw-mshc",
  213. "rockchip,rk3288-dw-mshc";
  214. reg = <0x0 0xfe310000 0x0 0x4000>;
  215. interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>;
  216. max-frequency = <150000000>;
  217. clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
  218. <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
  219. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  220. fifo-depth = <0x100>;
  221. status = "disabled";
  222. };
  223. sdmmc: dwmmc@fe320000 {
  224. compatible = "rockchip,rk3399-dw-mshc",
  225. "rockchip,rk3288-dw-mshc";
  226. reg = <0x0 0xfe320000 0x0 0x4000>;
  227. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>;
  228. max-frequency = <150000000>;
  229. clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
  230. <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
  231. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  232. fifo-depth = <0x100>;
  233. power-domains = <&power RK3399_PD_SD>;
  234. status = "disabled";
  235. };
  236. sdhci: sdhci@fe330000 {
  237. compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
  238. reg = <0x0 0xfe330000 0x0 0x10000>;
  239. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
  240. arasan,soc-ctl-syscon = <&grf>;
  241. assigned-clocks = <&cru SCLK_EMMC>;
  242. assigned-clock-rates = <200000000>;
  243. clocks = <&cru SCLK_EMMC>, <&cru ACLK_EMMC>;
  244. clock-names = "clk_xin", "clk_ahb";
  245. clock-output-names = "emmc_cardclock";
  246. #clock-cells = <0>;
  247. phys = <&emmc_phy>;
  248. phy-names = "phy_arasan";
  249. power-domains = <&power RK3399_PD_EMMC>;
  250. status = "disabled";
  251. };
  252. pcie0: pcie@f8000000 {
  253. compatible = "rockchip,rk3399-pcie";
  254. reg = <0x0 0xf8000000 0x0 0x2000000>,
  255. <0x0 0xfd000000 0x0 0x1000000>;
  256. reg-names = "axi-base", "apb-base";
  257. #address-cells = <3>;
  258. #size-cells = <2>;
  259. #interrupt-cells = <1>;
  260. bus-range = <0x0 0x1>;
  261. clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
  262. <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
  263. clock-names = "aclk", "aclk-perf",
  264. "hclk", "pm";
  265. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
  266. <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
  267. <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
  268. interrupt-names = "sys", "legacy", "client";
  269. interrupt-map-mask = <0 0 0 7>;
  270. interrupt-map = <0 0 0 1 &pcie0_intc 0>,
  271. <0 0 0 2 &pcie0_intc 1>,
  272. <0 0 0 3 &pcie0_intc 2>,
  273. <0 0 0 4 &pcie0_intc 3>;
  274. msi-map = <0x0 &its 0x0 0x1000>;
  275. phys = <&pcie_phy>;
  276. phy-names = "pcie-phy";
  277. ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x600000
  278. 0x81000000 0x0 0xfa600000 0x0 0xfa600000 0x0 0x100000>;
  279. resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
  280. <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
  281. <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
  282. <&cru SRST_A_PCIE>;
  283. reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
  284. "pm", "pclk", "aclk";
  285. status = "disabled";
  286. pcie0_intc: interrupt-controller {
  287. interrupt-controller;
  288. #address-cells = <0>;
  289. #interrupt-cells = <1>;
  290. };
  291. };
  292. usb_host0_ehci: usb@fe380000 {
  293. compatible = "generic-ehci";
  294. reg = <0x0 0xfe380000 0x0 0x20000>;
  295. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH 0>;
  296. clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>;
  297. clock-names = "hclk_host0", "hclk_host0_arb";
  298. phys = <&u2phy0_host>;
  299. phy-names = "usb";
  300. status = "disabled";
  301. };
  302. usb_host0_ohci: usb@fe3a0000 {
  303. compatible = "generic-ohci";
  304. reg = <0x0 0xfe3a0000 0x0 0x20000>;
  305. interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>;
  306. clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>;
  307. clock-names = "hclk_host0", "hclk_host0_arb";
  308. status = "disabled";
  309. };
  310. usb_host1_ehci: usb@fe3c0000 {
  311. compatible = "generic-ehci";
  312. reg = <0x0 0xfe3c0000 0x0 0x20000>;
  313. interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>;
  314. clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>;
  315. clock-names = "hclk_host1", "hclk_host1_arb";
  316. phys = <&u2phy1_host>;
  317. phy-names = "usb";
  318. status = "disabled";
  319. };
  320. usb_host1_ohci: usb@fe3e0000 {
  321. compatible = "generic-ohci";
  322. reg = <0x0 0xfe3e0000 0x0 0x20000>;
  323. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>;
  324. clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>;
  325. clock-names = "hclk_host1", "hclk_host1_arb";
  326. status = "disabled";
  327. };
  328. gic: interrupt-controller@fee00000 {
  329. compatible = "arm,gic-v3";
  330. #interrupt-cells = <4>;
  331. #address-cells = <2>;
  332. #size-cells = <2>;
  333. ranges;
  334. interrupt-controller;
  335. reg = <0x0 0xfee00000 0 0x10000>, /* GICD */
  336. <0x0 0xfef00000 0 0xc0000>, /* GICR */
  337. <0x0 0xfff00000 0 0x10000>, /* GICC */
  338. <0x0 0xfff10000 0 0x10000>, /* GICH */
  339. <0x0 0xfff20000 0 0x10000>; /* GICV */
  340. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
  341. its: interrupt-controller@fee20000 {
  342. compatible = "arm,gic-v3-its";
  343. msi-controller;
  344. reg = <0x0 0xfee20000 0x0 0x20000>;
  345. };
  346. ppi-partitions {
  347. ppi_cluster0: interrupt-partition-0 {
  348. affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
  349. };
  350. ppi_cluster1: interrupt-partition-1 {
  351. affinity = <&cpu_b0 &cpu_b1>;
  352. };
  353. };
  354. };
  355. saradc: saradc@ff100000 {
  356. compatible = "rockchip,rk3399-saradc";
  357. reg = <0x0 0xff100000 0x0 0x100>;
  358. interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>;
  359. #io-channel-cells = <1>;
  360. clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
  361. clock-names = "saradc", "apb_pclk";
  362. resets = <&cru SRST_P_SARADC>;
  363. reset-names = "saradc-apb";
  364. status = "disabled";
  365. };
  366. i2c1: i2c@ff110000 {
  367. compatible = "rockchip,rk3399-i2c";
  368. reg = <0x0 0xff110000 0x0 0x1000>;
  369. assigned-clocks = <&cru SCLK_I2C1>;
  370. assigned-clock-rates = <200000000>;
  371. clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
  372. clock-names = "i2c", "pclk";
  373. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH 0>;
  374. pinctrl-names = "default";
  375. pinctrl-0 = <&i2c1_xfer>;
  376. #address-cells = <1>;
  377. #size-cells = <0>;
  378. status = "disabled";
  379. };
  380. i2c2: i2c@ff120000 {
  381. compatible = "rockchip,rk3399-i2c";
  382. reg = <0x0 0xff120000 0x0 0x1000>;
  383. assigned-clocks = <&cru SCLK_I2C2>;
  384. assigned-clock-rates = <200000000>;
  385. clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
  386. clock-names = "i2c", "pclk";
  387. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 0>;
  388. pinctrl-names = "default";
  389. pinctrl-0 = <&i2c2_xfer>;
  390. #address-cells = <1>;
  391. #size-cells = <0>;
  392. status = "disabled";
  393. };
  394. i2c3: i2c@ff130000 {
  395. compatible = "rockchip,rk3399-i2c";
  396. reg = <0x0 0xff130000 0x0 0x1000>;
  397. assigned-clocks = <&cru SCLK_I2C3>;
  398. assigned-clock-rates = <200000000>;
  399. clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
  400. clock-names = "i2c", "pclk";
  401. interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 0>;
  402. pinctrl-names = "default";
  403. pinctrl-0 = <&i2c3_xfer>;
  404. #address-cells = <1>;
  405. #size-cells = <0>;
  406. status = "disabled";
  407. };
  408. i2c5: i2c@ff140000 {
  409. compatible = "rockchip,rk3399-i2c";
  410. reg = <0x0 0xff140000 0x0 0x1000>;
  411. assigned-clocks = <&cru SCLK_I2C5>;
  412. assigned-clock-rates = <200000000>;
  413. clocks = <&cru SCLK_I2C5>, <&cru PCLK_I2C5>;
  414. clock-names = "i2c", "pclk";
  415. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>;
  416. pinctrl-names = "default";
  417. pinctrl-0 = <&i2c5_xfer>;
  418. #address-cells = <1>;
  419. #size-cells = <0>;
  420. status = "disabled";
  421. };
  422. i2c6: i2c@ff150000 {
  423. compatible = "rockchip,rk3399-i2c";
  424. reg = <0x0 0xff150000 0x0 0x1000>;
  425. assigned-clocks = <&cru SCLK_I2C6>;
  426. assigned-clock-rates = <200000000>;
  427. clocks = <&cru SCLK_I2C6>, <&cru PCLK_I2C6>;
  428. clock-names = "i2c", "pclk";
  429. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH 0>;
  430. pinctrl-names = "default";
  431. pinctrl-0 = <&i2c6_xfer>;
  432. #address-cells = <1>;
  433. #size-cells = <0>;
  434. status = "disabled";
  435. };
  436. i2c7: i2c@ff160000 {
  437. compatible = "rockchip,rk3399-i2c";
  438. reg = <0x0 0xff160000 0x0 0x1000>;
  439. assigned-clocks = <&cru SCLK_I2C7>;
  440. assigned-clock-rates = <200000000>;
  441. clocks = <&cru SCLK_I2C7>, <&cru PCLK_I2C7>;
  442. clock-names = "i2c", "pclk";
  443. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH 0>;
  444. pinctrl-names = "default";
  445. pinctrl-0 = <&i2c7_xfer>;
  446. #address-cells = <1>;
  447. #size-cells = <0>;
  448. status = "disabled";
  449. };
  450. uart0: serial@ff180000 {
  451. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  452. reg = <0x0 0xff180000 0x0 0x100>;
  453. clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
  454. clock-names = "baudclk", "apb_pclk";
  455. interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
  456. reg-shift = <2>;
  457. reg-io-width = <4>;
  458. pinctrl-names = "default";
  459. pinctrl-0 = <&uart0_xfer>;
  460. status = "disabled";
  461. };
  462. uart1: serial@ff190000 {
  463. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  464. reg = <0x0 0xff190000 0x0 0x100>;
  465. clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
  466. clock-names = "baudclk", "apb_pclk";
  467. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>;
  468. reg-shift = <2>;
  469. reg-io-width = <4>;
  470. pinctrl-names = "default";
  471. pinctrl-0 = <&uart1_xfer>;
  472. status = "disabled";
  473. };
  474. uart2: serial@ff1a0000 {
  475. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  476. reg = <0x0 0xff1a0000 0x0 0x100>;
  477. clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
  478. clock-names = "baudclk", "apb_pclk";
  479. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>;
  480. reg-shift = <2>;
  481. reg-io-width = <4>;
  482. pinctrl-names = "default";
  483. pinctrl-0 = <&uart2c_xfer>;
  484. status = "disabled";
  485. };
  486. uart3: serial@ff1b0000 {
  487. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  488. reg = <0x0 0xff1b0000 0x0 0x100>;
  489. clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
  490. clock-names = "baudclk", "apb_pclk";
  491. interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>;
  492. reg-shift = <2>;
  493. reg-io-width = <4>;
  494. pinctrl-names = "default";
  495. pinctrl-0 = <&uart3_xfer>;
  496. status = "disabled";
  497. };
  498. spi0: spi@ff1c0000 {
  499. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  500. reg = <0x0 0xff1c0000 0x0 0x1000>;
  501. clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
  502. clock-names = "spiclk", "apb_pclk";
  503. interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH 0>;
  504. pinctrl-names = "default";
  505. pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
  506. #address-cells = <1>;
  507. #size-cells = <0>;
  508. status = "disabled";
  509. };
  510. spi1: spi@ff1d0000 {
  511. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  512. reg = <0x0 0xff1d0000 0x0 0x1000>;
  513. clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
  514. clock-names = "spiclk", "apb_pclk";
  515. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>;
  516. pinctrl-names = "default";
  517. pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
  518. #address-cells = <1>;
  519. #size-cells = <0>;
  520. status = "disabled";
  521. };
  522. spi2: spi@ff1e0000 {
  523. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  524. reg = <0x0 0xff1e0000 0x0 0x1000>;
  525. clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
  526. clock-names = "spiclk", "apb_pclk";
  527. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH 0>;
  528. pinctrl-names = "default";
  529. pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
  530. #address-cells = <1>;
  531. #size-cells = <0>;
  532. status = "disabled";
  533. };
  534. spi4: spi@ff1f0000 {
  535. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  536. reg = <0x0 0xff1f0000 0x0 0x1000>;
  537. clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>;
  538. clock-names = "spiclk", "apb_pclk";
  539. interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH 0>;
  540. pinctrl-names = "default";
  541. pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>;
  542. #address-cells = <1>;
  543. #size-cells = <0>;
  544. status = "disabled";
  545. };
  546. spi5: spi@ff200000 {
  547. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  548. reg = <0x0 0xff200000 0x0 0x1000>;
  549. clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>;
  550. clock-names = "spiclk", "apb_pclk";
  551. interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH 0>;
  552. pinctrl-names = "default";
  553. pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>;
  554. #address-cells = <1>;
  555. #size-cells = <0>;
  556. status = "disabled";
  557. };
  558. thermal-zones {
  559. cpu_thermal: cpu {
  560. polling-delay-passive = <100>;
  561. polling-delay = <1000>;
  562. thermal-sensors = <&tsadc 0>;
  563. trips {
  564. cpu_alert0: cpu_alert0 {
  565. temperature = <70000>;
  566. hysteresis = <2000>;
  567. type = "passive";
  568. };
  569. cpu_alert1: cpu_alert1 {
  570. temperature = <75000>;
  571. hysteresis = <2000>;
  572. type = "passive";
  573. };
  574. cpu_crit: cpu_crit {
  575. temperature = <95000>;
  576. hysteresis = <2000>;
  577. type = "critical";
  578. };
  579. };
  580. cooling-maps {
  581. map0 {
  582. trip = <&cpu_alert0>;
  583. cooling-device =
  584. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  585. };
  586. map1 {
  587. trip = <&cpu_alert1>;
  588. cooling-device =
  589. <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  590. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  591. };
  592. };
  593. };
  594. gpu_thermal: gpu {
  595. polling-delay-passive = <100>;
  596. polling-delay = <1000>;
  597. thermal-sensors = <&tsadc 1>;
  598. trips {
  599. gpu_alert0: gpu_alert0 {
  600. temperature = <75000>;
  601. hysteresis = <2000>;
  602. type = "passive";
  603. };
  604. gpu_crit: gpu_crit {
  605. temperature = <95000>;
  606. hysteresis = <2000>;
  607. type = "critical";
  608. };
  609. };
  610. cooling-maps {
  611. map0 {
  612. trip = <&gpu_alert0>;
  613. cooling-device =
  614. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  615. };
  616. };
  617. };
  618. };
  619. tsadc: tsadc@ff260000 {
  620. compatible = "rockchip,rk3399-tsadc";
  621. reg = <0x0 0xff260000 0x0 0x100>;
  622. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
  623. assigned-clocks = <&cru SCLK_TSADC>;
  624. assigned-clock-rates = <750000>;
  625. clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
  626. clock-names = "tsadc", "apb_pclk";
  627. resets = <&cru SRST_TSADC>;
  628. reset-names = "tsadc-apb";
  629. rockchip,grf = <&grf>;
  630. rockchip,hw-tshut-temp = <95000>;
  631. pinctrl-names = "init", "default", "sleep";
  632. pinctrl-0 = <&otp_gpio>;
  633. pinctrl-1 = <&otp_out>;
  634. pinctrl-2 = <&otp_gpio>;
  635. #thermal-sensor-cells = <1>;
  636. status = "disabled";
  637. };
  638. qos_sd: qos@ffa74000 {
  639. compatible = "syscon";
  640. reg = <0x0 0xffa74000 0x0 0x20>;
  641. };
  642. qos_emmc: qos@ffa58000 {
  643. compatible = "syscon";
  644. reg = <0x0 0xffa58000 0x0 0x20>;
  645. };
  646. qos_gmac: qos@ffa5c000 {
  647. compatible = "syscon";
  648. reg = <0x0 0xffa5c000 0x0 0x20>;
  649. };
  650. qos_hdcp: qos@ffa90000 {
  651. compatible = "syscon";
  652. reg = <0x0 0xffa90000 0x0 0x20>;
  653. };
  654. qos_iep: qos@ffa98000 {
  655. compatible = "syscon";
  656. reg = <0x0 0xffa98000 0x0 0x20>;
  657. };
  658. qos_isp0_m0: qos@ffaa0000 {
  659. compatible = "syscon";
  660. reg = <0x0 0xffaa0000 0x0 0x20>;
  661. };
  662. qos_isp0_m1: qos@ffaa0080 {
  663. compatible = "syscon";
  664. reg = <0x0 0xffaa0080 0x0 0x20>;
  665. };
  666. qos_isp1_m0: qos@ffaa8000 {
  667. compatible = "syscon";
  668. reg = <0x0 0xffaa8000 0x0 0x20>;
  669. };
  670. qos_isp1_m1: qos@ffaa8080 {
  671. compatible = "syscon";
  672. reg = <0x0 0xffaa8080 0x0 0x20>;
  673. };
  674. qos_rga_r: qos@ffab0000 {
  675. compatible = "syscon";
  676. reg = <0x0 0xffab0000 0x0 0x20>;
  677. };
  678. qos_rga_w: qos@ffab0080 {
  679. compatible = "syscon";
  680. reg = <0x0 0xffab0080 0x0 0x20>;
  681. };
  682. qos_video_m0: qos@ffab8000 {
  683. compatible = "syscon";
  684. reg = <0x0 0xffab8000 0x0 0x20>;
  685. };
  686. qos_video_m1_r: qos@ffac0000 {
  687. compatible = "syscon";
  688. reg = <0x0 0xffac0000 0x0 0x20>;
  689. };
  690. qos_video_m1_w: qos@ffac0080 {
  691. compatible = "syscon";
  692. reg = <0x0 0xffac0080 0x0 0x20>;
  693. };
  694. qos_vop_big_r: qos@ffac8000 {
  695. compatible = "syscon";
  696. reg = <0x0 0xffac8000 0x0 0x20>;
  697. };
  698. qos_vop_big_w: qos@ffac8080 {
  699. compatible = "syscon";
  700. reg = <0x0 0xffac8080 0x0 0x20>;
  701. };
  702. qos_vop_little: qos@ffad0000 {
  703. compatible = "syscon";
  704. reg = <0x0 0xffad0000 0x0 0x20>;
  705. };
  706. qos_gpu: qos@ffae0000 {
  707. compatible = "syscon";
  708. reg = <0x0 0xffae0000 0x0 0x20>;
  709. };
  710. pmu: power-management@ff310000 {
  711. compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
  712. reg = <0x0 0xff310000 0x0 0x1000>;
  713. /*
  714. * Note: RK3399 supports 6 voltage domains including VD_CORE_L,
  715. * VD_CORE_B, VD_CENTER, VD_GPU, VD_LOGIC and VD_PMU.
  716. * Some of the power domains are grouped together for every
  717. * voltage domain.
  718. * The detail contents as below.
  719. */
  720. power: power-controller {
  721. compatible = "rockchip,rk3399-power-controller";
  722. #power-domain-cells = <1>;
  723. #address-cells = <1>;
  724. #size-cells = <0>;
  725. /* These power domains are grouped by VD_CENTER */
  726. pd_iep@RK3399_PD_IEP {
  727. reg = <RK3399_PD_IEP>;
  728. clocks = <&cru ACLK_IEP>,
  729. <&cru HCLK_IEP>;
  730. pm_qos = <&qos_iep>;
  731. };
  732. pd_rga@RK3399_PD_RGA {
  733. reg = <RK3399_PD_RGA>;
  734. clocks = <&cru ACLK_RGA>,
  735. <&cru HCLK_RGA>;
  736. pm_qos = <&qos_rga_r>,
  737. <&qos_rga_w>;
  738. };
  739. pd_vcodec@RK3399_PD_VCODEC {
  740. reg = <RK3399_PD_VCODEC>;
  741. clocks = <&cru ACLK_VCODEC>,
  742. <&cru HCLK_VCODEC>;
  743. pm_qos = <&qos_video_m0>;
  744. };
  745. pd_vdu@RK3399_PD_VDU {
  746. reg = <RK3399_PD_VDU>;
  747. clocks = <&cru ACLK_VDU>,
  748. <&cru HCLK_VDU>;
  749. pm_qos = <&qos_video_m1_r>,
  750. <&qos_video_m1_w>;
  751. };
  752. /* These power domains are grouped by VD_GPU */
  753. pd_gpu@RK3399_PD_GPU {
  754. reg = <RK3399_PD_GPU>;
  755. clocks = <&cru ACLK_GPU>;
  756. pm_qos = <&qos_gpu>;
  757. };
  758. /* These power domains are grouped by VD_LOGIC */
  759. pd_emmc@RK3399_PD_EMMC {
  760. reg = <RK3399_PD_EMMC>;
  761. clocks = <&cru ACLK_EMMC>;
  762. pm_qos = <&qos_emmc>;
  763. };
  764. pd_gmac@RK3399_PD_GMAC {
  765. reg = <RK3399_PD_GMAC>;
  766. clocks = <&cru ACLK_GMAC>,
  767. <&cru PCLK_GMAC>;
  768. pm_qos = <&qos_gmac>;
  769. };
  770. pd_sd@RK3399_PD_SD {
  771. reg = <RK3399_PD_SD>;
  772. clocks = <&cru HCLK_SDMMC>,
  773. <&cru SCLK_SDMMC>;
  774. pm_qos = <&qos_sd>;
  775. };
  776. pd_vio@RK3399_PD_VIO {
  777. reg = <RK3399_PD_VIO>;
  778. #address-cells = <1>;
  779. #size-cells = <0>;
  780. pd_hdcp@RK3399_PD_HDCP {
  781. reg = <RK3399_PD_HDCP>;
  782. clocks = <&cru ACLK_HDCP>,
  783. <&cru HCLK_HDCP>,
  784. <&cru PCLK_HDCP>;
  785. pm_qos = <&qos_hdcp>;
  786. };
  787. pd_isp0@RK3399_PD_ISP0 {
  788. reg = <RK3399_PD_ISP0>;
  789. clocks = <&cru ACLK_ISP0>,
  790. <&cru HCLK_ISP0>;
  791. pm_qos = <&qos_isp0_m0>,
  792. <&qos_isp0_m1>;
  793. };
  794. pd_isp1@RK3399_PD_ISP1 {
  795. reg = <RK3399_PD_ISP1>;
  796. clocks = <&cru ACLK_ISP1>,
  797. <&cru HCLK_ISP1>;
  798. pm_qos = <&qos_isp1_m0>,
  799. <&qos_isp1_m1>;
  800. };
  801. pd_tcpc0@RK3399_PD_TCPC0 {
  802. reg = <RK3399_PD_TCPD0>;
  803. clocks = <&cru SCLK_UPHY0_TCPDCORE>,
  804. <&cru SCLK_UPHY0_TCPDPHY_REF>;
  805. };
  806. pd_tcpc1@RK3399_PD_TCPC1 {
  807. reg = <RK3399_PD_TCPD1>;
  808. clocks = <&cru SCLK_UPHY1_TCPDCORE>,
  809. <&cru SCLK_UPHY1_TCPDPHY_REF>;
  810. };
  811. pd_vo@RK3399_PD_VO {
  812. reg = <RK3399_PD_VO>;
  813. #address-cells = <1>;
  814. #size-cells = <0>;
  815. pd_vopb@RK3399_PD_VOPB {
  816. reg = <RK3399_PD_VOPB>;
  817. clocks = <&cru ACLK_VOP0>,
  818. <&cru HCLK_VOP0>;
  819. pm_qos = <&qos_vop_big_r>,
  820. <&qos_vop_big_w>;
  821. };
  822. pd_vopl@RK3399_PD_VOPL {
  823. reg = <RK3399_PD_VOPL>;
  824. clocks = <&cru ACLK_VOP1>,
  825. <&cru HCLK_VOP1>;
  826. pm_qos = <&qos_vop_little>;
  827. };
  828. };
  829. };
  830. };
  831. };
  832. pmugrf: syscon@ff320000 {
  833. compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
  834. reg = <0x0 0xff320000 0x0 0x1000>;
  835. #address-cells = <1>;
  836. #size-cells = <1>;
  837. pmu_io_domains: io-domains {
  838. compatible = "rockchip,rk3399-pmu-io-voltage-domain";
  839. status = "disabled";
  840. };
  841. };
  842. spi3: spi@ff350000 {
  843. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  844. reg = <0x0 0xff350000 0x0 0x1000>;
  845. clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>;
  846. clock-names = "spiclk", "apb_pclk";
  847. interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH 0>;
  848. pinctrl-names = "default";
  849. pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>;
  850. #address-cells = <1>;
  851. #size-cells = <0>;
  852. status = "disabled";
  853. };
  854. uart4: serial@ff370000 {
  855. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  856. reg = <0x0 0xff370000 0x0 0x100>;
  857. clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>;
  858. clock-names = "baudclk", "apb_pclk";
  859. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>;
  860. reg-shift = <2>;
  861. reg-io-width = <4>;
  862. pinctrl-names = "default";
  863. pinctrl-0 = <&uart4_xfer>;
  864. status = "disabled";
  865. };
  866. i2c0: i2c@ff3c0000 {
  867. compatible = "rockchip,rk3399-i2c";
  868. reg = <0x0 0xff3c0000 0x0 0x1000>;
  869. assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
  870. assigned-clock-rates = <200000000>;
  871. clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
  872. clock-names = "i2c", "pclk";
  873. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
  874. pinctrl-names = "default";
  875. pinctrl-0 = <&i2c0_xfer>;
  876. #address-cells = <1>;
  877. #size-cells = <0>;
  878. status = "disabled";
  879. };
  880. i2c4: i2c@ff3d0000 {
  881. compatible = "rockchip,rk3399-i2c";
  882. reg = <0x0 0xff3d0000 0x0 0x1000>;
  883. assigned-clocks = <&pmucru SCLK_I2C4_PMU>;
  884. assigned-clock-rates = <200000000>;
  885. clocks = <&pmucru SCLK_I2C4_PMU>, <&pmucru PCLK_I2C4_PMU>;
  886. clock-names = "i2c", "pclk";
  887. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH 0>;
  888. pinctrl-names = "default";
  889. pinctrl-0 = <&i2c4_xfer>;
  890. #address-cells = <1>;
  891. #size-cells = <0>;
  892. status = "disabled";
  893. };
  894. i2c8: i2c@ff3e0000 {
  895. compatible = "rockchip,rk3399-i2c";
  896. reg = <0x0 0xff3e0000 0x0 0x1000>;
  897. assigned-clocks = <&pmucru SCLK_I2C8_PMU>;
  898. assigned-clock-rates = <200000000>;
  899. clocks = <&pmucru SCLK_I2C8_PMU>, <&pmucru PCLK_I2C8_PMU>;
  900. clock-names = "i2c", "pclk";
  901. interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
  902. pinctrl-names = "default";
  903. pinctrl-0 = <&i2c8_xfer>;
  904. #address-cells = <1>;
  905. #size-cells = <0>;
  906. status = "disabled";
  907. };
  908. pwm0: pwm@ff420000 {
  909. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  910. reg = <0x0 0xff420000 0x0 0x10>;
  911. #pwm-cells = <3>;
  912. pinctrl-names = "default";
  913. pinctrl-0 = <&pwm0_pin>;
  914. clocks = <&pmucru PCLK_RKPWM_PMU>;
  915. clock-names = "pwm";
  916. status = "disabled";
  917. };
  918. pwm1: pwm@ff420010 {
  919. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  920. reg = <0x0 0xff420010 0x0 0x10>;
  921. #pwm-cells = <3>;
  922. pinctrl-names = "default";
  923. pinctrl-0 = <&pwm1_pin>;
  924. clocks = <&pmucru PCLK_RKPWM_PMU>;
  925. clock-names = "pwm";
  926. status = "disabled";
  927. };
  928. pwm2: pwm@ff420020 {
  929. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  930. reg = <0x0 0xff420020 0x0 0x10>;
  931. #pwm-cells = <3>;
  932. pinctrl-names = "default";
  933. pinctrl-0 = <&pwm2_pin>;
  934. clocks = <&pmucru PCLK_RKPWM_PMU>;
  935. clock-names = "pwm";
  936. status = "disabled";
  937. };
  938. pwm3: pwm@ff420030 {
  939. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  940. reg = <0x0 0xff420030 0x0 0x10>;
  941. #pwm-cells = <3>;
  942. pinctrl-names = "default";
  943. pinctrl-0 = <&pwm3a_pin>;
  944. clocks = <&pmucru PCLK_RKPWM_PMU>;
  945. clock-names = "pwm";
  946. status = "disabled";
  947. };
  948. efuse0: efuse@ff690000 {
  949. compatible = "rockchip,rk3399-efuse";
  950. reg = <0x0 0xff690000 0x0 0x80>;
  951. #address-cells = <1>;
  952. #size-cells = <1>;
  953. clocks = <&cru PCLK_EFUSE1024NS>;
  954. clock-names = "pclk_efuse";
  955. /* Data cells */
  956. cpu_id: cpu-id@7 {
  957. reg = <0x07 0x10>;
  958. };
  959. cpub_leakage: cpu-leakage@17 {
  960. reg = <0x17 0x1>;
  961. };
  962. gpu_leakage: gpu-leakage@18 {
  963. reg = <0x18 0x1>;
  964. };
  965. center_leakage: center-leakage@19 {
  966. reg = <0x19 0x1>;
  967. };
  968. cpul_leakage: cpu-leakage@1a {
  969. reg = <0x1a 0x1>;
  970. };
  971. logic_leakage: logic-leakage@1b {
  972. reg = <0x1b 0x1>;
  973. };
  974. wafer_info: wafer-info@1c {
  975. reg = <0x1c 0x1>;
  976. };
  977. };
  978. pmucru: pmu-clock-controller@ff750000 {
  979. compatible = "rockchip,rk3399-pmucru";
  980. reg = <0x0 0xff750000 0x0 0x1000>;
  981. #clock-cells = <1>;
  982. #reset-cells = <1>;
  983. assigned-clocks = <&pmucru PLL_PPLL>;
  984. assigned-clock-rates = <676000000>;
  985. };
  986. cru: clock-controller@ff760000 {
  987. compatible = "rockchip,rk3399-cru";
  988. reg = <0x0 0xff760000 0x0 0x1000>;
  989. #clock-cells = <1>;
  990. #reset-cells = <1>;
  991. assigned-clocks =
  992. <&cru PLL_GPLL>, <&cru PLL_CPLL>,
  993. <&cru PLL_NPLL>,
  994. <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
  995. <&cru PCLK_PERIHP>,
  996. <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
  997. <&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
  998. <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>;
  999. assigned-clock-rates =
  1000. <594000000>, <800000000>,
  1001. <1000000000>,
  1002. <150000000>, <75000000>,
  1003. <37500000>,
  1004. <100000000>, <100000000>,
  1005. <50000000>, <600000000>,
  1006. <100000000>, <50000000>;
  1007. };
  1008. grf: syscon@ff770000 {
  1009. compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
  1010. reg = <0x0 0xff770000 0x0 0x10000>;
  1011. #address-cells = <1>;
  1012. #size-cells = <1>;
  1013. io_domains: io-domains {
  1014. compatible = "rockchip,rk3399-io-voltage-domain";
  1015. status = "disabled";
  1016. };
  1017. u2phy0: usb2-phy@e450 {
  1018. compatible = "rockchip,rk3399-usb2phy";
  1019. reg = <0xe450 0x10>;
  1020. clocks = <&cru SCLK_USB2PHY0_REF>;
  1021. clock-names = "phyclk";
  1022. #clock-cells = <0>;
  1023. clock-output-names = "clk_usbphy0_480m";
  1024. status = "disabled";
  1025. u2phy0_host: host-port {
  1026. #phy-cells = <0>;
  1027. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
  1028. interrupt-names = "linestate";
  1029. status = "disabled";
  1030. };
  1031. u2phy0_otg: otg-port {
  1032. #phy-cells = <0>;
  1033. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
  1034. <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
  1035. <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
  1036. interrupt-names = "otg-bvalid", "otg-id",
  1037. "linestate";
  1038. status = "disabled";
  1039. };
  1040. };
  1041. u2phy1: usb2-phy@e460 {
  1042. compatible = "rockchip,rk3399-usb2phy";
  1043. reg = <0xe460 0x10>;
  1044. clocks = <&cru SCLK_USB2PHY1_REF>;
  1045. clock-names = "phyclk";
  1046. #clock-cells = <0>;
  1047. clock-output-names = "clk_usbphy1_480m";
  1048. status = "disabled";
  1049. u2phy1_host: host-port {
  1050. #phy-cells = <0>;
  1051. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>;
  1052. interrupt-names = "linestate";
  1053. status = "disabled";
  1054. };
  1055. u2phy1_otg: otg-port {
  1056. #phy-cells = <0>;
  1057. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>,
  1058. <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>,
  1059. <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>;
  1060. interrupt-names = "otg-bvalid", "otg-id",
  1061. "linestate";
  1062. status = "disabled";
  1063. };
  1064. };
  1065. emmc_phy: phy@f780 {
  1066. compatible = "rockchip,rk3399-emmc-phy";
  1067. reg = <0xf780 0x24>;
  1068. clocks = <&sdhci>;
  1069. clock-names = "emmcclk";
  1070. #phy-cells = <0>;
  1071. status = "disabled";
  1072. };
  1073. pcie_phy: pcie-phy {
  1074. compatible = "rockchip,rk3399-pcie-phy";
  1075. clocks = <&cru SCLK_PCIEPHY_REF>;
  1076. clock-names = "refclk";
  1077. #phy-cells = <0>;
  1078. resets = <&cru SRST_PCIEPHY>;
  1079. reset-names = "phy";
  1080. status = "disabled";
  1081. };
  1082. };
  1083. tcphy0: phy@ff7c0000 {
  1084. compatible = "rockchip,rk3399-typec-phy";
  1085. reg = <0x0 0xff7c0000 0x0 0x40000>;
  1086. clocks = <&cru SCLK_UPHY0_TCPDCORE>,
  1087. <&cru SCLK_UPHY0_TCPDPHY_REF>;
  1088. clock-names = "tcpdcore", "tcpdphy-ref";
  1089. assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
  1090. assigned-clock-rates = <50000000>;
  1091. power-domains = <&power RK3399_PD_TCPD0>;
  1092. resets = <&cru SRST_UPHY0>,
  1093. <&cru SRST_UPHY0_PIPE_L00>,
  1094. <&cru SRST_P_UPHY0_TCPHY>;
  1095. reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
  1096. rockchip,grf = <&grf>;
  1097. rockchip,typec-conn-dir = <0xe580 0 16>;
  1098. rockchip,usb3tousb2-en = <0xe580 3 19>;
  1099. rockchip,external-psm = <0xe588 14 30>;
  1100. rockchip,pipe-status = <0xe5c0 0 0>;
  1101. status = "disabled";
  1102. tcphy0_dp: dp-port {
  1103. #phy-cells = <0>;
  1104. };
  1105. tcphy0_usb3: usb3-port {
  1106. #phy-cells = <0>;
  1107. };
  1108. };
  1109. tcphy1: phy@ff800000 {
  1110. compatible = "rockchip,rk3399-typec-phy";
  1111. reg = <0x0 0xff800000 0x0 0x40000>;
  1112. clocks = <&cru SCLK_UPHY1_TCPDCORE>,
  1113. <&cru SCLK_UPHY1_TCPDPHY_REF>;
  1114. clock-names = "tcpdcore", "tcpdphy-ref";
  1115. assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
  1116. assigned-clock-rates = <50000000>;
  1117. power-domains = <&power RK3399_PD_TCPD1>;
  1118. resets = <&cru SRST_UPHY1>,
  1119. <&cru SRST_UPHY1_PIPE_L00>,
  1120. <&cru SRST_P_UPHY1_TCPHY>;
  1121. reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
  1122. rockchip,grf = <&grf>;
  1123. rockchip,typec-conn-dir = <0xe58c 0 16>;
  1124. rockchip,usb3tousb2-en = <0xe58c 3 19>;
  1125. rockchip,external-psm = <0xe594 14 30>;
  1126. rockchip,pipe-status = <0xe5c0 16 16>;
  1127. status = "disabled";
  1128. tcphy1_dp: dp-port {
  1129. #phy-cells = <0>;
  1130. };
  1131. tcphy1_usb3: usb3-port {
  1132. #phy-cells = <0>;
  1133. };
  1134. };
  1135. watchdog@ff848000 {
  1136. compatible = "snps,dw-wdt";
  1137. reg = <0x0 0xff848000 0x0 0x100>;
  1138. clocks = <&cru PCLK_WDT>;
  1139. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
  1140. };
  1141. rktimer: rktimer@ff850000 {
  1142. compatible = "rockchip,rk3399-timer";
  1143. reg = <0x0 0xff850000 0x0 0x1000>;
  1144. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>;
  1145. clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
  1146. clock-names = "pclk", "timer";
  1147. };
  1148. spdif: spdif@ff870000 {
  1149. compatible = "rockchip,rk3399-spdif";
  1150. reg = <0x0 0xff870000 0x0 0x1000>;
  1151. interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>;
  1152. dmas = <&dmac_bus 7>;
  1153. dma-names = "tx";
  1154. clock-names = "mclk", "hclk";
  1155. clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
  1156. pinctrl-names = "default";
  1157. pinctrl-0 = <&spdif_bus>;
  1158. status = "disabled";
  1159. };
  1160. i2s0: i2s@ff880000 {
  1161. compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
  1162. reg = <0x0 0xff880000 0x0 0x1000>;
  1163. rockchip,grf = <&grf>;
  1164. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>;
  1165. dmas = <&dmac_bus 0>, <&dmac_bus 1>;
  1166. dma-names = "tx", "rx";
  1167. clock-names = "i2s_clk", "i2s_hclk";
  1168. clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
  1169. pinctrl-names = "default";
  1170. pinctrl-0 = <&i2s0_8ch_bus>;
  1171. status = "disabled";
  1172. };
  1173. i2s1: i2s@ff890000 {
  1174. compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
  1175. reg = <0x0 0xff890000 0x0 0x1000>;
  1176. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>;
  1177. dmas = <&dmac_bus 2>, <&dmac_bus 3>;
  1178. dma-names = "tx", "rx";
  1179. clock-names = "i2s_clk", "i2s_hclk";
  1180. clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>;
  1181. pinctrl-names = "default";
  1182. pinctrl-0 = <&i2s1_2ch_bus>;
  1183. status = "disabled";
  1184. };
  1185. i2s2: i2s@ff8a0000 {
  1186. compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
  1187. reg = <0x0 0xff8a0000 0x0 0x1000>;
  1188. interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>;
  1189. dmas = <&dmac_bus 4>, <&dmac_bus 5>;
  1190. dma-names = "tx", "rx";
  1191. clock-names = "i2s_clk", "i2s_hclk";
  1192. clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
  1193. status = "disabled";
  1194. };
  1195. pinctrl: pinctrl {
  1196. compatible = "rockchip,rk3399-pinctrl";
  1197. rockchip,grf = <&grf>;
  1198. rockchip,pmu = <&pmugrf>;
  1199. #address-cells = <2>;
  1200. #size-cells = <2>;
  1201. ranges;
  1202. gpio0: gpio0@ff720000 {
  1203. compatible = "rockchip,gpio-bank";
  1204. reg = <0x0 0xff720000 0x0 0x100>;
  1205. clocks = <&pmucru PCLK_GPIO0_PMU>;
  1206. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
  1207. gpio-controller;
  1208. #gpio-cells = <0x2>;
  1209. interrupt-controller;
  1210. #interrupt-cells = <0x2>;
  1211. };
  1212. gpio1: gpio1@ff730000 {
  1213. compatible = "rockchip,gpio-bank";
  1214. reg = <0x0 0xff730000 0x0 0x100>;
  1215. clocks = <&pmucru PCLK_GPIO1_PMU>;
  1216. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>;
  1217. gpio-controller;
  1218. #gpio-cells = <0x2>;
  1219. interrupt-controller;
  1220. #interrupt-cells = <0x2>;
  1221. };
  1222. gpio2: gpio2@ff780000 {
  1223. compatible = "rockchip,gpio-bank";
  1224. reg = <0x0 0xff780000 0x0 0x100>;
  1225. clocks = <&cru PCLK_GPIO2>;
  1226. interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>;
  1227. gpio-controller;
  1228. #gpio-cells = <0x2>;
  1229. interrupt-controller;
  1230. #interrupt-cells = <0x2>;
  1231. };
  1232. gpio3: gpio3@ff788000 {
  1233. compatible = "rockchip,gpio-bank";
  1234. reg = <0x0 0xff788000 0x0 0x100>;
  1235. clocks = <&cru PCLK_GPIO3>;
  1236. interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
  1237. gpio-controller;
  1238. #gpio-cells = <0x2>;
  1239. interrupt-controller;
  1240. #interrupt-cells = <0x2>;
  1241. };
  1242. gpio4: gpio4@ff790000 {
  1243. compatible = "rockchip,gpio-bank";
  1244. reg = <0x0 0xff790000 0x0 0x100>;
  1245. clocks = <&cru PCLK_GPIO4>;
  1246. interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
  1247. gpio-controller;
  1248. #gpio-cells = <0x2>;
  1249. interrupt-controller;
  1250. #interrupt-cells = <0x2>;
  1251. };
  1252. pcfg_pull_up: pcfg-pull-up {
  1253. bias-pull-up;
  1254. };
  1255. pcfg_pull_down: pcfg-pull-down {
  1256. bias-pull-down;
  1257. };
  1258. pcfg_pull_none: pcfg-pull-none {
  1259. bias-disable;
  1260. };
  1261. pcfg_pull_none_12ma: pcfg-pull-none-12ma {
  1262. bias-disable;
  1263. drive-strength = <12>;
  1264. };
  1265. pcfg_pull_up_8ma: pcfg-pull-up-8ma {
  1266. bias-pull-up;
  1267. drive-strength = <8>;
  1268. };
  1269. pcfg_pull_down_4ma: pcfg-pull-down-4ma {
  1270. bias-pull-down;
  1271. drive-strength = <4>;
  1272. };
  1273. pcfg_pull_up_2ma: pcfg-pull-up-2ma {
  1274. bias-pull-up;
  1275. drive-strength = <2>;
  1276. };
  1277. pcfg_pull_down_12ma: pcfg-pull-down-12ma {
  1278. bias-pull-down;
  1279. drive-strength = <12>;
  1280. };
  1281. pcfg_pull_none_13ma: pcfg-pull-none-13ma {
  1282. bias-disable;
  1283. drive-strength = <13>;
  1284. };
  1285. clock {
  1286. clk_32k: clk-32k {
  1287. rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
  1288. };
  1289. };
  1290. gmac {
  1291. rgmii_pins: rgmii-pins {
  1292. rockchip,pins =
  1293. /* mac_txclk */
  1294. <3 17 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1295. /* mac_rxclk */
  1296. <3 14 RK_FUNC_1 &pcfg_pull_none>,
  1297. /* mac_mdio */
  1298. <3 13 RK_FUNC_1 &pcfg_pull_none>,
  1299. /* mac_txen */
  1300. <3 12 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1301. /* mac_clk */
  1302. <3 11 RK_FUNC_1 &pcfg_pull_none>,
  1303. /* mac_rxdv */
  1304. <3 9 RK_FUNC_1 &pcfg_pull_none>,
  1305. /* mac_mdc */
  1306. <3 8 RK_FUNC_1 &pcfg_pull_none>,
  1307. /* mac_rxd1 */
  1308. <3 7 RK_FUNC_1 &pcfg_pull_none>,
  1309. /* mac_rxd0 */
  1310. <3 6 RK_FUNC_1 &pcfg_pull_none>,
  1311. /* mac_txd1 */
  1312. <3 5 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1313. /* mac_txd0 */
  1314. <3 4 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1315. /* mac_rxd3 */
  1316. <3 3 RK_FUNC_1 &pcfg_pull_none>,
  1317. /* mac_rxd2 */
  1318. <3 2 RK_FUNC_1 &pcfg_pull_none>,
  1319. /* mac_txd3 */
  1320. <3 1 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1321. /* mac_txd2 */
  1322. <3 0 RK_FUNC_1 &pcfg_pull_none_13ma>;
  1323. };
  1324. rmii_pins: rmii-pins {
  1325. rockchip,pins =
  1326. /* mac_mdio */
  1327. <3 13 RK_FUNC_1 &pcfg_pull_none>,
  1328. /* mac_txen */
  1329. <3 12 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1330. /* mac_clk */
  1331. <3 11 RK_FUNC_1 &pcfg_pull_none>,
  1332. /* mac_rxer */
  1333. <3 10 RK_FUNC_1 &pcfg_pull_none>,
  1334. /* mac_rxdv */
  1335. <3 9 RK_FUNC_1 &pcfg_pull_none>,
  1336. /* mac_mdc */
  1337. <3 8 RK_FUNC_1 &pcfg_pull_none>,
  1338. /* mac_rxd1 */
  1339. <3 7 RK_FUNC_1 &pcfg_pull_none>,
  1340. /* mac_rxd0 */
  1341. <3 6 RK_FUNC_1 &pcfg_pull_none>,
  1342. /* mac_txd1 */
  1343. <3 5 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1344. /* mac_txd0 */
  1345. <3 4 RK_FUNC_1 &pcfg_pull_none_13ma>;
  1346. };
  1347. };
  1348. i2c0 {
  1349. i2c0_xfer: i2c0-xfer {
  1350. rockchip,pins =
  1351. <1 15 RK_FUNC_2 &pcfg_pull_none>,
  1352. <1 16 RK_FUNC_2 &pcfg_pull_none>;
  1353. };
  1354. };
  1355. i2c1 {
  1356. i2c1_xfer: i2c1-xfer {
  1357. rockchip,pins =
  1358. <4 2 RK_FUNC_1 &pcfg_pull_none>,
  1359. <4 1 RK_FUNC_1 &pcfg_pull_none>;
  1360. };
  1361. };
  1362. i2c2 {
  1363. i2c2_xfer: i2c2-xfer {
  1364. rockchip,pins =
  1365. <2 1 RK_FUNC_2 &pcfg_pull_none_12ma>,
  1366. <2 0 RK_FUNC_2 &pcfg_pull_none_12ma>;
  1367. };
  1368. };
  1369. i2c3 {
  1370. i2c3_xfer: i2c3-xfer {
  1371. rockchip,pins =
  1372. <4 17 RK_FUNC_1 &pcfg_pull_none>,
  1373. <4 16 RK_FUNC_1 &pcfg_pull_none>;
  1374. };
  1375. };
  1376. i2c4 {
  1377. i2c4_xfer: i2c4-xfer {
  1378. rockchip,pins =
  1379. <1 12 RK_FUNC_1 &pcfg_pull_none>,
  1380. <1 11 RK_FUNC_1 &pcfg_pull_none>;
  1381. };
  1382. };
  1383. i2c5 {
  1384. i2c5_xfer: i2c5-xfer {
  1385. rockchip,pins =
  1386. <3 11 RK_FUNC_2 &pcfg_pull_none>,
  1387. <3 10 RK_FUNC_2 &pcfg_pull_none>;
  1388. };
  1389. };
  1390. i2c6 {
  1391. i2c6_xfer: i2c6-xfer {
  1392. rockchip,pins =
  1393. <2 10 RK_FUNC_2 &pcfg_pull_none>,
  1394. <2 9 RK_FUNC_2 &pcfg_pull_none>;
  1395. };
  1396. };
  1397. i2c7 {
  1398. i2c7_xfer: i2c7-xfer {
  1399. rockchip,pins =
  1400. <2 8 RK_FUNC_2 &pcfg_pull_none>,
  1401. <2 7 RK_FUNC_2 &pcfg_pull_none>;
  1402. };
  1403. };
  1404. i2c8 {
  1405. i2c8_xfer: i2c8-xfer {
  1406. rockchip,pins =
  1407. <1 21 RK_FUNC_1 &pcfg_pull_none>,
  1408. <1 20 RK_FUNC_1 &pcfg_pull_none>;
  1409. };
  1410. };
  1411. i2s0 {
  1412. i2s0_8ch_bus: i2s0-8ch-bus {
  1413. rockchip,pins =
  1414. <3 24 RK_FUNC_1 &pcfg_pull_none>,
  1415. <3 25 RK_FUNC_1 &pcfg_pull_none>,
  1416. <3 26 RK_FUNC_1 &pcfg_pull_none>,
  1417. <3 27 RK_FUNC_1 &pcfg_pull_none>,
  1418. <3 28 RK_FUNC_1 &pcfg_pull_none>,
  1419. <3 29 RK_FUNC_1 &pcfg_pull_none>,
  1420. <3 30 RK_FUNC_1 &pcfg_pull_none>,
  1421. <3 31 RK_FUNC_1 &pcfg_pull_none>,
  1422. <4 0 RK_FUNC_1 &pcfg_pull_none>;
  1423. };
  1424. };
  1425. i2s1 {
  1426. i2s1_2ch_bus: i2s1-2ch-bus {
  1427. rockchip,pins =
  1428. <4 3 RK_FUNC_1 &pcfg_pull_none>,
  1429. <4 4 RK_FUNC_1 &pcfg_pull_none>,
  1430. <4 5 RK_FUNC_1 &pcfg_pull_none>,
  1431. <4 6 RK_FUNC_1 &pcfg_pull_none>,
  1432. <4 7 RK_FUNC_1 &pcfg_pull_none>;
  1433. };
  1434. };
  1435. sleep {
  1436. ap_pwroff: ap-pwroff {
  1437. rockchip,pins = <1 5 RK_FUNC_1 &pcfg_pull_none>;
  1438. };
  1439. ddrio_pwroff: ddrio-pwroff {
  1440. rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
  1441. };
  1442. };
  1443. spdif {
  1444. spdif_bus: spdif-bus {
  1445. rockchip,pins =
  1446. <4 21 RK_FUNC_1 &pcfg_pull_none>;
  1447. };
  1448. };
  1449. spi0 {
  1450. spi0_clk: spi0-clk {
  1451. rockchip,pins =
  1452. <3 6 RK_FUNC_2 &pcfg_pull_up>;
  1453. };
  1454. spi0_cs0: spi0-cs0 {
  1455. rockchip,pins =
  1456. <3 7 RK_FUNC_2 &pcfg_pull_up>;
  1457. };
  1458. spi0_cs1: spi0-cs1 {
  1459. rockchip,pins =
  1460. <3 8 RK_FUNC_2 &pcfg_pull_up>;
  1461. };
  1462. spi0_tx: spi0-tx {
  1463. rockchip,pins =
  1464. <3 5 RK_FUNC_2 &pcfg_pull_up>;
  1465. };
  1466. spi0_rx: spi0-rx {
  1467. rockchip,pins =
  1468. <3 4 RK_FUNC_2 &pcfg_pull_up>;
  1469. };
  1470. };
  1471. spi1 {
  1472. spi1_clk: spi1-clk {
  1473. rockchip,pins =
  1474. <1 9 RK_FUNC_2 &pcfg_pull_up>;
  1475. };
  1476. spi1_cs0: spi1-cs0 {
  1477. rockchip,pins =
  1478. <1 10 RK_FUNC_2 &pcfg_pull_up>;
  1479. };
  1480. spi1_rx: spi1-rx {
  1481. rockchip,pins =
  1482. <1 7 RK_FUNC_2 &pcfg_pull_up>;
  1483. };
  1484. spi1_tx: spi1-tx {
  1485. rockchip,pins =
  1486. <1 8 RK_FUNC_2 &pcfg_pull_up>;
  1487. };
  1488. };
  1489. spi2 {
  1490. spi2_clk: spi2-clk {
  1491. rockchip,pins =
  1492. <2 11 RK_FUNC_1 &pcfg_pull_up>;
  1493. };
  1494. spi2_cs0: spi2-cs0 {
  1495. rockchip,pins =
  1496. <2 12 RK_FUNC_1 &pcfg_pull_up>;
  1497. };
  1498. spi2_rx: spi2-rx {
  1499. rockchip,pins =
  1500. <2 9 RK_FUNC_1 &pcfg_pull_up>;
  1501. };
  1502. spi2_tx: spi2-tx {
  1503. rockchip,pins =
  1504. <2 10 RK_FUNC_1 &pcfg_pull_up>;
  1505. };
  1506. };
  1507. spi3 {
  1508. spi3_clk: spi3-clk {
  1509. rockchip,pins =
  1510. <1 17 RK_FUNC_1 &pcfg_pull_up>;
  1511. };
  1512. spi3_cs0: spi3-cs0 {
  1513. rockchip,pins =
  1514. <1 18 RK_FUNC_1 &pcfg_pull_up>;
  1515. };
  1516. spi3_rx: spi3-rx {
  1517. rockchip,pins =
  1518. <1 15 RK_FUNC_1 &pcfg_pull_up>;
  1519. };
  1520. spi3_tx: spi3-tx {
  1521. rockchip,pins =
  1522. <1 16 RK_FUNC_1 &pcfg_pull_up>;
  1523. };
  1524. };
  1525. spi4 {
  1526. spi4_clk: spi4-clk {
  1527. rockchip,pins =
  1528. <3 2 RK_FUNC_2 &pcfg_pull_up>;
  1529. };
  1530. spi4_cs0: spi4-cs0 {
  1531. rockchip,pins =
  1532. <3 3 RK_FUNC_2 &pcfg_pull_up>;
  1533. };
  1534. spi4_rx: spi4-rx {
  1535. rockchip,pins =
  1536. <3 0 RK_FUNC_2 &pcfg_pull_up>;
  1537. };
  1538. spi4_tx: spi4-tx {
  1539. rockchip,pins =
  1540. <3 1 RK_FUNC_2 &pcfg_pull_up>;
  1541. };
  1542. };
  1543. spi5 {
  1544. spi5_clk: spi5-clk {
  1545. rockchip,pins =
  1546. <2 22 RK_FUNC_2 &pcfg_pull_up>;
  1547. };
  1548. spi5_cs0: spi5-cs0 {
  1549. rockchip,pins =
  1550. <2 23 RK_FUNC_2 &pcfg_pull_up>;
  1551. };
  1552. spi5_rx: spi5-rx {
  1553. rockchip,pins =
  1554. <2 20 RK_FUNC_2 &pcfg_pull_up>;
  1555. };
  1556. spi5_tx: spi5-tx {
  1557. rockchip,pins =
  1558. <2 21 RK_FUNC_2 &pcfg_pull_up>;
  1559. };
  1560. };
  1561. tsadc {
  1562. otp_gpio: otp-gpio {
  1563. rockchip,pins = <1 6 RK_FUNC_GPIO &pcfg_pull_none>;
  1564. };
  1565. otp_out: otp-out {
  1566. rockchip,pins = <1 6 RK_FUNC_1 &pcfg_pull_none>;
  1567. };
  1568. };
  1569. uart0 {
  1570. uart0_xfer: uart0-xfer {
  1571. rockchip,pins =
  1572. <2 16 RK_FUNC_1 &pcfg_pull_up>,
  1573. <2 17 RK_FUNC_1 &pcfg_pull_none>;
  1574. };
  1575. uart0_cts: uart0-cts {
  1576. rockchip,pins =
  1577. <2 18 RK_FUNC_1 &pcfg_pull_none>;
  1578. };
  1579. uart0_rts: uart0-rts {
  1580. rockchip,pins =
  1581. <2 19 RK_FUNC_1 &pcfg_pull_none>;
  1582. };
  1583. };
  1584. uart1 {
  1585. uart1_xfer: uart1-xfer {
  1586. rockchip,pins =
  1587. <3 12 RK_FUNC_2 &pcfg_pull_up>,
  1588. <3 13 RK_FUNC_2 &pcfg_pull_none>;
  1589. };
  1590. };
  1591. uart2a {
  1592. uart2a_xfer: uart2a-xfer {
  1593. rockchip,pins =
  1594. <4 8 RK_FUNC_2 &pcfg_pull_up>,
  1595. <4 9 RK_FUNC_2 &pcfg_pull_none>;
  1596. };
  1597. };
  1598. uart2b {
  1599. uart2b_xfer: uart2b-xfer {
  1600. rockchip,pins =
  1601. <4 16 RK_FUNC_2 &pcfg_pull_up>,
  1602. <4 17 RK_FUNC_2 &pcfg_pull_none>;
  1603. };
  1604. };
  1605. uart2c {
  1606. uart2c_xfer: uart2c-xfer {
  1607. rockchip,pins =
  1608. <4 19 RK_FUNC_1 &pcfg_pull_up>,
  1609. <4 20 RK_FUNC_1 &pcfg_pull_none>;
  1610. };
  1611. };
  1612. uart3 {
  1613. uart3_xfer: uart3-xfer {
  1614. rockchip,pins =
  1615. <3 14 RK_FUNC_2 &pcfg_pull_up>,
  1616. <3 15 RK_FUNC_2 &pcfg_pull_none>;
  1617. };
  1618. uart3_cts: uart3-cts {
  1619. rockchip,pins =
  1620. <3 18 RK_FUNC_2 &pcfg_pull_none>;
  1621. };
  1622. uart3_rts: uart3-rts {
  1623. rockchip,pins =
  1624. <3 19 RK_FUNC_2 &pcfg_pull_none>;
  1625. };
  1626. };
  1627. uart4 {
  1628. uart4_xfer: uart4-xfer {
  1629. rockchip,pins =
  1630. <1 7 RK_FUNC_1 &pcfg_pull_up>,
  1631. <1 8 RK_FUNC_1 &pcfg_pull_none>;
  1632. };
  1633. };
  1634. uarthdcp {
  1635. uarthdcp_xfer: uarthdcp-xfer {
  1636. rockchip,pins =
  1637. <4 21 RK_FUNC_2 &pcfg_pull_up>,
  1638. <4 22 RK_FUNC_2 &pcfg_pull_none>;
  1639. };
  1640. };
  1641. pwm0 {
  1642. pwm0_pin: pwm0-pin {
  1643. rockchip,pins =
  1644. <4 18 RK_FUNC_1 &pcfg_pull_none>;
  1645. };
  1646. vop0_pwm_pin: vop0-pwm-pin {
  1647. rockchip,pins =
  1648. <4 18 RK_FUNC_2 &pcfg_pull_none>;
  1649. };
  1650. };
  1651. pwm1 {
  1652. pwm1_pin: pwm1-pin {
  1653. rockchip,pins =
  1654. <4 22 RK_FUNC_1 &pcfg_pull_none>;
  1655. };
  1656. vop1_pwm_pin: vop1-pwm-pin {
  1657. rockchip,pins =
  1658. <4 18 RK_FUNC_3 &pcfg_pull_none>;
  1659. };
  1660. };
  1661. pwm2 {
  1662. pwm2_pin: pwm2-pin {
  1663. rockchip,pins =
  1664. <1 19 RK_FUNC_1 &pcfg_pull_none>;
  1665. };
  1666. };
  1667. pwm3a {
  1668. pwm3a_pin: pwm3a-pin {
  1669. rockchip,pins =
  1670. <0 6 RK_FUNC_1 &pcfg_pull_none>;
  1671. };
  1672. };
  1673. pwm3b {
  1674. pwm3b_pin: pwm3b-pin {
  1675. rockchip,pins =
  1676. <1 14 RK_FUNC_1 &pcfg_pull_none>;
  1677. };
  1678. };
  1679. pcie {
  1680. pcie_clkreqn: pci-clkreqn {
  1681. rockchip,pins =
  1682. <2 26 RK_FUNC_2 &pcfg_pull_none>;
  1683. };
  1684. pcie_clkreqnb: pci-clkreqnb {
  1685. rockchip,pins =
  1686. <4 24 RK_FUNC_1 &pcfg_pull_none>;
  1687. };
  1688. };
  1689. };
  1690. };