rk3399.dtsi 63 KB

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