rk3399.dtsi 60 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461
  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. ethernet0 = &gmac;
  56. i2c0 = &i2c0;
  57. i2c1 = &i2c1;
  58. i2c2 = &i2c2;
  59. i2c3 = &i2c3;
  60. i2c4 = &i2c4;
  61. i2c5 = &i2c5;
  62. i2c6 = &i2c6;
  63. i2c7 = &i2c7;
  64. i2c8 = &i2c8;
  65. serial0 = &uart0;
  66. serial1 = &uart1;
  67. serial2 = &uart2;
  68. serial3 = &uart3;
  69. serial4 = &uart4;
  70. };
  71. cpus {
  72. #address-cells = <2>;
  73. #size-cells = <0>;
  74. cpu-map {
  75. cluster0 {
  76. core0 {
  77. cpu = <&cpu_l0>;
  78. };
  79. core1 {
  80. cpu = <&cpu_l1>;
  81. };
  82. core2 {
  83. cpu = <&cpu_l2>;
  84. };
  85. core3 {
  86. cpu = <&cpu_l3>;
  87. };
  88. };
  89. cluster1 {
  90. core0 {
  91. cpu = <&cpu_b0>;
  92. };
  93. core1 {
  94. cpu = <&cpu_b1>;
  95. };
  96. };
  97. };
  98. cpu_l0: cpu@0 {
  99. device_type = "cpu";
  100. compatible = "arm,cortex-a53", "arm,armv8";
  101. reg = <0x0 0x0>;
  102. enable-method = "psci";
  103. #cooling-cells = <2>; /* min followed by max */
  104. clocks = <&cru ARMCLKL>;
  105. dynamic-power-coefficient = <100>;
  106. };
  107. cpu_l1: cpu@1 {
  108. device_type = "cpu";
  109. compatible = "arm,cortex-a53", "arm,armv8";
  110. reg = <0x0 0x1>;
  111. enable-method = "psci";
  112. clocks = <&cru ARMCLKL>;
  113. dynamic-power-coefficient = <100>;
  114. };
  115. cpu_l2: cpu@2 {
  116. device_type = "cpu";
  117. compatible = "arm,cortex-a53", "arm,armv8";
  118. reg = <0x0 0x2>;
  119. enable-method = "psci";
  120. clocks = <&cru ARMCLKL>;
  121. dynamic-power-coefficient = <100>;
  122. };
  123. cpu_l3: cpu@3 {
  124. device_type = "cpu";
  125. compatible = "arm,cortex-a53", "arm,armv8";
  126. reg = <0x0 0x3>;
  127. enable-method = "psci";
  128. clocks = <&cru ARMCLKL>;
  129. dynamic-power-coefficient = <100>;
  130. };
  131. cpu_b0: cpu@100 {
  132. device_type = "cpu";
  133. compatible = "arm,cortex-a72", "arm,armv8";
  134. reg = <0x0 0x100>;
  135. enable-method = "psci";
  136. #cooling-cells = <2>; /* min followed by max */
  137. clocks = <&cru ARMCLKB>;
  138. dynamic-power-coefficient = <436>;
  139. };
  140. cpu_b1: cpu@101 {
  141. device_type = "cpu";
  142. compatible = "arm,cortex-a72", "arm,armv8";
  143. reg = <0x0 0x101>;
  144. enable-method = "psci";
  145. clocks = <&cru ARMCLKB>;
  146. dynamic-power-coefficient = <436>;
  147. };
  148. };
  149. display-subsystem {
  150. compatible = "rockchip,display-subsystem";
  151. ports = <&vopl_out>, <&vopb_out>;
  152. };
  153. pmu_a53 {
  154. compatible = "arm,cortex-a53-pmu";
  155. interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
  156. };
  157. pmu_a72 {
  158. compatible = "arm,cortex-a72-pmu";
  159. interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
  160. };
  161. psci {
  162. compatible = "arm,psci-1.0";
  163. method = "smc";
  164. };
  165. timer {
  166. compatible = "arm,armv8-timer";
  167. interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
  168. <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
  169. <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
  170. <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
  171. arm,no-tick-in-suspend;
  172. };
  173. xin24m: xin24m {
  174. compatible = "fixed-clock";
  175. clock-frequency = <24000000>;
  176. clock-output-names = "xin24m";
  177. #clock-cells = <0>;
  178. };
  179. amba {
  180. compatible = "simple-bus";
  181. #address-cells = <2>;
  182. #size-cells = <2>;
  183. ranges;
  184. dmac_bus: dma-controller@ff6d0000 {
  185. compatible = "arm,pl330", "arm,primecell";
  186. reg = <0x0 0xff6d0000 0x0 0x4000>;
  187. interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
  188. <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
  189. #dma-cells = <1>;
  190. clocks = <&cru ACLK_DMAC0_PERILP>;
  191. clock-names = "apb_pclk";
  192. };
  193. dmac_peri: dma-controller@ff6e0000 {
  194. compatible = "arm,pl330", "arm,primecell";
  195. reg = <0x0 0xff6e0000 0x0 0x4000>;
  196. interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
  197. <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
  198. #dma-cells = <1>;
  199. clocks = <&cru ACLK_DMAC1_PERILP>;
  200. clock-names = "apb_pclk";
  201. };
  202. };
  203. pcie0: pcie@f8000000 {
  204. compatible = "rockchip,rk3399-pcie";
  205. reg = <0x0 0xf8000000 0x0 0x2000000>,
  206. <0x0 0xfd000000 0x0 0x1000000>;
  207. reg-names = "axi-base", "apb-base";
  208. #address-cells = <3>;
  209. #size-cells = <2>;
  210. #interrupt-cells = <1>;
  211. aspm-no-l0s;
  212. bus-range = <0x0 0x1f>;
  213. clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
  214. <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
  215. clock-names = "aclk", "aclk-perf",
  216. "hclk", "pm";
  217. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
  218. <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
  219. <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
  220. interrupt-names = "sys", "legacy", "client";
  221. interrupt-map-mask = <0 0 0 7>;
  222. interrupt-map = <0 0 0 1 &pcie0_intc 0>,
  223. <0 0 0 2 &pcie0_intc 1>,
  224. <0 0 0 3 &pcie0_intc 2>,
  225. <0 0 0 4 &pcie0_intc 3>;
  226. linux,pci-domain = <0>;
  227. max-link-speed = <1>;
  228. msi-map = <0x0 &its 0x0 0x1000>;
  229. phys = <&pcie_phy 0>, <&pcie_phy 1>,
  230. <&pcie_phy 2>, <&pcie_phy 3>;
  231. phy-names = "pcie-phy-0", "pcie-phy-1",
  232. "pcie-phy-2", "pcie-phy-3";
  233. ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000
  234. 0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
  235. resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
  236. <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
  237. <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
  238. <&cru SRST_A_PCIE>;
  239. reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
  240. "pm", "pclk", "aclk";
  241. status = "disabled";
  242. pcie0_intc: interrupt-controller {
  243. interrupt-controller;
  244. #address-cells = <0>;
  245. #interrupt-cells = <1>;
  246. };
  247. };
  248. gmac: ethernet@fe300000 {
  249. compatible = "rockchip,rk3399-gmac";
  250. reg = <0x0 0xfe300000 0x0 0x10000>;
  251. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
  252. interrupt-names = "macirq";
  253. clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
  254. <&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>,
  255. <&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>,
  256. <&cru PCLK_GMAC>;
  257. clock-names = "stmmaceth", "mac_clk_rx",
  258. "mac_clk_tx", "clk_mac_ref",
  259. "clk_mac_refout", "aclk_mac",
  260. "pclk_mac";
  261. power-domains = <&power RK3399_PD_GMAC>;
  262. resets = <&cru SRST_A_GMAC>;
  263. reset-names = "stmmaceth";
  264. rockchip,grf = <&grf>;
  265. status = "disabled";
  266. };
  267. sdio0: dwmmc@fe310000 {
  268. compatible = "rockchip,rk3399-dw-mshc",
  269. "rockchip,rk3288-dw-mshc";
  270. reg = <0x0 0xfe310000 0x0 0x4000>;
  271. interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>;
  272. max-frequency = <150000000>;
  273. clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
  274. <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
  275. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  276. fifo-depth = <0x100>;
  277. power-domains = <&power RK3399_PD_SDIOAUDIO>;
  278. resets = <&cru SRST_SDIO0>;
  279. reset-names = "reset";
  280. status = "disabled";
  281. };
  282. sdmmc: dwmmc@fe320000 {
  283. compatible = "rockchip,rk3399-dw-mshc",
  284. "rockchip,rk3288-dw-mshc";
  285. reg = <0x0 0xfe320000 0x0 0x4000>;
  286. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>;
  287. max-frequency = <150000000>;
  288. clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
  289. <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
  290. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  291. fifo-depth = <0x100>;
  292. power-domains = <&power RK3399_PD_SD>;
  293. resets = <&cru SRST_SDMMC>;
  294. reset-names = "reset";
  295. status = "disabled";
  296. };
  297. sdhci: sdhci@fe330000 {
  298. compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
  299. reg = <0x0 0xfe330000 0x0 0x10000>;
  300. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
  301. arasan,soc-ctl-syscon = <&grf>;
  302. assigned-clocks = <&cru SCLK_EMMC>;
  303. assigned-clock-rates = <200000000>;
  304. clocks = <&cru SCLK_EMMC>, <&cru ACLK_EMMC>;
  305. clock-names = "clk_xin", "clk_ahb";
  306. clock-output-names = "emmc_cardclock";
  307. #clock-cells = <0>;
  308. phys = <&emmc_phy>;
  309. phy-names = "phy_arasan";
  310. power-domains = <&power RK3399_PD_EMMC>;
  311. status = "disabled";
  312. };
  313. usb_host0_ehci: usb@fe380000 {
  314. compatible = "generic-ehci";
  315. reg = <0x0 0xfe380000 0x0 0x20000>;
  316. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH 0>;
  317. clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
  318. <&u2phy0>;
  319. clock-names = "usbhost", "arbiter",
  320. "utmi";
  321. phys = <&u2phy0_host>;
  322. phy-names = "usb";
  323. status = "disabled";
  324. };
  325. usb_host0_ohci: usb@fe3a0000 {
  326. compatible = "generic-ohci";
  327. reg = <0x0 0xfe3a0000 0x0 0x20000>;
  328. interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>;
  329. clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
  330. <&u2phy0>;
  331. clock-names = "usbhost", "arbiter",
  332. "utmi";
  333. phys = <&u2phy0_host>;
  334. phy-names = "usb";
  335. status = "disabled";
  336. };
  337. usb_host1_ehci: usb@fe3c0000 {
  338. compatible = "generic-ehci";
  339. reg = <0x0 0xfe3c0000 0x0 0x20000>;
  340. interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>;
  341. clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
  342. <&u2phy1>;
  343. clock-names = "usbhost", "arbiter",
  344. "utmi";
  345. phys = <&u2phy1_host>;
  346. phy-names = "usb";
  347. status = "disabled";
  348. };
  349. usb_host1_ohci: usb@fe3e0000 {
  350. compatible = "generic-ohci";
  351. reg = <0x0 0xfe3e0000 0x0 0x20000>;
  352. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>;
  353. clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
  354. <&u2phy1>;
  355. clock-names = "usbhost", "arbiter",
  356. "utmi";
  357. phys = <&u2phy1_host>;
  358. phy-names = "usb";
  359. status = "disabled";
  360. };
  361. usbdrd3_0: usb@fe800000 {
  362. compatible = "rockchip,rk3399-dwc3";
  363. #address-cells = <2>;
  364. #size-cells = <2>;
  365. ranges;
  366. clocks = <&cru SCLK_USB3OTG0_REF>, <&cru SCLK_USB3OTG0_SUSPEND>,
  367. <&cru ACLK_USB3OTG0>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
  368. <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
  369. clock-names = "ref_clk", "suspend_clk",
  370. "bus_clk", "aclk_usb3_rksoc_axi_perf",
  371. "aclk_usb3", "grf_clk";
  372. resets = <&cru SRST_A_USB3_OTG0>;
  373. reset-names = "usb3-otg";
  374. status = "disabled";
  375. usbdrd_dwc3_0: dwc3 {
  376. compatible = "snps,dwc3";
  377. reg = <0x0 0xfe800000 0x0 0x100000>;
  378. interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
  379. dr_mode = "otg";
  380. phys = <&u2phy0_otg>, <&tcphy0_usb3>;
  381. phy-names = "usb2-phy", "usb3-phy";
  382. phy_type = "utmi_wide";
  383. snps,dis_enblslpm_quirk;
  384. snps,dis-u2-freeclk-exists-quirk;
  385. snps,dis_u2_susphy_quirk;
  386. snps,dis-del-phy-power-chg-quirk;
  387. snps,dis-tx-ipgap-linecheck-quirk;
  388. power-domains = <&power RK3399_PD_USB3>;
  389. status = "disabled";
  390. };
  391. };
  392. usbdrd3_1: usb@fe900000 {
  393. compatible = "rockchip,rk3399-dwc3";
  394. #address-cells = <2>;
  395. #size-cells = <2>;
  396. ranges;
  397. clocks = <&cru SCLK_USB3OTG1_REF>, <&cru SCLK_USB3OTG1_SUSPEND>,
  398. <&cru ACLK_USB3OTG1>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
  399. <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
  400. clock-names = "ref_clk", "suspend_clk",
  401. "bus_clk", "aclk_usb3_rksoc_axi_perf",
  402. "aclk_usb3", "grf_clk";
  403. resets = <&cru SRST_A_USB3_OTG1>;
  404. reset-names = "usb3-otg";
  405. status = "disabled";
  406. usbdrd_dwc3_1: dwc3 {
  407. compatible = "snps,dwc3";
  408. reg = <0x0 0xfe900000 0x0 0x100000>;
  409. interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
  410. dr_mode = "otg";
  411. phys = <&u2phy1_otg>, <&tcphy1_usb3>;
  412. phy-names = "usb2-phy", "usb3-phy";
  413. phy_type = "utmi_wide";
  414. snps,dis_enblslpm_quirk;
  415. snps,dis-u2-freeclk-exists-quirk;
  416. snps,dis_u2_susphy_quirk;
  417. snps,dis-del-phy-power-chg-quirk;
  418. snps,dis-tx-ipgap-linecheck-quirk;
  419. power-domains = <&power RK3399_PD_USB3>;
  420. status = "disabled";
  421. };
  422. };
  423. gic: interrupt-controller@fee00000 {
  424. compatible = "arm,gic-v3";
  425. #interrupt-cells = <4>;
  426. #address-cells = <2>;
  427. #size-cells = <2>;
  428. ranges;
  429. interrupt-controller;
  430. reg = <0x0 0xfee00000 0 0x10000>, /* GICD */
  431. <0x0 0xfef00000 0 0xc0000>, /* GICR */
  432. <0x0 0xfff00000 0 0x10000>, /* GICC */
  433. <0x0 0xfff10000 0 0x10000>, /* GICH */
  434. <0x0 0xfff20000 0 0x10000>; /* GICV */
  435. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
  436. its: interrupt-controller@fee20000 {
  437. compatible = "arm,gic-v3-its";
  438. msi-controller;
  439. reg = <0x0 0xfee20000 0x0 0x20000>;
  440. };
  441. ppi-partitions {
  442. ppi_cluster0: interrupt-partition-0 {
  443. affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
  444. };
  445. ppi_cluster1: interrupt-partition-1 {
  446. affinity = <&cpu_b0 &cpu_b1>;
  447. };
  448. };
  449. };
  450. saradc: saradc@ff100000 {
  451. compatible = "rockchip,rk3399-saradc";
  452. reg = <0x0 0xff100000 0x0 0x100>;
  453. interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>;
  454. #io-channel-cells = <1>;
  455. clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
  456. clock-names = "saradc", "apb_pclk";
  457. resets = <&cru SRST_P_SARADC>;
  458. reset-names = "saradc-apb";
  459. status = "disabled";
  460. };
  461. i2c1: i2c@ff110000 {
  462. compatible = "rockchip,rk3399-i2c";
  463. reg = <0x0 0xff110000 0x0 0x1000>;
  464. assigned-clocks = <&cru SCLK_I2C1>;
  465. assigned-clock-rates = <200000000>;
  466. clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
  467. clock-names = "i2c", "pclk";
  468. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH 0>;
  469. pinctrl-names = "default";
  470. pinctrl-0 = <&i2c1_xfer>;
  471. #address-cells = <1>;
  472. #size-cells = <0>;
  473. status = "disabled";
  474. };
  475. i2c2: i2c@ff120000 {
  476. compatible = "rockchip,rk3399-i2c";
  477. reg = <0x0 0xff120000 0x0 0x1000>;
  478. assigned-clocks = <&cru SCLK_I2C2>;
  479. assigned-clock-rates = <200000000>;
  480. clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
  481. clock-names = "i2c", "pclk";
  482. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 0>;
  483. pinctrl-names = "default";
  484. pinctrl-0 = <&i2c2_xfer>;
  485. #address-cells = <1>;
  486. #size-cells = <0>;
  487. status = "disabled";
  488. };
  489. i2c3: i2c@ff130000 {
  490. compatible = "rockchip,rk3399-i2c";
  491. reg = <0x0 0xff130000 0x0 0x1000>;
  492. assigned-clocks = <&cru SCLK_I2C3>;
  493. assigned-clock-rates = <200000000>;
  494. clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
  495. clock-names = "i2c", "pclk";
  496. interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 0>;
  497. pinctrl-names = "default";
  498. pinctrl-0 = <&i2c3_xfer>;
  499. #address-cells = <1>;
  500. #size-cells = <0>;
  501. status = "disabled";
  502. };
  503. i2c5: i2c@ff140000 {
  504. compatible = "rockchip,rk3399-i2c";
  505. reg = <0x0 0xff140000 0x0 0x1000>;
  506. assigned-clocks = <&cru SCLK_I2C5>;
  507. assigned-clock-rates = <200000000>;
  508. clocks = <&cru SCLK_I2C5>, <&cru PCLK_I2C5>;
  509. clock-names = "i2c", "pclk";
  510. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>;
  511. pinctrl-names = "default";
  512. pinctrl-0 = <&i2c5_xfer>;
  513. #address-cells = <1>;
  514. #size-cells = <0>;
  515. status = "disabled";
  516. };
  517. i2c6: i2c@ff150000 {
  518. compatible = "rockchip,rk3399-i2c";
  519. reg = <0x0 0xff150000 0x0 0x1000>;
  520. assigned-clocks = <&cru SCLK_I2C6>;
  521. assigned-clock-rates = <200000000>;
  522. clocks = <&cru SCLK_I2C6>, <&cru PCLK_I2C6>;
  523. clock-names = "i2c", "pclk";
  524. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH 0>;
  525. pinctrl-names = "default";
  526. pinctrl-0 = <&i2c6_xfer>;
  527. #address-cells = <1>;
  528. #size-cells = <0>;
  529. status = "disabled";
  530. };
  531. i2c7: i2c@ff160000 {
  532. compatible = "rockchip,rk3399-i2c";
  533. reg = <0x0 0xff160000 0x0 0x1000>;
  534. assigned-clocks = <&cru SCLK_I2C7>;
  535. assigned-clock-rates = <200000000>;
  536. clocks = <&cru SCLK_I2C7>, <&cru PCLK_I2C7>;
  537. clock-names = "i2c", "pclk";
  538. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH 0>;
  539. pinctrl-names = "default";
  540. pinctrl-0 = <&i2c7_xfer>;
  541. #address-cells = <1>;
  542. #size-cells = <0>;
  543. status = "disabled";
  544. };
  545. uart0: serial@ff180000 {
  546. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  547. reg = <0x0 0xff180000 0x0 0x100>;
  548. clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
  549. clock-names = "baudclk", "apb_pclk";
  550. interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
  551. reg-shift = <2>;
  552. reg-io-width = <4>;
  553. pinctrl-names = "default";
  554. pinctrl-0 = <&uart0_xfer>;
  555. status = "disabled";
  556. };
  557. uart1: serial@ff190000 {
  558. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  559. reg = <0x0 0xff190000 0x0 0x100>;
  560. clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
  561. clock-names = "baudclk", "apb_pclk";
  562. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>;
  563. reg-shift = <2>;
  564. reg-io-width = <4>;
  565. pinctrl-names = "default";
  566. pinctrl-0 = <&uart1_xfer>;
  567. status = "disabled";
  568. };
  569. uart2: serial@ff1a0000 {
  570. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  571. reg = <0x0 0xff1a0000 0x0 0x100>;
  572. clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
  573. clock-names = "baudclk", "apb_pclk";
  574. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>;
  575. reg-shift = <2>;
  576. reg-io-width = <4>;
  577. pinctrl-names = "default";
  578. pinctrl-0 = <&uart2c_xfer>;
  579. status = "disabled";
  580. };
  581. uart3: serial@ff1b0000 {
  582. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  583. reg = <0x0 0xff1b0000 0x0 0x100>;
  584. clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
  585. clock-names = "baudclk", "apb_pclk";
  586. interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>;
  587. reg-shift = <2>;
  588. reg-io-width = <4>;
  589. pinctrl-names = "default";
  590. pinctrl-0 = <&uart3_xfer>;
  591. status = "disabled";
  592. };
  593. spi0: spi@ff1c0000 {
  594. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  595. reg = <0x0 0xff1c0000 0x0 0x1000>;
  596. clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
  597. clock-names = "spiclk", "apb_pclk";
  598. interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH 0>;
  599. pinctrl-names = "default";
  600. pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
  601. #address-cells = <1>;
  602. #size-cells = <0>;
  603. status = "disabled";
  604. };
  605. spi1: spi@ff1d0000 {
  606. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  607. reg = <0x0 0xff1d0000 0x0 0x1000>;
  608. clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
  609. clock-names = "spiclk", "apb_pclk";
  610. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>;
  611. pinctrl-names = "default";
  612. pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
  613. #address-cells = <1>;
  614. #size-cells = <0>;
  615. status = "disabled";
  616. };
  617. spi2: spi@ff1e0000 {
  618. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  619. reg = <0x0 0xff1e0000 0x0 0x1000>;
  620. clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
  621. clock-names = "spiclk", "apb_pclk";
  622. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH 0>;
  623. pinctrl-names = "default";
  624. pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
  625. #address-cells = <1>;
  626. #size-cells = <0>;
  627. status = "disabled";
  628. };
  629. spi4: spi@ff1f0000 {
  630. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  631. reg = <0x0 0xff1f0000 0x0 0x1000>;
  632. clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>;
  633. clock-names = "spiclk", "apb_pclk";
  634. interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH 0>;
  635. pinctrl-names = "default";
  636. pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>;
  637. #address-cells = <1>;
  638. #size-cells = <0>;
  639. status = "disabled";
  640. };
  641. spi5: spi@ff200000 {
  642. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  643. reg = <0x0 0xff200000 0x0 0x1000>;
  644. clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>;
  645. clock-names = "spiclk", "apb_pclk";
  646. interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH 0>;
  647. pinctrl-names = "default";
  648. pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>;
  649. power-domains = <&power RK3399_PD_SDIOAUDIO>;
  650. #address-cells = <1>;
  651. #size-cells = <0>;
  652. status = "disabled";
  653. };
  654. thermal_zones: thermal-zones {
  655. cpu_thermal: cpu {
  656. polling-delay-passive = <100>;
  657. polling-delay = <1000>;
  658. thermal-sensors = <&tsadc 0>;
  659. trips {
  660. cpu_alert0: cpu_alert0 {
  661. temperature = <70000>;
  662. hysteresis = <2000>;
  663. type = "passive";
  664. };
  665. cpu_alert1: cpu_alert1 {
  666. temperature = <75000>;
  667. hysteresis = <2000>;
  668. type = "passive";
  669. };
  670. cpu_crit: cpu_crit {
  671. temperature = <95000>;
  672. hysteresis = <2000>;
  673. type = "critical";
  674. };
  675. };
  676. cooling-maps {
  677. map0 {
  678. trip = <&cpu_alert0>;
  679. cooling-device =
  680. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  681. };
  682. map1 {
  683. trip = <&cpu_alert1>;
  684. cooling-device =
  685. <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  686. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  687. };
  688. };
  689. };
  690. gpu_thermal: gpu {
  691. polling-delay-passive = <100>;
  692. polling-delay = <1000>;
  693. thermal-sensors = <&tsadc 1>;
  694. trips {
  695. gpu_alert0: gpu_alert0 {
  696. temperature = <75000>;
  697. hysteresis = <2000>;
  698. type = "passive";
  699. };
  700. gpu_crit: gpu_crit {
  701. temperature = <95000>;
  702. hysteresis = <2000>;
  703. type = "critical";
  704. };
  705. };
  706. cooling-maps {
  707. map0 {
  708. trip = <&gpu_alert0>;
  709. cooling-device =
  710. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  711. };
  712. };
  713. };
  714. };
  715. tsadc: tsadc@ff260000 {
  716. compatible = "rockchip,rk3399-tsadc";
  717. reg = <0x0 0xff260000 0x0 0x100>;
  718. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
  719. assigned-clocks = <&cru SCLK_TSADC>;
  720. assigned-clock-rates = <750000>;
  721. clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
  722. clock-names = "tsadc", "apb_pclk";
  723. resets = <&cru SRST_TSADC>;
  724. reset-names = "tsadc-apb";
  725. rockchip,grf = <&grf>;
  726. rockchip,hw-tshut-temp = <95000>;
  727. pinctrl-names = "init", "default", "sleep";
  728. pinctrl-0 = <&otp_gpio>;
  729. pinctrl-1 = <&otp_out>;
  730. pinctrl-2 = <&otp_gpio>;
  731. #thermal-sensor-cells = <1>;
  732. status = "disabled";
  733. };
  734. qos_emmc: qos@ffa58000 {
  735. compatible = "syscon";
  736. reg = <0x0 0xffa58000 0x0 0x20>;
  737. };
  738. qos_gmac: qos@ffa5c000 {
  739. compatible = "syscon";
  740. reg = <0x0 0xffa5c000 0x0 0x20>;
  741. };
  742. qos_pcie: qos@ffa60080 {
  743. compatible = "syscon";
  744. reg = <0x0 0xffa60080 0x0 0x20>;
  745. };
  746. qos_usb_host0: qos@ffa60100 {
  747. compatible = "syscon";
  748. reg = <0x0 0xffa60100 0x0 0x20>;
  749. };
  750. qos_usb_host1: qos@ffa60180 {
  751. compatible = "syscon";
  752. reg = <0x0 0xffa60180 0x0 0x20>;
  753. };
  754. qos_usb_otg0: qos@ffa70000 {
  755. compatible = "syscon";
  756. reg = <0x0 0xffa70000 0x0 0x20>;
  757. };
  758. qos_usb_otg1: qos@ffa70080 {
  759. compatible = "syscon";
  760. reg = <0x0 0xffa70080 0x0 0x20>;
  761. };
  762. qos_sd: qos@ffa74000 {
  763. compatible = "syscon";
  764. reg = <0x0 0xffa74000 0x0 0x20>;
  765. };
  766. qos_sdioaudio: qos@ffa76000 {
  767. compatible = "syscon";
  768. reg = <0x0 0xffa76000 0x0 0x20>;
  769. };
  770. qos_hdcp: qos@ffa90000 {
  771. compatible = "syscon";
  772. reg = <0x0 0xffa90000 0x0 0x20>;
  773. };
  774. qos_iep: qos@ffa98000 {
  775. compatible = "syscon";
  776. reg = <0x0 0xffa98000 0x0 0x20>;
  777. };
  778. qos_isp0_m0: qos@ffaa0000 {
  779. compatible = "syscon";
  780. reg = <0x0 0xffaa0000 0x0 0x20>;
  781. };
  782. qos_isp0_m1: qos@ffaa0080 {
  783. compatible = "syscon";
  784. reg = <0x0 0xffaa0080 0x0 0x20>;
  785. };
  786. qos_isp1_m0: qos@ffaa8000 {
  787. compatible = "syscon";
  788. reg = <0x0 0xffaa8000 0x0 0x20>;
  789. };
  790. qos_isp1_m1: qos@ffaa8080 {
  791. compatible = "syscon";
  792. reg = <0x0 0xffaa8080 0x0 0x20>;
  793. };
  794. qos_rga_r: qos@ffab0000 {
  795. compatible = "syscon";
  796. reg = <0x0 0xffab0000 0x0 0x20>;
  797. };
  798. qos_rga_w: qos@ffab0080 {
  799. compatible = "syscon";
  800. reg = <0x0 0xffab0080 0x0 0x20>;
  801. };
  802. qos_video_m0: qos@ffab8000 {
  803. compatible = "syscon";
  804. reg = <0x0 0xffab8000 0x0 0x20>;
  805. };
  806. qos_video_m1_r: qos@ffac0000 {
  807. compatible = "syscon";
  808. reg = <0x0 0xffac0000 0x0 0x20>;
  809. };
  810. qos_video_m1_w: qos@ffac0080 {
  811. compatible = "syscon";
  812. reg = <0x0 0xffac0080 0x0 0x20>;
  813. };
  814. qos_vop_big_r: qos@ffac8000 {
  815. compatible = "syscon";
  816. reg = <0x0 0xffac8000 0x0 0x20>;
  817. };
  818. qos_vop_big_w: qos@ffac8080 {
  819. compatible = "syscon";
  820. reg = <0x0 0xffac8080 0x0 0x20>;
  821. };
  822. qos_vop_little: qos@ffad0000 {
  823. compatible = "syscon";
  824. reg = <0x0 0xffad0000 0x0 0x20>;
  825. };
  826. qos_perihp: qos@ffad8080 {
  827. compatible = "syscon";
  828. reg = <0x0 0xffad8080 0x0 0x20>;
  829. };
  830. qos_gpu: qos@ffae0000 {
  831. compatible = "syscon";
  832. reg = <0x0 0xffae0000 0x0 0x20>;
  833. };
  834. pmu: power-management@ff310000 {
  835. compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
  836. reg = <0x0 0xff310000 0x0 0x1000>;
  837. /*
  838. * Note: RK3399 supports 6 voltage domains including VD_CORE_L,
  839. * VD_CORE_B, VD_CENTER, VD_GPU, VD_LOGIC and VD_PMU.
  840. * Some of the power domains are grouped together for every
  841. * voltage domain.
  842. * The detail contents as below.
  843. */
  844. power: power-controller {
  845. compatible = "rockchip,rk3399-power-controller";
  846. #power-domain-cells = <1>;
  847. #address-cells = <1>;
  848. #size-cells = <0>;
  849. /* These power domains are grouped by VD_CENTER */
  850. pd_iep@RK3399_PD_IEP {
  851. reg = <RK3399_PD_IEP>;
  852. clocks = <&cru ACLK_IEP>,
  853. <&cru HCLK_IEP>;
  854. pm_qos = <&qos_iep>;
  855. };
  856. pd_rga@RK3399_PD_RGA {
  857. reg = <RK3399_PD_RGA>;
  858. clocks = <&cru ACLK_RGA>,
  859. <&cru HCLK_RGA>;
  860. pm_qos = <&qos_rga_r>,
  861. <&qos_rga_w>;
  862. };
  863. pd_vcodec@RK3399_PD_VCODEC {
  864. reg = <RK3399_PD_VCODEC>;
  865. clocks = <&cru ACLK_VCODEC>,
  866. <&cru HCLK_VCODEC>;
  867. pm_qos = <&qos_video_m0>;
  868. };
  869. pd_vdu@RK3399_PD_VDU {
  870. reg = <RK3399_PD_VDU>;
  871. clocks = <&cru ACLK_VDU>,
  872. <&cru HCLK_VDU>;
  873. pm_qos = <&qos_video_m1_r>,
  874. <&qos_video_m1_w>;
  875. };
  876. /* These power domains are grouped by VD_GPU */
  877. pd_gpu@RK3399_PD_GPU {
  878. reg = <RK3399_PD_GPU>;
  879. clocks = <&cru ACLK_GPU>;
  880. pm_qos = <&qos_gpu>;
  881. };
  882. /* These power domains are grouped by VD_LOGIC */
  883. pd_edp@RK3399_PD_EDP {
  884. reg = <RK3399_PD_EDP>;
  885. clocks = <&cru PCLK_EDP_CTRL>;
  886. };
  887. pd_emmc@RK3399_PD_EMMC {
  888. reg = <RK3399_PD_EMMC>;
  889. clocks = <&cru ACLK_EMMC>;
  890. pm_qos = <&qos_emmc>;
  891. };
  892. pd_gmac@RK3399_PD_GMAC {
  893. reg = <RK3399_PD_GMAC>;
  894. clocks = <&cru ACLK_GMAC>,
  895. <&cru PCLK_GMAC>;
  896. pm_qos = <&qos_gmac>;
  897. };
  898. pd_sd@RK3399_PD_SD {
  899. reg = <RK3399_PD_SD>;
  900. clocks = <&cru HCLK_SDMMC>,
  901. <&cru SCLK_SDMMC>;
  902. pm_qos = <&qos_sd>;
  903. };
  904. pd_sdioaudio@RK3399_PD_SDIOAUDIO {
  905. reg = <RK3399_PD_SDIOAUDIO>;
  906. clocks = <&cru HCLK_SDIO>;
  907. pm_qos = <&qos_sdioaudio>;
  908. };
  909. pd_usb3@RK3399_PD_USB3 {
  910. reg = <RK3399_PD_USB3>;
  911. clocks = <&cru ACLK_USB3>;
  912. pm_qos = <&qos_usb_otg0>,
  913. <&qos_usb_otg1>;
  914. };
  915. pd_vio@RK3399_PD_VIO {
  916. reg = <RK3399_PD_VIO>;
  917. #address-cells = <1>;
  918. #size-cells = <0>;
  919. pd_hdcp@RK3399_PD_HDCP {
  920. reg = <RK3399_PD_HDCP>;
  921. clocks = <&cru ACLK_HDCP>,
  922. <&cru HCLK_HDCP>,
  923. <&cru PCLK_HDCP>;
  924. pm_qos = <&qos_hdcp>;
  925. };
  926. pd_isp0@RK3399_PD_ISP0 {
  927. reg = <RK3399_PD_ISP0>;
  928. clocks = <&cru ACLK_ISP0>,
  929. <&cru HCLK_ISP0>;
  930. pm_qos = <&qos_isp0_m0>,
  931. <&qos_isp0_m1>;
  932. };
  933. pd_isp1@RK3399_PD_ISP1 {
  934. reg = <RK3399_PD_ISP1>;
  935. clocks = <&cru ACLK_ISP1>,
  936. <&cru HCLK_ISP1>;
  937. pm_qos = <&qos_isp1_m0>,
  938. <&qos_isp1_m1>;
  939. };
  940. pd_tcpc0@RK3399_PD_TCPC0 {
  941. reg = <RK3399_PD_TCPD0>;
  942. clocks = <&cru SCLK_UPHY0_TCPDCORE>,
  943. <&cru SCLK_UPHY0_TCPDPHY_REF>;
  944. };
  945. pd_tcpc1@RK3399_PD_TCPC1 {
  946. reg = <RK3399_PD_TCPD1>;
  947. clocks = <&cru SCLK_UPHY1_TCPDCORE>,
  948. <&cru SCLK_UPHY1_TCPDPHY_REF>;
  949. };
  950. pd_vo@RK3399_PD_VO {
  951. reg = <RK3399_PD_VO>;
  952. #address-cells = <1>;
  953. #size-cells = <0>;
  954. pd_vopb@RK3399_PD_VOPB {
  955. reg = <RK3399_PD_VOPB>;
  956. clocks = <&cru ACLK_VOP0>,
  957. <&cru HCLK_VOP0>;
  958. pm_qos = <&qos_vop_big_r>,
  959. <&qos_vop_big_w>;
  960. };
  961. pd_vopl@RK3399_PD_VOPL {
  962. reg = <RK3399_PD_VOPL>;
  963. clocks = <&cru ACLK_VOP1>,
  964. <&cru HCLK_VOP1>;
  965. pm_qos = <&qos_vop_little>;
  966. };
  967. };
  968. };
  969. };
  970. };
  971. pmugrf: syscon@ff320000 {
  972. compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
  973. reg = <0x0 0xff320000 0x0 0x1000>;
  974. #address-cells = <1>;
  975. #size-cells = <1>;
  976. pmu_io_domains: io-domains {
  977. compatible = "rockchip,rk3399-pmu-io-voltage-domain";
  978. status = "disabled";
  979. };
  980. };
  981. spi3: spi@ff350000 {
  982. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  983. reg = <0x0 0xff350000 0x0 0x1000>;
  984. clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>;
  985. clock-names = "spiclk", "apb_pclk";
  986. interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH 0>;
  987. pinctrl-names = "default";
  988. pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>;
  989. #address-cells = <1>;
  990. #size-cells = <0>;
  991. status = "disabled";
  992. };
  993. uart4: serial@ff370000 {
  994. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  995. reg = <0x0 0xff370000 0x0 0x100>;
  996. clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>;
  997. clock-names = "baudclk", "apb_pclk";
  998. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>;
  999. reg-shift = <2>;
  1000. reg-io-width = <4>;
  1001. pinctrl-names = "default";
  1002. pinctrl-0 = <&uart4_xfer>;
  1003. status = "disabled";
  1004. };
  1005. i2c0: i2c@ff3c0000 {
  1006. compatible = "rockchip,rk3399-i2c";
  1007. reg = <0x0 0xff3c0000 0x0 0x1000>;
  1008. assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
  1009. assigned-clock-rates = <200000000>;
  1010. clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
  1011. clock-names = "i2c", "pclk";
  1012. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
  1013. pinctrl-names = "default";
  1014. pinctrl-0 = <&i2c0_xfer>;
  1015. #address-cells = <1>;
  1016. #size-cells = <0>;
  1017. status = "disabled";
  1018. };
  1019. i2c4: i2c@ff3d0000 {
  1020. compatible = "rockchip,rk3399-i2c";
  1021. reg = <0x0 0xff3d0000 0x0 0x1000>;
  1022. assigned-clocks = <&pmucru SCLK_I2C4_PMU>;
  1023. assigned-clock-rates = <200000000>;
  1024. clocks = <&pmucru SCLK_I2C4_PMU>, <&pmucru PCLK_I2C4_PMU>;
  1025. clock-names = "i2c", "pclk";
  1026. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH 0>;
  1027. pinctrl-names = "default";
  1028. pinctrl-0 = <&i2c4_xfer>;
  1029. #address-cells = <1>;
  1030. #size-cells = <0>;
  1031. status = "disabled";
  1032. };
  1033. i2c8: i2c@ff3e0000 {
  1034. compatible = "rockchip,rk3399-i2c";
  1035. reg = <0x0 0xff3e0000 0x0 0x1000>;
  1036. assigned-clocks = <&pmucru SCLK_I2C8_PMU>;
  1037. assigned-clock-rates = <200000000>;
  1038. clocks = <&pmucru SCLK_I2C8_PMU>, <&pmucru PCLK_I2C8_PMU>;
  1039. clock-names = "i2c", "pclk";
  1040. interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
  1041. pinctrl-names = "default";
  1042. pinctrl-0 = <&i2c8_xfer>;
  1043. #address-cells = <1>;
  1044. #size-cells = <0>;
  1045. status = "disabled";
  1046. };
  1047. pwm0: pwm@ff420000 {
  1048. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  1049. reg = <0x0 0xff420000 0x0 0x10>;
  1050. #pwm-cells = <3>;
  1051. pinctrl-names = "default";
  1052. pinctrl-0 = <&pwm0_pin>;
  1053. clocks = <&pmucru PCLK_RKPWM_PMU>;
  1054. clock-names = "pwm";
  1055. status = "disabled";
  1056. };
  1057. pwm1: pwm@ff420010 {
  1058. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  1059. reg = <0x0 0xff420010 0x0 0x10>;
  1060. #pwm-cells = <3>;
  1061. pinctrl-names = "default";
  1062. pinctrl-0 = <&pwm1_pin>;
  1063. clocks = <&pmucru PCLK_RKPWM_PMU>;
  1064. clock-names = "pwm";
  1065. status = "disabled";
  1066. };
  1067. pwm2: pwm@ff420020 {
  1068. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  1069. reg = <0x0 0xff420020 0x0 0x10>;
  1070. #pwm-cells = <3>;
  1071. pinctrl-names = "default";
  1072. pinctrl-0 = <&pwm2_pin>;
  1073. clocks = <&pmucru PCLK_RKPWM_PMU>;
  1074. clock-names = "pwm";
  1075. status = "disabled";
  1076. };
  1077. pwm3: pwm@ff420030 {
  1078. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  1079. reg = <0x0 0xff420030 0x0 0x10>;
  1080. #pwm-cells = <3>;
  1081. pinctrl-names = "default";
  1082. pinctrl-0 = <&pwm3a_pin>;
  1083. clocks = <&pmucru PCLK_RKPWM_PMU>;
  1084. clock-names = "pwm";
  1085. status = "disabled";
  1086. };
  1087. vpu_mmu: iommu@ff650800 {
  1088. compatible = "rockchip,iommu";
  1089. reg = <0x0 0xff650800 0x0 0x40>;
  1090. interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH 0>;
  1091. interrupt-names = "vpu_mmu";
  1092. #iommu-cells = <0>;
  1093. status = "disabled";
  1094. };
  1095. vdec_mmu: iommu@ff660480 {
  1096. compatible = "rockchip,iommu";
  1097. reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>;
  1098. interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>;
  1099. interrupt-names = "vdec_mmu";
  1100. #iommu-cells = <0>;
  1101. status = "disabled";
  1102. };
  1103. iep_mmu: iommu@ff670800 {
  1104. compatible = "rockchip,iommu";
  1105. reg = <0x0 0xff670800 0x0 0x40>;
  1106. interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH 0>;
  1107. interrupt-names = "iep_mmu";
  1108. #iommu-cells = <0>;
  1109. status = "disabled";
  1110. };
  1111. rga: rga@ff680000 {
  1112. compatible = "rockchip,rk3399-rga";
  1113. reg = <0x0 0xff680000 0x0 0x10000>;
  1114. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH 0>;
  1115. clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA_CORE>;
  1116. clock-names = "aclk", "hclk", "sclk";
  1117. resets = <&cru SRST_RGA_CORE>, <&cru SRST_A_RGA>, <&cru SRST_H_RGA>;
  1118. reset-names = "core", "axi", "ahb";
  1119. power-domains = <&power RK3399_PD_RGA>;
  1120. };
  1121. efuse0: efuse@ff690000 {
  1122. compatible = "rockchip,rk3399-efuse";
  1123. reg = <0x0 0xff690000 0x0 0x80>;
  1124. #address-cells = <1>;
  1125. #size-cells = <1>;
  1126. clocks = <&cru PCLK_EFUSE1024NS>;
  1127. clock-names = "pclk_efuse";
  1128. /* Data cells */
  1129. cpu_id: cpu-id@7 {
  1130. reg = <0x07 0x10>;
  1131. };
  1132. cpub_leakage: cpu-leakage@17 {
  1133. reg = <0x17 0x1>;
  1134. };
  1135. gpu_leakage: gpu-leakage@18 {
  1136. reg = <0x18 0x1>;
  1137. };
  1138. center_leakage: center-leakage@19 {
  1139. reg = <0x19 0x1>;
  1140. };
  1141. cpul_leakage: cpu-leakage@1a {
  1142. reg = <0x1a 0x1>;
  1143. };
  1144. logic_leakage: logic-leakage@1b {
  1145. reg = <0x1b 0x1>;
  1146. };
  1147. wafer_info: wafer-info@1c {
  1148. reg = <0x1c 0x1>;
  1149. };
  1150. };
  1151. pmucru: pmu-clock-controller@ff750000 {
  1152. compatible = "rockchip,rk3399-pmucru";
  1153. reg = <0x0 0xff750000 0x0 0x1000>;
  1154. rockchip,grf = <&pmugrf>;
  1155. #clock-cells = <1>;
  1156. #reset-cells = <1>;
  1157. assigned-clocks = <&pmucru PLL_PPLL>;
  1158. assigned-clock-rates = <676000000>;
  1159. };
  1160. cru: clock-controller@ff760000 {
  1161. compatible = "rockchip,rk3399-cru";
  1162. reg = <0x0 0xff760000 0x0 0x1000>;
  1163. rockchip,grf = <&grf>;
  1164. #clock-cells = <1>;
  1165. #reset-cells = <1>;
  1166. assigned-clocks =
  1167. <&cru PLL_GPLL>, <&cru PLL_CPLL>,
  1168. <&cru PLL_NPLL>,
  1169. <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
  1170. <&cru PCLK_PERIHP>,
  1171. <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
  1172. <&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
  1173. <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>;
  1174. assigned-clock-rates =
  1175. <594000000>, <800000000>,
  1176. <1000000000>,
  1177. <150000000>, <75000000>,
  1178. <37500000>,
  1179. <100000000>, <100000000>,
  1180. <50000000>, <600000000>,
  1181. <100000000>, <50000000>;
  1182. };
  1183. grf: syscon@ff770000 {
  1184. compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
  1185. reg = <0x0 0xff770000 0x0 0x10000>;
  1186. #address-cells = <1>;
  1187. #size-cells = <1>;
  1188. io_domains: io-domains {
  1189. compatible = "rockchip,rk3399-io-voltage-domain";
  1190. status = "disabled";
  1191. };
  1192. u2phy0: usb2-phy@e450 {
  1193. compatible = "rockchip,rk3399-usb2phy";
  1194. reg = <0xe450 0x10>;
  1195. clocks = <&cru SCLK_USB2PHY0_REF>;
  1196. clock-names = "phyclk";
  1197. #clock-cells = <0>;
  1198. clock-output-names = "clk_usbphy0_480m";
  1199. status = "disabled";
  1200. u2phy0_host: host-port {
  1201. #phy-cells = <0>;
  1202. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
  1203. interrupt-names = "linestate";
  1204. status = "disabled";
  1205. };
  1206. u2phy0_otg: otg-port {
  1207. #phy-cells = <0>;
  1208. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
  1209. <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
  1210. <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
  1211. interrupt-names = "otg-bvalid", "otg-id",
  1212. "linestate";
  1213. status = "disabled";
  1214. };
  1215. };
  1216. u2phy1: usb2-phy@e460 {
  1217. compatible = "rockchip,rk3399-usb2phy";
  1218. reg = <0xe460 0x10>;
  1219. clocks = <&cru SCLK_USB2PHY1_REF>;
  1220. clock-names = "phyclk";
  1221. #clock-cells = <0>;
  1222. clock-output-names = "clk_usbphy1_480m";
  1223. status = "disabled";
  1224. u2phy1_host: host-port {
  1225. #phy-cells = <0>;
  1226. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>;
  1227. interrupt-names = "linestate";
  1228. status = "disabled";
  1229. };
  1230. u2phy1_otg: otg-port {
  1231. #phy-cells = <0>;
  1232. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>,
  1233. <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>,
  1234. <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>;
  1235. interrupt-names = "otg-bvalid", "otg-id",
  1236. "linestate";
  1237. status = "disabled";
  1238. };
  1239. };
  1240. emmc_phy: phy@f780 {
  1241. compatible = "rockchip,rk3399-emmc-phy";
  1242. reg = <0xf780 0x24>;
  1243. clocks = <&sdhci>;
  1244. clock-names = "emmcclk";
  1245. #phy-cells = <0>;
  1246. status = "disabled";
  1247. };
  1248. pcie_phy: pcie-phy {
  1249. compatible = "rockchip,rk3399-pcie-phy";
  1250. clocks = <&cru SCLK_PCIEPHY_REF>;
  1251. clock-names = "refclk";
  1252. #phy-cells = <1>;
  1253. resets = <&cru SRST_PCIEPHY>;
  1254. reset-names = "phy";
  1255. status = "disabled";
  1256. };
  1257. };
  1258. tcphy0: phy@ff7c0000 {
  1259. compatible = "rockchip,rk3399-typec-phy";
  1260. reg = <0x0 0xff7c0000 0x0 0x40000>;
  1261. clocks = <&cru SCLK_UPHY0_TCPDCORE>,
  1262. <&cru SCLK_UPHY0_TCPDPHY_REF>;
  1263. clock-names = "tcpdcore", "tcpdphy-ref";
  1264. assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
  1265. assigned-clock-rates = <50000000>;
  1266. power-domains = <&power RK3399_PD_TCPD0>;
  1267. resets = <&cru SRST_UPHY0>,
  1268. <&cru SRST_UPHY0_PIPE_L00>,
  1269. <&cru SRST_P_UPHY0_TCPHY>;
  1270. reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
  1271. rockchip,grf = <&grf>;
  1272. rockchip,typec-conn-dir = <0xe580 0 16>;
  1273. rockchip,usb3tousb2-en = <0xe580 3 19>;
  1274. rockchip,external-psm = <0xe588 14 30>;
  1275. rockchip,pipe-status = <0xe5c0 0 0>;
  1276. status = "disabled";
  1277. tcphy0_dp: dp-port {
  1278. #phy-cells = <0>;
  1279. };
  1280. tcphy0_usb3: usb3-port {
  1281. #phy-cells = <0>;
  1282. };
  1283. };
  1284. tcphy1: phy@ff800000 {
  1285. compatible = "rockchip,rk3399-typec-phy";
  1286. reg = <0x0 0xff800000 0x0 0x40000>;
  1287. clocks = <&cru SCLK_UPHY1_TCPDCORE>,
  1288. <&cru SCLK_UPHY1_TCPDPHY_REF>;
  1289. clock-names = "tcpdcore", "tcpdphy-ref";
  1290. assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
  1291. assigned-clock-rates = <50000000>;
  1292. power-domains = <&power RK3399_PD_TCPD1>;
  1293. resets = <&cru SRST_UPHY1>,
  1294. <&cru SRST_UPHY1_PIPE_L00>,
  1295. <&cru SRST_P_UPHY1_TCPHY>;
  1296. reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
  1297. rockchip,grf = <&grf>;
  1298. rockchip,typec-conn-dir = <0xe58c 0 16>;
  1299. rockchip,usb3tousb2-en = <0xe58c 3 19>;
  1300. rockchip,external-psm = <0xe594 14 30>;
  1301. rockchip,pipe-status = <0xe5c0 16 16>;
  1302. status = "disabled";
  1303. tcphy1_dp: dp-port {
  1304. #phy-cells = <0>;
  1305. };
  1306. tcphy1_usb3: usb3-port {
  1307. #phy-cells = <0>;
  1308. };
  1309. };
  1310. watchdog@ff848000 {
  1311. compatible = "snps,dw-wdt";
  1312. reg = <0x0 0xff848000 0x0 0x100>;
  1313. clocks = <&cru PCLK_WDT>;
  1314. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
  1315. };
  1316. rktimer: rktimer@ff850000 {
  1317. compatible = "rockchip,rk3399-timer";
  1318. reg = <0x0 0xff850000 0x0 0x1000>;
  1319. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>;
  1320. clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
  1321. clock-names = "pclk", "timer";
  1322. };
  1323. spdif: spdif@ff870000 {
  1324. compatible = "rockchip,rk3399-spdif";
  1325. reg = <0x0 0xff870000 0x0 0x1000>;
  1326. interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>;
  1327. dmas = <&dmac_bus 7>;
  1328. dma-names = "tx";
  1329. clock-names = "mclk", "hclk";
  1330. clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
  1331. pinctrl-names = "default";
  1332. pinctrl-0 = <&spdif_bus>;
  1333. power-domains = <&power RK3399_PD_SDIOAUDIO>;
  1334. status = "disabled";
  1335. };
  1336. i2s0: i2s@ff880000 {
  1337. compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
  1338. reg = <0x0 0xff880000 0x0 0x1000>;
  1339. rockchip,grf = <&grf>;
  1340. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>;
  1341. dmas = <&dmac_bus 0>, <&dmac_bus 1>;
  1342. dma-names = "tx", "rx";
  1343. clock-names = "i2s_clk", "i2s_hclk";
  1344. clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
  1345. pinctrl-names = "default";
  1346. pinctrl-0 = <&i2s0_8ch_bus>;
  1347. power-domains = <&power RK3399_PD_SDIOAUDIO>;
  1348. status = "disabled";
  1349. };
  1350. i2s1: i2s@ff890000 {
  1351. compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
  1352. reg = <0x0 0xff890000 0x0 0x1000>;
  1353. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>;
  1354. dmas = <&dmac_bus 2>, <&dmac_bus 3>;
  1355. dma-names = "tx", "rx";
  1356. clock-names = "i2s_clk", "i2s_hclk";
  1357. clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>;
  1358. pinctrl-names = "default";
  1359. pinctrl-0 = <&i2s1_2ch_bus>;
  1360. power-domains = <&power RK3399_PD_SDIOAUDIO>;
  1361. status = "disabled";
  1362. };
  1363. i2s2: i2s@ff8a0000 {
  1364. compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
  1365. reg = <0x0 0xff8a0000 0x0 0x1000>;
  1366. interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>;
  1367. dmas = <&dmac_bus 4>, <&dmac_bus 5>;
  1368. dma-names = "tx", "rx";
  1369. clock-names = "i2s_clk", "i2s_hclk";
  1370. clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
  1371. power-domains = <&power RK3399_PD_SDIOAUDIO>;
  1372. status = "disabled";
  1373. };
  1374. vopl: vop@ff8f0000 {
  1375. compatible = "rockchip,rk3399-vop-lit";
  1376. reg = <0x0 0xff8f0000 0x0 0x3efc>;
  1377. interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
  1378. assigned-clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
  1379. assigned-clock-rates = <400000000>, <100000000>;
  1380. clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
  1381. clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
  1382. iommus = <&vopl_mmu>;
  1383. power-domains = <&power RK3399_PD_VOPL>;
  1384. resets = <&cru SRST_A_VOP1>, <&cru SRST_H_VOP1>, <&cru SRST_D_VOP1>;
  1385. reset-names = "axi", "ahb", "dclk";
  1386. status = "disabled";
  1387. vopl_out: port {
  1388. #address-cells = <1>;
  1389. #size-cells = <0>;
  1390. vopl_out_mipi: endpoint@0 {
  1391. reg = <0>;
  1392. remote-endpoint = <&mipi_in_vopl>;
  1393. };
  1394. vopl_out_edp: endpoint@1 {
  1395. reg = <1>;
  1396. remote-endpoint = <&edp_in_vopl>;
  1397. };
  1398. vopl_out_hdmi: endpoint@2 {
  1399. reg = <2>;
  1400. remote-endpoint = <&hdmi_in_vopl>;
  1401. };
  1402. vopl_out_mipi1: endpoint@3 {
  1403. reg = <3>;
  1404. remote-endpoint = <&mipi1_in_vopl>;
  1405. };
  1406. };
  1407. };
  1408. vopl_mmu: iommu@ff8f3f00 {
  1409. compatible = "rockchip,iommu";
  1410. reg = <0x0 0xff8f3f00 0x0 0x100>;
  1411. interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
  1412. interrupt-names = "vopl_mmu";
  1413. clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
  1414. clock-names = "aclk", "hclk";
  1415. power-domains = <&power RK3399_PD_VOPL>;
  1416. #iommu-cells = <0>;
  1417. status = "disabled";
  1418. };
  1419. vopb: vop@ff900000 {
  1420. compatible = "rockchip,rk3399-vop-big";
  1421. reg = <0x0 0xff900000 0x0 0x3efc>;
  1422. interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
  1423. assigned-clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
  1424. assigned-clock-rates = <400000000>, <100000000>;
  1425. clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
  1426. clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
  1427. iommus = <&vopb_mmu>;
  1428. power-domains = <&power RK3399_PD_VOPB>;
  1429. resets = <&cru SRST_A_VOP0>, <&cru SRST_H_VOP0>, <&cru SRST_D_VOP0>;
  1430. reset-names = "axi", "ahb", "dclk";
  1431. status = "disabled";
  1432. vopb_out: port {
  1433. #address-cells = <1>;
  1434. #size-cells = <0>;
  1435. vopb_out_edp: endpoint@0 {
  1436. reg = <0>;
  1437. remote-endpoint = <&edp_in_vopb>;
  1438. };
  1439. vopb_out_mipi: endpoint@1 {
  1440. reg = <1>;
  1441. remote-endpoint = <&mipi_in_vopb>;
  1442. };
  1443. vopb_out_hdmi: endpoint@2 {
  1444. reg = <2>;
  1445. remote-endpoint = <&hdmi_in_vopb>;
  1446. };
  1447. vopb_out_mipi1: endpoint@3 {
  1448. reg = <3>;
  1449. remote-endpoint = <&mipi1_in_vopb>;
  1450. };
  1451. };
  1452. };
  1453. vopb_mmu: iommu@ff903f00 {
  1454. compatible = "rockchip,iommu";
  1455. reg = <0x0 0xff903f00 0x0 0x100>;
  1456. interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
  1457. interrupt-names = "vopb_mmu";
  1458. clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
  1459. clock-names = "aclk", "hclk";
  1460. power-domains = <&power RK3399_PD_VOPB>;
  1461. #iommu-cells = <0>;
  1462. status = "disabled";
  1463. };
  1464. isp0_mmu: iommu@ff914000 {
  1465. compatible = "rockchip,iommu";
  1466. reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
  1467. interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
  1468. interrupt-names = "isp0_mmu";
  1469. #iommu-cells = <0>;
  1470. rockchip,disable-mmu-reset;
  1471. status = "disabled";
  1472. };
  1473. isp1_mmu: iommu@ff924000 {
  1474. compatible = "rockchip,iommu";
  1475. reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
  1476. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
  1477. interrupt-names = "isp1_mmu";
  1478. #iommu-cells = <0>;
  1479. rockchip,disable-mmu-reset;
  1480. status = "disabled";
  1481. };
  1482. hdmi: hdmi@ff940000 {
  1483. compatible = "rockchip,rk3399-dw-hdmi";
  1484. reg = <0x0 0xff940000 0x0 0x20000>;
  1485. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
  1486. clocks = <&cru PCLK_HDMI_CTRL>,
  1487. <&cru SCLK_HDMI_SFR>,
  1488. <&cru PLL_VPLL>,
  1489. <&cru PCLK_VIO_GRF>,
  1490. <&cru SCLK_HDMI_CEC>;
  1491. clock-names = "iahb", "isfr", "vpll", "grf", "cec";
  1492. power-domains = <&power RK3399_PD_HDCP>;
  1493. reg-io-width = <4>;
  1494. rockchip,grf = <&grf>;
  1495. status = "disabled";
  1496. ports {
  1497. hdmi_in: port {
  1498. #address-cells = <1>;
  1499. #size-cells = <0>;
  1500. hdmi_in_vopb: endpoint@0 {
  1501. reg = <0>;
  1502. remote-endpoint = <&vopb_out_hdmi>;
  1503. };
  1504. hdmi_in_vopl: endpoint@1 {
  1505. reg = <1>;
  1506. remote-endpoint = <&vopl_out_hdmi>;
  1507. };
  1508. };
  1509. };
  1510. };
  1511. mipi_dsi: mipi@ff960000 {
  1512. compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
  1513. reg = <0x0 0xff960000 0x0 0x8000>;
  1514. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH 0>;
  1515. clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI0>,
  1516. <&cru SCLK_DPHY_TX0_CFG>, <&cru PCLK_VIO_GRF>;
  1517. clock-names = "ref", "pclk", "phy_cfg", "grf";
  1518. power-domains = <&power RK3399_PD_VIO>;
  1519. resets = <&cru SRST_P_MIPI_DSI0>;
  1520. reset-names = "apb";
  1521. rockchip,grf = <&grf>;
  1522. status = "disabled";
  1523. ports {
  1524. #address-cells = <1>;
  1525. #size-cells = <0>;
  1526. mipi_in: port@0 {
  1527. reg = <0>;
  1528. #address-cells = <1>;
  1529. #size-cells = <0>;
  1530. mipi_in_vopb: endpoint@0 {
  1531. reg = <0>;
  1532. remote-endpoint = <&vopb_out_mipi>;
  1533. };
  1534. mipi_in_vopl: endpoint@1 {
  1535. reg = <1>;
  1536. remote-endpoint = <&vopl_out_mipi>;
  1537. };
  1538. };
  1539. };
  1540. };
  1541. mipi_dsi1: mipi@ff968000 {
  1542. compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
  1543. reg = <0x0 0xff968000 0x0 0x8000>;
  1544. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH 0>;
  1545. clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI1>,
  1546. <&cru SCLK_DPHY_TX1RX1_CFG>, <&cru PCLK_VIO_GRF>;
  1547. clock-names = "ref", "pclk", "phy_cfg", "grf";
  1548. power-domains = <&power RK3399_PD_VIO>;
  1549. resets = <&cru SRST_P_MIPI_DSI1>;
  1550. reset-names = "apb";
  1551. rockchip,grf = <&grf>;
  1552. status = "disabled";
  1553. ports {
  1554. #address-cells = <1>;
  1555. #size-cells = <0>;
  1556. mipi1_in: port@0 {
  1557. reg = <0>;
  1558. #address-cells = <1>;
  1559. #size-cells = <0>;
  1560. mipi1_in_vopb: endpoint@0 {
  1561. reg = <0>;
  1562. remote-endpoint = <&vopb_out_mipi1>;
  1563. };
  1564. mipi1_in_vopl: endpoint@1 {
  1565. reg = <1>;
  1566. remote-endpoint = <&vopl_out_mipi1>;
  1567. };
  1568. };
  1569. };
  1570. };
  1571. edp: edp@ff970000 {
  1572. compatible = "rockchip,rk3399-edp";
  1573. reg = <0x0 0xff970000 0x0 0x8000>;
  1574. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
  1575. clocks = <&cru PCLK_EDP>, <&cru PCLK_EDP_CTRL>, <&cru PCLK_VIO_GRF>;
  1576. clock-names = "dp", "pclk", "grf";
  1577. pinctrl-names = "default";
  1578. pinctrl-0 = <&edp_hpd>;
  1579. power-domains = <&power RK3399_PD_EDP>;
  1580. resets = <&cru SRST_P_EDP_CTRL>;
  1581. reset-names = "dp";
  1582. rockchip,grf = <&grf>;
  1583. status = "disabled";
  1584. ports {
  1585. #address-cells = <1>;
  1586. #size-cells = <0>;
  1587. edp_in: port@0 {
  1588. reg = <0>;
  1589. #address-cells = <1>;
  1590. #size-cells = <0>;
  1591. edp_in_vopb: endpoint@0 {
  1592. reg = <0>;
  1593. remote-endpoint = <&vopb_out_edp>;
  1594. };
  1595. edp_in_vopl: endpoint@1 {
  1596. reg = <1>;
  1597. remote-endpoint = <&vopl_out_edp>;
  1598. };
  1599. };
  1600. };
  1601. };
  1602. gpu: gpu@ff9a0000 {
  1603. compatible = "rockchip,rk3399-mali", "arm,mali-t860";
  1604. reg = <0x0 0xff9a0000 0x0 0x10000>;
  1605. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
  1606. <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
  1607. <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
  1608. interrupt-names = "gpu", "job", "mmu";
  1609. clocks = <&cru ACLK_GPU>;
  1610. power-domains = <&power RK3399_PD_GPU>;
  1611. status = "disabled";
  1612. };
  1613. pinctrl: pinctrl {
  1614. compatible = "rockchip,rk3399-pinctrl";
  1615. rockchip,grf = <&grf>;
  1616. rockchip,pmu = <&pmugrf>;
  1617. #address-cells = <2>;
  1618. #size-cells = <2>;
  1619. ranges;
  1620. gpio0: gpio0@ff720000 {
  1621. compatible = "rockchip,gpio-bank";
  1622. reg = <0x0 0xff720000 0x0 0x100>;
  1623. clocks = <&pmucru PCLK_GPIO0_PMU>;
  1624. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
  1625. gpio-controller;
  1626. #gpio-cells = <0x2>;
  1627. interrupt-controller;
  1628. #interrupt-cells = <0x2>;
  1629. };
  1630. gpio1: gpio1@ff730000 {
  1631. compatible = "rockchip,gpio-bank";
  1632. reg = <0x0 0xff730000 0x0 0x100>;
  1633. clocks = <&pmucru PCLK_GPIO1_PMU>;
  1634. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>;
  1635. gpio-controller;
  1636. #gpio-cells = <0x2>;
  1637. interrupt-controller;
  1638. #interrupt-cells = <0x2>;
  1639. };
  1640. gpio2: gpio2@ff780000 {
  1641. compatible = "rockchip,gpio-bank";
  1642. reg = <0x0 0xff780000 0x0 0x100>;
  1643. clocks = <&cru PCLK_GPIO2>;
  1644. interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>;
  1645. gpio-controller;
  1646. #gpio-cells = <0x2>;
  1647. interrupt-controller;
  1648. #interrupt-cells = <0x2>;
  1649. };
  1650. gpio3: gpio3@ff788000 {
  1651. compatible = "rockchip,gpio-bank";
  1652. reg = <0x0 0xff788000 0x0 0x100>;
  1653. clocks = <&cru PCLK_GPIO3>;
  1654. interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
  1655. gpio-controller;
  1656. #gpio-cells = <0x2>;
  1657. interrupt-controller;
  1658. #interrupt-cells = <0x2>;
  1659. };
  1660. gpio4: gpio4@ff790000 {
  1661. compatible = "rockchip,gpio-bank";
  1662. reg = <0x0 0xff790000 0x0 0x100>;
  1663. clocks = <&cru PCLK_GPIO4>;
  1664. interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
  1665. gpio-controller;
  1666. #gpio-cells = <0x2>;
  1667. interrupt-controller;
  1668. #interrupt-cells = <0x2>;
  1669. };
  1670. pcfg_pull_up: pcfg-pull-up {
  1671. bias-pull-up;
  1672. };
  1673. pcfg_pull_down: pcfg-pull-down {
  1674. bias-pull-down;
  1675. };
  1676. pcfg_pull_none: pcfg-pull-none {
  1677. bias-disable;
  1678. };
  1679. pcfg_pull_none_12ma: pcfg-pull-none-12ma {
  1680. bias-disable;
  1681. drive-strength = <12>;
  1682. };
  1683. pcfg_pull_up_8ma: pcfg-pull-up-8ma {
  1684. bias-pull-up;
  1685. drive-strength = <8>;
  1686. };
  1687. pcfg_pull_down_4ma: pcfg-pull-down-4ma {
  1688. bias-pull-down;
  1689. drive-strength = <4>;
  1690. };
  1691. pcfg_pull_up_2ma: pcfg-pull-up-2ma {
  1692. bias-pull-up;
  1693. drive-strength = <2>;
  1694. };
  1695. pcfg_pull_down_12ma: pcfg-pull-down-12ma {
  1696. bias-pull-down;
  1697. drive-strength = <12>;
  1698. };
  1699. pcfg_pull_none_13ma: pcfg-pull-none-13ma {
  1700. bias-disable;
  1701. drive-strength = <13>;
  1702. };
  1703. clock {
  1704. clk_32k: clk-32k {
  1705. rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
  1706. };
  1707. };
  1708. edp {
  1709. edp_hpd: edp-hpd {
  1710. rockchip,pins =
  1711. <4 23 RK_FUNC_2 &pcfg_pull_none>;
  1712. };
  1713. };
  1714. gmac {
  1715. rgmii_pins: rgmii-pins {
  1716. rockchip,pins =
  1717. /* mac_txclk */
  1718. <3 17 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1719. /* mac_rxclk */
  1720. <3 14 RK_FUNC_1 &pcfg_pull_none>,
  1721. /* mac_mdio */
  1722. <3 13 RK_FUNC_1 &pcfg_pull_none>,
  1723. /* mac_txen */
  1724. <3 12 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1725. /* mac_clk */
  1726. <3 11 RK_FUNC_1 &pcfg_pull_none>,
  1727. /* mac_rxdv */
  1728. <3 9 RK_FUNC_1 &pcfg_pull_none>,
  1729. /* mac_mdc */
  1730. <3 8 RK_FUNC_1 &pcfg_pull_none>,
  1731. /* mac_rxd1 */
  1732. <3 7 RK_FUNC_1 &pcfg_pull_none>,
  1733. /* mac_rxd0 */
  1734. <3 6 RK_FUNC_1 &pcfg_pull_none>,
  1735. /* mac_txd1 */
  1736. <3 5 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1737. /* mac_txd0 */
  1738. <3 4 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1739. /* mac_rxd3 */
  1740. <3 3 RK_FUNC_1 &pcfg_pull_none>,
  1741. /* mac_rxd2 */
  1742. <3 2 RK_FUNC_1 &pcfg_pull_none>,
  1743. /* mac_txd3 */
  1744. <3 1 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1745. /* mac_txd2 */
  1746. <3 0 RK_FUNC_1 &pcfg_pull_none_13ma>;
  1747. };
  1748. rmii_pins: rmii-pins {
  1749. rockchip,pins =
  1750. /* mac_mdio */
  1751. <3 13 RK_FUNC_1 &pcfg_pull_none>,
  1752. /* mac_txen */
  1753. <3 12 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1754. /* mac_clk */
  1755. <3 11 RK_FUNC_1 &pcfg_pull_none>,
  1756. /* mac_rxer */
  1757. <3 10 RK_FUNC_1 &pcfg_pull_none>,
  1758. /* mac_rxdv */
  1759. <3 9 RK_FUNC_1 &pcfg_pull_none>,
  1760. /* mac_mdc */
  1761. <3 8 RK_FUNC_1 &pcfg_pull_none>,
  1762. /* mac_rxd1 */
  1763. <3 7 RK_FUNC_1 &pcfg_pull_none>,
  1764. /* mac_rxd0 */
  1765. <3 6 RK_FUNC_1 &pcfg_pull_none>,
  1766. /* mac_txd1 */
  1767. <3 5 RK_FUNC_1 &pcfg_pull_none_13ma>,
  1768. /* mac_txd0 */
  1769. <3 4 RK_FUNC_1 &pcfg_pull_none_13ma>;
  1770. };
  1771. };
  1772. i2c0 {
  1773. i2c0_xfer: i2c0-xfer {
  1774. rockchip,pins =
  1775. <1 15 RK_FUNC_2 &pcfg_pull_none>,
  1776. <1 16 RK_FUNC_2 &pcfg_pull_none>;
  1777. };
  1778. };
  1779. i2c1 {
  1780. i2c1_xfer: i2c1-xfer {
  1781. rockchip,pins =
  1782. <4 2 RK_FUNC_1 &pcfg_pull_none>,
  1783. <4 1 RK_FUNC_1 &pcfg_pull_none>;
  1784. };
  1785. };
  1786. i2c2 {
  1787. i2c2_xfer: i2c2-xfer {
  1788. rockchip,pins =
  1789. <2 1 RK_FUNC_2 &pcfg_pull_none_12ma>,
  1790. <2 0 RK_FUNC_2 &pcfg_pull_none_12ma>;
  1791. };
  1792. };
  1793. i2c3 {
  1794. i2c3_xfer: i2c3-xfer {
  1795. rockchip,pins =
  1796. <4 17 RK_FUNC_1 &pcfg_pull_none>,
  1797. <4 16 RK_FUNC_1 &pcfg_pull_none>;
  1798. };
  1799. };
  1800. i2c4 {
  1801. i2c4_xfer: i2c4-xfer {
  1802. rockchip,pins =
  1803. <1 12 RK_FUNC_1 &pcfg_pull_none>,
  1804. <1 11 RK_FUNC_1 &pcfg_pull_none>;
  1805. };
  1806. };
  1807. i2c5 {
  1808. i2c5_xfer: i2c5-xfer {
  1809. rockchip,pins =
  1810. <3 11 RK_FUNC_2 &pcfg_pull_none>,
  1811. <3 10 RK_FUNC_2 &pcfg_pull_none>;
  1812. };
  1813. };
  1814. i2c6 {
  1815. i2c6_xfer: i2c6-xfer {
  1816. rockchip,pins =
  1817. <2 10 RK_FUNC_2 &pcfg_pull_none>,
  1818. <2 9 RK_FUNC_2 &pcfg_pull_none>;
  1819. };
  1820. };
  1821. i2c7 {
  1822. i2c7_xfer: i2c7-xfer {
  1823. rockchip,pins =
  1824. <2 8 RK_FUNC_2 &pcfg_pull_none>,
  1825. <2 7 RK_FUNC_2 &pcfg_pull_none>;
  1826. };
  1827. };
  1828. i2c8 {
  1829. i2c8_xfer: i2c8-xfer {
  1830. rockchip,pins =
  1831. <1 21 RK_FUNC_1 &pcfg_pull_none>,
  1832. <1 20 RK_FUNC_1 &pcfg_pull_none>;
  1833. };
  1834. };
  1835. i2s0 {
  1836. i2s0_8ch_bus: i2s0-8ch-bus {
  1837. rockchip,pins =
  1838. <3 24 RK_FUNC_1 &pcfg_pull_none>,
  1839. <3 25 RK_FUNC_1 &pcfg_pull_none>,
  1840. <3 26 RK_FUNC_1 &pcfg_pull_none>,
  1841. <3 27 RK_FUNC_1 &pcfg_pull_none>,
  1842. <3 28 RK_FUNC_1 &pcfg_pull_none>,
  1843. <3 29 RK_FUNC_1 &pcfg_pull_none>,
  1844. <3 30 RK_FUNC_1 &pcfg_pull_none>,
  1845. <3 31 RK_FUNC_1 &pcfg_pull_none>,
  1846. <4 0 RK_FUNC_1 &pcfg_pull_none>;
  1847. };
  1848. };
  1849. i2s1 {
  1850. i2s1_2ch_bus: i2s1-2ch-bus {
  1851. rockchip,pins =
  1852. <4 3 RK_FUNC_1 &pcfg_pull_none>,
  1853. <4 4 RK_FUNC_1 &pcfg_pull_none>,
  1854. <4 5 RK_FUNC_1 &pcfg_pull_none>,
  1855. <4 6 RK_FUNC_1 &pcfg_pull_none>,
  1856. <4 7 RK_FUNC_1 &pcfg_pull_none>;
  1857. };
  1858. };
  1859. sdio0 {
  1860. sdio0_bus1: sdio0-bus1 {
  1861. rockchip,pins =
  1862. <2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>;
  1863. };
  1864. sdio0_bus4: sdio0-bus4 {
  1865. rockchip,pins =
  1866. <2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>,
  1867. <2 RK_PC5 RK_FUNC_1 &pcfg_pull_up>,
  1868. <2 RK_PC6 RK_FUNC_1 &pcfg_pull_up>,
  1869. <2 RK_PC7 RK_FUNC_1 &pcfg_pull_up>;
  1870. };
  1871. sdio0_cmd: sdio0-cmd {
  1872. rockchip,pins =
  1873. <2 RK_PD0 RK_FUNC_1 &pcfg_pull_up>;
  1874. };
  1875. sdio0_clk: sdio0-clk {
  1876. rockchip,pins =
  1877. <2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
  1878. };
  1879. sdio0_cd: sdio0-cd {
  1880. rockchip,pins =
  1881. <2 RK_PD2 RK_FUNC_1 &pcfg_pull_up>;
  1882. };
  1883. sdio0_pwr: sdio0-pwr {
  1884. rockchip,pins =
  1885. <2 RK_PD3 RK_FUNC_1 &pcfg_pull_up>;
  1886. };
  1887. sdio0_bkpwr: sdio0-bkpwr {
  1888. rockchip,pins =
  1889. <2 RK_PD4 RK_FUNC_1 &pcfg_pull_up>;
  1890. };
  1891. sdio0_wp: sdio0-wp {
  1892. rockchip,pins =
  1893. <0 RK_PA3 RK_FUNC_1 &pcfg_pull_up>;
  1894. };
  1895. sdio0_int: sdio0-int {
  1896. rockchip,pins =
  1897. <0 RK_PA4 RK_FUNC_1 &pcfg_pull_up>;
  1898. };
  1899. };
  1900. sdmmc {
  1901. sdmmc_bus1: sdmmc-bus1 {
  1902. rockchip,pins =
  1903. <4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>;
  1904. };
  1905. sdmmc_bus4: sdmmc-bus4 {
  1906. rockchip,pins =
  1907. <4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>,
  1908. <4 RK_PB1 RK_FUNC_1 &pcfg_pull_up>,
  1909. <4 RK_PB2 RK_FUNC_1 &pcfg_pull_up>,
  1910. <4 RK_PB3 RK_FUNC_1 &pcfg_pull_up>;
  1911. };
  1912. sdmmc_clk: sdmmc-clk {
  1913. rockchip,pins =
  1914. <4 RK_PB4 RK_FUNC_1 &pcfg_pull_none>;
  1915. };
  1916. sdmmc_cmd: sdmmc-cmd {
  1917. rockchip,pins =
  1918. <4 RK_PB5 RK_FUNC_1 &pcfg_pull_up>;
  1919. };
  1920. sdmmc_cd: sdmmc-cd {
  1921. rockchip,pins =
  1922. <0 RK_PA7 RK_FUNC_1 &pcfg_pull_up>;
  1923. };
  1924. sdmmc_wp: sdmmc-wp {
  1925. rockchip,pins =
  1926. <0 RK_PB0 RK_FUNC_1 &pcfg_pull_up>;
  1927. };
  1928. };
  1929. sleep {
  1930. ap_pwroff: ap-pwroff {
  1931. rockchip,pins = <1 5 RK_FUNC_1 &pcfg_pull_none>;
  1932. };
  1933. ddrio_pwroff: ddrio-pwroff {
  1934. rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
  1935. };
  1936. };
  1937. spdif {
  1938. spdif_bus: spdif-bus {
  1939. rockchip,pins =
  1940. <4 21 RK_FUNC_1 &pcfg_pull_none>;
  1941. };
  1942. spdif_bus_1: spdif-bus-1 {
  1943. rockchip,pins =
  1944. <3 RK_PC0 RK_FUNC_3 &pcfg_pull_none>;
  1945. };
  1946. };
  1947. spi0 {
  1948. spi0_clk: spi0-clk {
  1949. rockchip,pins =
  1950. <3 6 RK_FUNC_2 &pcfg_pull_up>;
  1951. };
  1952. spi0_cs0: spi0-cs0 {
  1953. rockchip,pins =
  1954. <3 7 RK_FUNC_2 &pcfg_pull_up>;
  1955. };
  1956. spi0_cs1: spi0-cs1 {
  1957. rockchip,pins =
  1958. <3 8 RK_FUNC_2 &pcfg_pull_up>;
  1959. };
  1960. spi0_tx: spi0-tx {
  1961. rockchip,pins =
  1962. <3 5 RK_FUNC_2 &pcfg_pull_up>;
  1963. };
  1964. spi0_rx: spi0-rx {
  1965. rockchip,pins =
  1966. <3 4 RK_FUNC_2 &pcfg_pull_up>;
  1967. };
  1968. };
  1969. spi1 {
  1970. spi1_clk: spi1-clk {
  1971. rockchip,pins =
  1972. <1 9 RK_FUNC_2 &pcfg_pull_up>;
  1973. };
  1974. spi1_cs0: spi1-cs0 {
  1975. rockchip,pins =
  1976. <1 10 RK_FUNC_2 &pcfg_pull_up>;
  1977. };
  1978. spi1_rx: spi1-rx {
  1979. rockchip,pins =
  1980. <1 7 RK_FUNC_2 &pcfg_pull_up>;
  1981. };
  1982. spi1_tx: spi1-tx {
  1983. rockchip,pins =
  1984. <1 8 RK_FUNC_2 &pcfg_pull_up>;
  1985. };
  1986. };
  1987. spi2 {
  1988. spi2_clk: spi2-clk {
  1989. rockchip,pins =
  1990. <2 11 RK_FUNC_1 &pcfg_pull_up>;
  1991. };
  1992. spi2_cs0: spi2-cs0 {
  1993. rockchip,pins =
  1994. <2 12 RK_FUNC_1 &pcfg_pull_up>;
  1995. };
  1996. spi2_rx: spi2-rx {
  1997. rockchip,pins =
  1998. <2 9 RK_FUNC_1 &pcfg_pull_up>;
  1999. };
  2000. spi2_tx: spi2-tx {
  2001. rockchip,pins =
  2002. <2 10 RK_FUNC_1 &pcfg_pull_up>;
  2003. };
  2004. };
  2005. spi3 {
  2006. spi3_clk: spi3-clk {
  2007. rockchip,pins =
  2008. <1 17 RK_FUNC_1 &pcfg_pull_up>;
  2009. };
  2010. spi3_cs0: spi3-cs0 {
  2011. rockchip,pins =
  2012. <1 18 RK_FUNC_1 &pcfg_pull_up>;
  2013. };
  2014. spi3_rx: spi3-rx {
  2015. rockchip,pins =
  2016. <1 15 RK_FUNC_1 &pcfg_pull_up>;
  2017. };
  2018. spi3_tx: spi3-tx {
  2019. rockchip,pins =
  2020. <1 16 RK_FUNC_1 &pcfg_pull_up>;
  2021. };
  2022. };
  2023. spi4 {
  2024. spi4_clk: spi4-clk {
  2025. rockchip,pins =
  2026. <3 2 RK_FUNC_2 &pcfg_pull_up>;
  2027. };
  2028. spi4_cs0: spi4-cs0 {
  2029. rockchip,pins =
  2030. <3 3 RK_FUNC_2 &pcfg_pull_up>;
  2031. };
  2032. spi4_rx: spi4-rx {
  2033. rockchip,pins =
  2034. <3 0 RK_FUNC_2 &pcfg_pull_up>;
  2035. };
  2036. spi4_tx: spi4-tx {
  2037. rockchip,pins =
  2038. <3 1 RK_FUNC_2 &pcfg_pull_up>;
  2039. };
  2040. };
  2041. spi5 {
  2042. spi5_clk: spi5-clk {
  2043. rockchip,pins =
  2044. <2 22 RK_FUNC_2 &pcfg_pull_up>;
  2045. };
  2046. spi5_cs0: spi5-cs0 {
  2047. rockchip,pins =
  2048. <2 23 RK_FUNC_2 &pcfg_pull_up>;
  2049. };
  2050. spi5_rx: spi5-rx {
  2051. rockchip,pins =
  2052. <2 20 RK_FUNC_2 &pcfg_pull_up>;
  2053. };
  2054. spi5_tx: spi5-tx {
  2055. rockchip,pins =
  2056. <2 21 RK_FUNC_2 &pcfg_pull_up>;
  2057. };
  2058. };
  2059. tsadc {
  2060. otp_gpio: otp-gpio {
  2061. rockchip,pins = <1 6 RK_FUNC_GPIO &pcfg_pull_none>;
  2062. };
  2063. otp_out: otp-out {
  2064. rockchip,pins = <1 6 RK_FUNC_1 &pcfg_pull_none>;
  2065. };
  2066. };
  2067. uart0 {
  2068. uart0_xfer: uart0-xfer {
  2069. rockchip,pins =
  2070. <2 16 RK_FUNC_1 &pcfg_pull_up>,
  2071. <2 17 RK_FUNC_1 &pcfg_pull_none>;
  2072. };
  2073. uart0_cts: uart0-cts {
  2074. rockchip,pins =
  2075. <2 18 RK_FUNC_1 &pcfg_pull_none>;
  2076. };
  2077. uart0_rts: uart0-rts {
  2078. rockchip,pins =
  2079. <2 19 RK_FUNC_1 &pcfg_pull_none>;
  2080. };
  2081. };
  2082. uart1 {
  2083. uart1_xfer: uart1-xfer {
  2084. rockchip,pins =
  2085. <3 12 RK_FUNC_2 &pcfg_pull_up>,
  2086. <3 13 RK_FUNC_2 &pcfg_pull_none>;
  2087. };
  2088. };
  2089. uart2a {
  2090. uart2a_xfer: uart2a-xfer {
  2091. rockchip,pins =
  2092. <4 8 RK_FUNC_2 &pcfg_pull_up>,
  2093. <4 9 RK_FUNC_2 &pcfg_pull_none>;
  2094. };
  2095. };
  2096. uart2b {
  2097. uart2b_xfer: uart2b-xfer {
  2098. rockchip,pins =
  2099. <4 16 RK_FUNC_2 &pcfg_pull_up>,
  2100. <4 17 RK_FUNC_2 &pcfg_pull_none>;
  2101. };
  2102. };
  2103. uart2c {
  2104. uart2c_xfer: uart2c-xfer {
  2105. rockchip,pins =
  2106. <4 19 RK_FUNC_1 &pcfg_pull_up>,
  2107. <4 20 RK_FUNC_1 &pcfg_pull_none>;
  2108. };
  2109. };
  2110. uart3 {
  2111. uart3_xfer: uart3-xfer {
  2112. rockchip,pins =
  2113. <3 14 RK_FUNC_2 &pcfg_pull_up>,
  2114. <3 15 RK_FUNC_2 &pcfg_pull_none>;
  2115. };
  2116. uart3_cts: uart3-cts {
  2117. rockchip,pins =
  2118. <3 18 RK_FUNC_2 &pcfg_pull_none>;
  2119. };
  2120. uart3_rts: uart3-rts {
  2121. rockchip,pins =
  2122. <3 19 RK_FUNC_2 &pcfg_pull_none>;
  2123. };
  2124. };
  2125. uart4 {
  2126. uart4_xfer: uart4-xfer {
  2127. rockchip,pins =
  2128. <1 7 RK_FUNC_1 &pcfg_pull_up>,
  2129. <1 8 RK_FUNC_1 &pcfg_pull_none>;
  2130. };
  2131. };
  2132. uarthdcp {
  2133. uarthdcp_xfer: uarthdcp-xfer {
  2134. rockchip,pins =
  2135. <4 21 RK_FUNC_2 &pcfg_pull_up>,
  2136. <4 22 RK_FUNC_2 &pcfg_pull_none>;
  2137. };
  2138. };
  2139. pwm0 {
  2140. pwm0_pin: pwm0-pin {
  2141. rockchip,pins =
  2142. <4 18 RK_FUNC_1 &pcfg_pull_none>;
  2143. };
  2144. vop0_pwm_pin: vop0-pwm-pin {
  2145. rockchip,pins =
  2146. <4 18 RK_FUNC_2 &pcfg_pull_none>;
  2147. };
  2148. };
  2149. pwm1 {
  2150. pwm1_pin: pwm1-pin {
  2151. rockchip,pins =
  2152. <4 22 RK_FUNC_1 &pcfg_pull_none>;
  2153. };
  2154. vop1_pwm_pin: vop1-pwm-pin {
  2155. rockchip,pins =
  2156. <4 18 RK_FUNC_3 &pcfg_pull_none>;
  2157. };
  2158. };
  2159. pwm2 {
  2160. pwm2_pin: pwm2-pin {
  2161. rockchip,pins =
  2162. <1 19 RK_FUNC_1 &pcfg_pull_none>;
  2163. };
  2164. };
  2165. pwm3a {
  2166. pwm3a_pin: pwm3a-pin {
  2167. rockchip,pins =
  2168. <0 6 RK_FUNC_1 &pcfg_pull_none>;
  2169. };
  2170. };
  2171. pwm3b {
  2172. pwm3b_pin: pwm3b-pin {
  2173. rockchip,pins =
  2174. <1 14 RK_FUNC_1 &pcfg_pull_none>;
  2175. };
  2176. };
  2177. hdmi {
  2178. hdmi_i2c_xfer: hdmi-i2c-xfer {
  2179. rockchip,pins =
  2180. <4 RK_PC1 RK_FUNC_3 &pcfg_pull_none>,
  2181. <4 RK_PC0 RK_FUNC_3 &pcfg_pull_none>;
  2182. };
  2183. hdmi_cec: hdmi-cec {
  2184. rockchip,pins =
  2185. <4 RK_PC7 RK_FUNC_1 &pcfg_pull_none>;
  2186. };
  2187. };
  2188. pcie {
  2189. pcie_clkreqn_cpm: pci-clkreqn-cpm {
  2190. rockchip,pins =
  2191. <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
  2192. };
  2193. pcie_clkreqnb_cpm: pci-clkreqnb-cpm {
  2194. rockchip,pins =
  2195. <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
  2196. };
  2197. };
  2198. };
  2199. };