rk3399.dtsi 69 KB

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