rk3399.dtsi 62 KB

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