rk3328.dtsi 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd
  4. */
  5. #include <dt-bindings/clock/rk3328-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/rk3328-power.h>
  11. #include <dt-bindings/soc/rockchip,boot-mode.h>
  12. #include <dt-bindings/thermal/thermal.h>
  13. / {
  14. compatible = "rockchip,rk3328";
  15. interrupt-parent = <&gic>;
  16. #address-cells = <2>;
  17. #size-cells = <2>;
  18. aliases {
  19. serial0 = &uart0;
  20. serial1 = &uart1;
  21. serial2 = &uart2;
  22. i2c0 = &i2c0;
  23. i2c1 = &i2c1;
  24. i2c2 = &i2c2;
  25. i2c3 = &i2c3;
  26. ethernet0 = &gmac2io;
  27. ethernet1 = &gmac2phy;
  28. };
  29. cpus {
  30. #address-cells = <2>;
  31. #size-cells = <0>;
  32. cpu0: cpu@0 {
  33. device_type = "cpu";
  34. compatible = "arm,cortex-a53";
  35. reg = <0x0 0x0>;
  36. clocks = <&cru ARMCLK>;
  37. #cooling-cells = <2>;
  38. cpu-idle-states = <&CPU_SLEEP>;
  39. dynamic-power-coefficient = <120>;
  40. enable-method = "psci";
  41. next-level-cache = <&l2>;
  42. operating-points-v2 = <&cpu0_opp_table>;
  43. };
  44. cpu1: cpu@1 {
  45. device_type = "cpu";
  46. compatible = "arm,cortex-a53";
  47. reg = <0x0 0x1>;
  48. clocks = <&cru ARMCLK>;
  49. #cooling-cells = <2>;
  50. cpu-idle-states = <&CPU_SLEEP>;
  51. dynamic-power-coefficient = <120>;
  52. enable-method = "psci";
  53. next-level-cache = <&l2>;
  54. operating-points-v2 = <&cpu0_opp_table>;
  55. };
  56. cpu2: cpu@2 {
  57. device_type = "cpu";
  58. compatible = "arm,cortex-a53";
  59. reg = <0x0 0x2>;
  60. clocks = <&cru ARMCLK>;
  61. #cooling-cells = <2>;
  62. cpu-idle-states = <&CPU_SLEEP>;
  63. dynamic-power-coefficient = <120>;
  64. enable-method = "psci";
  65. next-level-cache = <&l2>;
  66. operating-points-v2 = <&cpu0_opp_table>;
  67. };
  68. cpu3: cpu@3 {
  69. device_type = "cpu";
  70. compatible = "arm,cortex-a53";
  71. reg = <0x0 0x3>;
  72. clocks = <&cru ARMCLK>;
  73. #cooling-cells = <2>;
  74. cpu-idle-states = <&CPU_SLEEP>;
  75. dynamic-power-coefficient = <120>;
  76. enable-method = "psci";
  77. next-level-cache = <&l2>;
  78. operating-points-v2 = <&cpu0_opp_table>;
  79. };
  80. idle-states {
  81. entry-method = "psci";
  82. CPU_SLEEP: cpu-sleep {
  83. compatible = "arm,idle-state";
  84. local-timer-stop;
  85. arm,psci-suspend-param = <0x0010000>;
  86. entry-latency-us = <120>;
  87. exit-latency-us = <250>;
  88. min-residency-us = <900>;
  89. };
  90. };
  91. l2: l2-cache0 {
  92. compatible = "cache";
  93. };
  94. };
  95. cpu0_opp_table: opp-table-0 {
  96. compatible = "operating-points-v2";
  97. opp-shared;
  98. opp-408000000 {
  99. opp-hz = /bits/ 64 <408000000>;
  100. opp-microvolt = <950000>;
  101. clock-latency-ns = <40000>;
  102. opp-suspend;
  103. };
  104. opp-600000000 {
  105. opp-hz = /bits/ 64 <600000000>;
  106. opp-microvolt = <950000>;
  107. clock-latency-ns = <40000>;
  108. };
  109. opp-816000000 {
  110. opp-hz = /bits/ 64 <816000000>;
  111. opp-microvolt = <1000000>;
  112. clock-latency-ns = <40000>;
  113. };
  114. opp-1008000000 {
  115. opp-hz = /bits/ 64 <1008000000>;
  116. opp-microvolt = <1100000>;
  117. clock-latency-ns = <40000>;
  118. };
  119. opp-1200000000 {
  120. opp-hz = /bits/ 64 <1200000000>;
  121. opp-microvolt = <1225000>;
  122. clock-latency-ns = <40000>;
  123. };
  124. opp-1296000000 {
  125. opp-hz = /bits/ 64 <1296000000>;
  126. opp-microvolt = <1300000>;
  127. clock-latency-ns = <40000>;
  128. };
  129. };
  130. analog_sound: analog-sound {
  131. compatible = "simple-audio-card";
  132. simple-audio-card,format = "i2s";
  133. simple-audio-card,mclk-fs = <256>;
  134. simple-audio-card,name = "Analog";
  135. status = "disabled";
  136. simple-audio-card,cpu {
  137. sound-dai = <&i2s1>;
  138. };
  139. simple-audio-card,codec {
  140. sound-dai = <&codec>;
  141. };
  142. };
  143. arm-pmu {
  144. compatible = "arm,cortex-a53-pmu";
  145. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
  146. <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
  147. <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
  148. <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  149. interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
  150. };
  151. display_subsystem: display-subsystem {
  152. compatible = "rockchip,display-subsystem";
  153. ports = <&vop_out>;
  154. };
  155. hdmi_sound: hdmi-sound {
  156. compatible = "simple-audio-card";
  157. simple-audio-card,format = "i2s";
  158. simple-audio-card,mclk-fs = <128>;
  159. simple-audio-card,name = "HDMI";
  160. status = "disabled";
  161. simple-audio-card,cpu {
  162. sound-dai = <&i2s0>;
  163. };
  164. simple-audio-card,codec {
  165. sound-dai = <&hdmi>;
  166. };
  167. };
  168. psci {
  169. compatible = "arm,psci-1.0", "arm,psci-0.2";
  170. method = "smc";
  171. };
  172. timer {
  173. compatible = "arm,armv8-timer";
  174. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  175. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  176. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  177. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  178. };
  179. xin24m: xin24m {
  180. compatible = "fixed-clock";
  181. #clock-cells = <0>;
  182. clock-frequency = <24000000>;
  183. clock-output-names = "xin24m";
  184. };
  185. i2s0: i2s@ff000000 {
  186. compatible = "rockchip,rk3328-i2s", "rockchip,rk3066-i2s";
  187. reg = <0x0 0xff000000 0x0 0x1000>;
  188. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  189. clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0_8CH>;
  190. clock-names = "i2s_clk", "i2s_hclk";
  191. dmas = <&dmac 11>, <&dmac 12>;
  192. dma-names = "tx", "rx";
  193. #sound-dai-cells = <0>;
  194. status = "disabled";
  195. };
  196. i2s1: i2s@ff010000 {
  197. compatible = "rockchip,rk3328-i2s", "rockchip,rk3066-i2s";
  198. reg = <0x0 0xff010000 0x0 0x1000>;
  199. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  200. clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S1_8CH>;
  201. clock-names = "i2s_clk", "i2s_hclk";
  202. dmas = <&dmac 14>, <&dmac 15>;
  203. dma-names = "tx", "rx";
  204. #sound-dai-cells = <0>;
  205. status = "disabled";
  206. };
  207. i2s2: i2s@ff020000 {
  208. compatible = "rockchip,rk3328-i2s", "rockchip,rk3066-i2s";
  209. reg = <0x0 0xff020000 0x0 0x1000>;
  210. interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
  211. clocks = <&cru SCLK_I2S2>, <&cru HCLK_I2S2_2CH>;
  212. clock-names = "i2s_clk", "i2s_hclk";
  213. dmas = <&dmac 0>, <&dmac 1>;
  214. dma-names = "tx", "rx";
  215. #sound-dai-cells = <0>;
  216. status = "disabled";
  217. };
  218. spdif: spdif@ff030000 {
  219. compatible = "rockchip,rk3328-spdif";
  220. reg = <0x0 0xff030000 0x0 0x1000>;
  221. interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
  222. clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF_8CH>;
  223. clock-names = "mclk", "hclk";
  224. dmas = <&dmac 10>;
  225. dma-names = "tx";
  226. pinctrl-names = "default";
  227. pinctrl-0 = <&spdifm2_tx>;
  228. #sound-dai-cells = <0>;
  229. status = "disabled";
  230. };
  231. pdm: pdm@ff040000 {
  232. compatible = "rockchip,pdm";
  233. reg = <0x0 0xff040000 0x0 0x1000>;
  234. clocks = <&cru SCLK_PDM>, <&cru HCLK_PDM>;
  235. clock-names = "pdm_clk", "pdm_hclk";
  236. dmas = <&dmac 16>;
  237. dma-names = "rx";
  238. pinctrl-names = "default", "sleep";
  239. pinctrl-0 = <&pdmm0_clk
  240. &pdmm0_sdi0
  241. &pdmm0_sdi1
  242. &pdmm0_sdi2
  243. &pdmm0_sdi3>;
  244. pinctrl-1 = <&pdmm0_clk_sleep
  245. &pdmm0_sdi0_sleep
  246. &pdmm0_sdi1_sleep
  247. &pdmm0_sdi2_sleep
  248. &pdmm0_sdi3_sleep>;
  249. status = "disabled";
  250. };
  251. grf: syscon@ff100000 {
  252. compatible = "rockchip,rk3328-grf", "syscon", "simple-mfd";
  253. reg = <0x0 0xff100000 0x0 0x1000>;
  254. io_domains: io-domains {
  255. compatible = "rockchip,rk3328-io-voltage-domain";
  256. status = "disabled";
  257. };
  258. grf_gpio: gpio {
  259. compatible = "rockchip,rk3328-grf-gpio";
  260. gpio-controller;
  261. #gpio-cells = <2>;
  262. };
  263. power: power-controller {
  264. compatible = "rockchip,rk3328-power-controller";
  265. #power-domain-cells = <1>;
  266. #address-cells = <1>;
  267. #size-cells = <0>;
  268. power-domain@RK3328_PD_HEVC {
  269. reg = <RK3328_PD_HEVC>;
  270. #power-domain-cells = <0>;
  271. };
  272. power-domain@RK3328_PD_VIDEO {
  273. reg = <RK3328_PD_VIDEO>;
  274. clocks = <&cru ACLK_RKVDEC>,
  275. <&cru HCLK_RKVDEC>,
  276. <&cru SCLK_VDEC_CABAC>,
  277. <&cru SCLK_VDEC_CORE>;
  278. #power-domain-cells = <0>;
  279. };
  280. power-domain@RK3328_PD_VPU {
  281. reg = <RK3328_PD_VPU>;
  282. clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
  283. #power-domain-cells = <0>;
  284. };
  285. };
  286. reboot-mode {
  287. compatible = "syscon-reboot-mode";
  288. offset = <0x5c8>;
  289. mode-normal = <BOOT_NORMAL>;
  290. mode-recovery = <BOOT_RECOVERY>;
  291. mode-bootloader = <BOOT_FASTBOOT>;
  292. mode-loader = <BOOT_BL_DOWNLOAD>;
  293. };
  294. };
  295. uart0: serial@ff110000 {
  296. compatible = "rockchip,rk3328-uart", "snps,dw-apb-uart";
  297. reg = <0x0 0xff110000 0x0 0x100>;
  298. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  299. clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
  300. clock-names = "baudclk", "apb_pclk";
  301. dmas = <&dmac 2>, <&dmac 3>;
  302. dma-names = "tx", "rx";
  303. pinctrl-names = "default";
  304. pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
  305. reg-io-width = <4>;
  306. reg-shift = <2>;
  307. status = "disabled";
  308. };
  309. uart1: serial@ff120000 {
  310. compatible = "rockchip,rk3328-uart", "snps,dw-apb-uart";
  311. reg = <0x0 0xff120000 0x0 0x100>;
  312. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  313. clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
  314. clock-names = "baudclk", "apb_pclk";
  315. dmas = <&dmac 4>, <&dmac 5>;
  316. dma-names = "tx", "rx";
  317. pinctrl-names = "default";
  318. pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>;
  319. reg-io-width = <4>;
  320. reg-shift = <2>;
  321. status = "disabled";
  322. };
  323. uart2: serial@ff130000 {
  324. compatible = "rockchip,rk3328-uart", "snps,dw-apb-uart";
  325. reg = <0x0 0xff130000 0x0 0x100>;
  326. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  327. clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
  328. clock-names = "baudclk", "apb_pclk";
  329. dmas = <&dmac 6>, <&dmac 7>;
  330. dma-names = "tx", "rx";
  331. pinctrl-names = "default";
  332. pinctrl-0 = <&uart2m1_xfer>;
  333. reg-io-width = <4>;
  334. reg-shift = <2>;
  335. status = "disabled";
  336. };
  337. i2c0: i2c@ff150000 {
  338. compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c";
  339. reg = <0x0 0xff150000 0x0 0x1000>;
  340. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  341. #address-cells = <1>;
  342. #size-cells = <0>;
  343. clocks = <&cru SCLK_I2C0>, <&cru PCLK_I2C0>;
  344. clock-names = "i2c", "pclk";
  345. pinctrl-names = "default";
  346. pinctrl-0 = <&i2c0_xfer>;
  347. status = "disabled";
  348. };
  349. i2c1: i2c@ff160000 {
  350. compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c";
  351. reg = <0x0 0xff160000 0x0 0x1000>;
  352. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  353. #address-cells = <1>;
  354. #size-cells = <0>;
  355. clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
  356. clock-names = "i2c", "pclk";
  357. pinctrl-names = "default";
  358. pinctrl-0 = <&i2c1_xfer>;
  359. status = "disabled";
  360. };
  361. i2c2: i2c@ff170000 {
  362. compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c";
  363. reg = <0x0 0xff170000 0x0 0x1000>;
  364. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  365. #address-cells = <1>;
  366. #size-cells = <0>;
  367. clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
  368. clock-names = "i2c", "pclk";
  369. pinctrl-names = "default";
  370. pinctrl-0 = <&i2c2_xfer>;
  371. status = "disabled";
  372. };
  373. i2c3: i2c@ff180000 {
  374. compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c";
  375. reg = <0x0 0xff180000 0x0 0x1000>;
  376. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  377. #address-cells = <1>;
  378. #size-cells = <0>;
  379. clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
  380. clock-names = "i2c", "pclk";
  381. pinctrl-names = "default";
  382. pinctrl-0 = <&i2c3_xfer>;
  383. status = "disabled";
  384. };
  385. spi0: spi@ff190000 {
  386. compatible = "rockchip,rk3328-spi", "rockchip,rk3066-spi";
  387. reg = <0x0 0xff190000 0x0 0x1000>;
  388. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
  389. #address-cells = <1>;
  390. #size-cells = <0>;
  391. clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>;
  392. clock-names = "spiclk", "apb_pclk";
  393. dmas = <&dmac 8>, <&dmac 9>;
  394. dma-names = "tx", "rx";
  395. pinctrl-names = "default";
  396. pinctrl-0 = <&spi0m2_clk &spi0m2_tx &spi0m2_rx &spi0m2_cs0>;
  397. status = "disabled";
  398. };
  399. wdt: watchdog@ff1a0000 {
  400. compatible = "rockchip,rk3328-wdt", "snps,dw-wdt";
  401. reg = <0x0 0xff1a0000 0x0 0x100>;
  402. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
  403. clocks = <&cru PCLK_WDT>;
  404. };
  405. pwm0: pwm@ff1b0000 {
  406. compatible = "rockchip,rk3328-pwm";
  407. reg = <0x0 0xff1b0000 0x0 0x10>;
  408. clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
  409. clock-names = "pwm", "pclk";
  410. pinctrl-names = "default";
  411. pinctrl-0 = <&pwm0_pin>;
  412. #pwm-cells = <3>;
  413. status = "disabled";
  414. };
  415. pwm1: pwm@ff1b0010 {
  416. compatible = "rockchip,rk3328-pwm";
  417. reg = <0x0 0xff1b0010 0x0 0x10>;
  418. clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
  419. clock-names = "pwm", "pclk";
  420. pinctrl-names = "default";
  421. pinctrl-0 = <&pwm1_pin>;
  422. #pwm-cells = <3>;
  423. status = "disabled";
  424. };
  425. pwm2: pwm@ff1b0020 {
  426. compatible = "rockchip,rk3328-pwm";
  427. reg = <0x0 0xff1b0020 0x0 0x10>;
  428. clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
  429. clock-names = "pwm", "pclk";
  430. pinctrl-names = "default";
  431. pinctrl-0 = <&pwm2_pin>;
  432. #pwm-cells = <3>;
  433. status = "disabled";
  434. };
  435. pwm3: pwm@ff1b0030 {
  436. compatible = "rockchip,rk3328-pwm";
  437. reg = <0x0 0xff1b0030 0x0 0x10>;
  438. interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
  439. clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
  440. clock-names = "pwm", "pclk";
  441. pinctrl-names = "default";
  442. pinctrl-0 = <&pwmir_pin>;
  443. #pwm-cells = <3>;
  444. status = "disabled";
  445. };
  446. dmac: dma-controller@ff1f0000 {
  447. compatible = "arm,pl330", "arm,primecell";
  448. reg = <0x0 0xff1f0000 0x0 0x4000>;
  449. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  450. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
  451. arm,pl330-periph-burst;
  452. clocks = <&cru ACLK_DMAC>;
  453. clock-names = "apb_pclk";
  454. #dma-cells = <1>;
  455. };
  456. thermal-zones {
  457. soc_thermal: soc-thermal {
  458. polling-delay-passive = <20>;
  459. polling-delay = <1000>;
  460. sustainable-power = <1000>;
  461. thermal-sensors = <&tsadc 0>;
  462. trips {
  463. threshold: trip-point0 {
  464. temperature = <70000>;
  465. hysteresis = <2000>;
  466. type = "passive";
  467. };
  468. target: trip-point1 {
  469. temperature = <85000>;
  470. hysteresis = <2000>;
  471. type = "passive";
  472. };
  473. soc_crit: soc-crit {
  474. temperature = <95000>;
  475. hysteresis = <2000>;
  476. type = "critical";
  477. };
  478. };
  479. cooling-maps {
  480. map0 {
  481. trip = <&target>;
  482. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  483. <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  484. <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  485. <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  486. contribution = <4096>;
  487. };
  488. };
  489. };
  490. };
  491. tsadc: tsadc@ff250000 {
  492. compatible = "rockchip,rk3328-tsadc";
  493. reg = <0x0 0xff250000 0x0 0x100>;
  494. interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
  495. assigned-clocks = <&cru SCLK_TSADC>;
  496. assigned-clock-rates = <50000>;
  497. clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
  498. clock-names = "tsadc", "apb_pclk";
  499. pinctrl-names = "init", "default", "sleep";
  500. pinctrl-0 = <&otp_pin>;
  501. pinctrl-1 = <&otp_out>;
  502. pinctrl-2 = <&otp_pin>;
  503. resets = <&cru SRST_TSADC>;
  504. reset-names = "tsadc-apb";
  505. rockchip,grf = <&grf>;
  506. rockchip,hw-tshut-temp = <100000>;
  507. #thermal-sensor-cells = <1>;
  508. status = "disabled";
  509. };
  510. efuse: efuse@ff260000 {
  511. compatible = "rockchip,rk3328-efuse";
  512. reg = <0x0 0xff260000 0x0 0x50>;
  513. #address-cells = <1>;
  514. #size-cells = <1>;
  515. clocks = <&cru SCLK_EFUSE>;
  516. clock-names = "pclk_efuse";
  517. rockchip,efuse-size = <0x20>;
  518. /* Data cells */
  519. efuse_id: id@7 {
  520. reg = <0x07 0x10>;
  521. };
  522. cpu_leakage: cpu-leakage@17 {
  523. reg = <0x17 0x1>;
  524. };
  525. logic_leakage: logic-leakage@19 {
  526. reg = <0x19 0x1>;
  527. };
  528. efuse_cpu_version: cpu-version@1a {
  529. reg = <0x1a 0x1>;
  530. bits = <3 3>;
  531. };
  532. };
  533. saradc: adc@ff280000 {
  534. compatible = "rockchip,rk3328-saradc", "rockchip,rk3399-saradc";
  535. reg = <0x0 0xff280000 0x0 0x100>;
  536. interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
  537. #io-channel-cells = <1>;
  538. clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
  539. clock-names = "saradc", "apb_pclk";
  540. resets = <&cru SRST_SARADC_P>;
  541. reset-names = "saradc-apb";
  542. status = "disabled";
  543. };
  544. gpu: gpu@ff300000 {
  545. compatible = "rockchip,rk3328-mali", "arm,mali-450";
  546. reg = <0x0 0xff300000 0x0 0x30000>;
  547. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
  548. <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
  549. <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
  550. <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
  551. <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
  552. <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
  553. <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  554. interrupt-names = "gp",
  555. "gpmmu",
  556. "pp",
  557. "pp0",
  558. "ppmmu0",
  559. "pp1",
  560. "ppmmu1";
  561. clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
  562. clock-names = "bus", "core";
  563. resets = <&cru SRST_GPU_A>;
  564. };
  565. h265e_mmu: iommu@ff330200 {
  566. compatible = "rockchip,iommu";
  567. reg = <0x0 0xff330200 0 0x100>;
  568. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  569. clocks = <&cru ACLK_H265>, <&cru PCLK_H265>;
  570. clock-names = "aclk", "iface";
  571. #iommu-cells = <0>;
  572. status = "disabled";
  573. };
  574. vepu_mmu: iommu@ff340800 {
  575. compatible = "rockchip,iommu";
  576. reg = <0x0 0xff340800 0x0 0x40>;
  577. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  578. clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
  579. clock-names = "aclk", "iface";
  580. #iommu-cells = <0>;
  581. status = "disabled";
  582. };
  583. vpu: video-codec@ff350000 {
  584. compatible = "rockchip,rk3328-vpu";
  585. reg = <0x0 0xff350000 0x0 0x800>;
  586. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  587. interrupt-names = "vdpu";
  588. clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
  589. clock-names = "aclk", "hclk";
  590. iommus = <&vpu_mmu>;
  591. power-domains = <&power RK3328_PD_VPU>;
  592. };
  593. vpu_mmu: iommu@ff350800 {
  594. compatible = "rockchip,iommu";
  595. reg = <0x0 0xff350800 0x0 0x40>;
  596. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  597. clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
  598. clock-names = "aclk", "iface";
  599. #iommu-cells = <0>;
  600. power-domains = <&power RK3328_PD_VPU>;
  601. };
  602. vdec: video-codec@ff360000 {
  603. compatible = "rockchip,rk3328-vdec", "rockchip,rk3399-vdec";
  604. reg = <0x0 0xff360000 0x0 0x480>;
  605. interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  606. clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>,
  607. <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>;
  608. clock-names = "axi", "ahb", "cabac", "core";
  609. assigned-clocks = <&cru ACLK_RKVDEC>, <&cru SCLK_VDEC_CABAC>,
  610. <&cru SCLK_VDEC_CORE>;
  611. assigned-clock-rates = <400000000>, <400000000>, <300000000>;
  612. iommus = <&vdec_mmu>;
  613. power-domains = <&power RK3328_PD_VIDEO>;
  614. };
  615. vdec_mmu: iommu@ff360480 {
  616. compatible = "rockchip,iommu";
  617. reg = <0x0 0xff360480 0x0 0x40>, <0x0 0xff3604c0 0x0 0x40>;
  618. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
  619. clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>;
  620. clock-names = "aclk", "iface";
  621. #iommu-cells = <0>;
  622. power-domains = <&power RK3328_PD_VIDEO>;
  623. };
  624. vop: vop@ff370000 {
  625. compatible = "rockchip,rk3328-vop";
  626. reg = <0x0 0xff370000 0x0 0x3efc>;
  627. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  628. clocks = <&cru ACLK_VOP>, <&cru DCLK_LCDC>, <&cru HCLK_VOP>;
  629. clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
  630. resets = <&cru SRST_VOP_A>, <&cru SRST_VOP_H>, <&cru SRST_VOP_D>;
  631. reset-names = "axi", "ahb", "dclk";
  632. iommus = <&vop_mmu>;
  633. status = "disabled";
  634. vop_out: port {
  635. #address-cells = <1>;
  636. #size-cells = <0>;
  637. vop_out_hdmi: endpoint@0 {
  638. reg = <0>;
  639. remote-endpoint = <&hdmi_in_vop>;
  640. };
  641. };
  642. };
  643. vop_mmu: iommu@ff373f00 {
  644. compatible = "rockchip,iommu";
  645. reg = <0x0 0xff373f00 0x0 0x100>;
  646. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  647. clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
  648. clock-names = "aclk", "iface";
  649. #iommu-cells = <0>;
  650. status = "disabled";
  651. };
  652. hdmi: hdmi@ff3c0000 {
  653. compatible = "rockchip,rk3328-dw-hdmi";
  654. reg = <0x0 0xff3c0000 0x0 0x20000>;
  655. reg-io-width = <4>;
  656. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
  657. <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  658. clocks = <&cru PCLK_HDMI>,
  659. <&cru SCLK_HDMI_SFC>,
  660. <&cru SCLK_RTC32K>;
  661. clock-names = "iahb",
  662. "isfr",
  663. "cec";
  664. phys = <&hdmiphy>;
  665. phy-names = "hdmi";
  666. pinctrl-names = "default";
  667. pinctrl-0 = <&hdmi_cec &hdmii2c_xfer &hdmi_hpd>;
  668. rockchip,grf = <&grf>;
  669. #sound-dai-cells = <0>;
  670. status = "disabled";
  671. ports {
  672. hdmi_in: port {
  673. hdmi_in_vop: endpoint {
  674. remote-endpoint = <&vop_out_hdmi>;
  675. };
  676. };
  677. };
  678. };
  679. codec: codec@ff410000 {
  680. compatible = "rockchip,rk3328-codec";
  681. reg = <0x0 0xff410000 0x0 0x1000>;
  682. clocks = <&cru PCLK_ACODECPHY>, <&cru SCLK_I2S1>;
  683. clock-names = "pclk", "mclk";
  684. rockchip,grf = <&grf>;
  685. #sound-dai-cells = <0>;
  686. status = "disabled";
  687. };
  688. hdmiphy: phy@ff430000 {
  689. compatible = "rockchip,rk3328-hdmi-phy";
  690. reg = <0x0 0xff430000 0x0 0x10000>;
  691. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  692. clocks = <&cru PCLK_HDMIPHY>, <&xin24m>, <&cru DCLK_HDMIPHY>;
  693. clock-names = "sysclk", "refoclk", "refpclk";
  694. clock-output-names = "hdmi_phy";
  695. #clock-cells = <0>;
  696. nvmem-cells = <&efuse_cpu_version>;
  697. nvmem-cell-names = "cpu-version";
  698. #phy-cells = <0>;
  699. status = "disabled";
  700. };
  701. cru: clock-controller@ff440000 {
  702. compatible = "rockchip,rk3328-cru", "rockchip,cru", "syscon";
  703. reg = <0x0 0xff440000 0x0 0x1000>;
  704. rockchip,grf = <&grf>;
  705. #clock-cells = <1>;
  706. #reset-cells = <1>;
  707. assigned-clocks =
  708. /*
  709. * CPLL should run at 1200, but that is to high for
  710. * the initial dividers of most of its children.
  711. * We need set cpll child clk div first,
  712. * and then set the cpll frequency.
  713. */
  714. <&cru DCLK_LCDC>, <&cru SCLK_PDM>,
  715. <&cru SCLK_RTC32K>, <&cru SCLK_UART0>,
  716. <&cru SCLK_UART1>, <&cru SCLK_UART2>,
  717. <&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
  718. <&cru ACLK_VIO_PRE>, <&cru ACLK_RGA_PRE>,
  719. <&cru ACLK_VOP_PRE>, <&cru ACLK_RKVDEC_PRE>,
  720. <&cru ACLK_RKVENC>, <&cru ACLK_VPU_PRE>,
  721. <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>,
  722. <&cru SCLK_VENC_CORE>, <&cru SCLK_VENC_DSP>,
  723. <&cru SCLK_SDIO>, <&cru SCLK_TSP>,
  724. <&cru SCLK_WIFI>, <&cru ARMCLK>,
  725. <&cru PLL_GPLL>, <&cru PLL_CPLL>,
  726. <&cru ACLK_BUS_PRE>, <&cru HCLK_BUS_PRE>,
  727. <&cru PCLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
  728. <&cru HCLK_PERI>, <&cru PCLK_PERI>,
  729. <&cru SCLK_RTC32K>;
  730. assigned-clock-parents =
  731. <&cru HDMIPHY>, <&cru PLL_APLL>,
  732. <&cru PLL_GPLL>, <&xin24m>,
  733. <&xin24m>, <&xin24m>;
  734. assigned-clock-rates =
  735. <0>, <61440000>,
  736. <0>, <24000000>,
  737. <24000000>, <24000000>,
  738. <15000000>, <15000000>,
  739. <100000000>, <100000000>,
  740. <100000000>, <100000000>,
  741. <50000000>, <100000000>,
  742. <100000000>, <100000000>,
  743. <50000000>, <50000000>,
  744. <50000000>, <50000000>,
  745. <24000000>, <600000000>,
  746. <491520000>, <1200000000>,
  747. <150000000>, <75000000>,
  748. <75000000>, <150000000>,
  749. <75000000>, <75000000>,
  750. <32768>;
  751. };
  752. usb2phy_grf: syscon@ff450000 {
  753. compatible = "rockchip,rk3328-usb2phy-grf", "syscon",
  754. "simple-mfd";
  755. reg = <0x0 0xff450000 0x0 0x10000>;
  756. #address-cells = <1>;
  757. #size-cells = <1>;
  758. u2phy: usb2phy@100 {
  759. compatible = "rockchip,rk3328-usb2phy";
  760. reg = <0x100 0x10>;
  761. clocks = <&xin24m>;
  762. clock-names = "phyclk";
  763. clock-output-names = "usb480m_phy";
  764. #clock-cells = <0>;
  765. assigned-clocks = <&cru USB480M>;
  766. assigned-clock-parents = <&u2phy>;
  767. status = "disabled";
  768. u2phy_otg: otg-port {
  769. #phy-cells = <0>;
  770. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
  771. <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
  772. <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
  773. interrupt-names = "otg-bvalid", "otg-id",
  774. "linestate";
  775. status = "disabled";
  776. };
  777. u2phy_host: host-port {
  778. #phy-cells = <0>;
  779. interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
  780. interrupt-names = "linestate";
  781. status = "disabled";
  782. };
  783. };
  784. };
  785. sdmmc: mmc@ff500000 {
  786. compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
  787. reg = <0x0 0xff500000 0x0 0x4000>;
  788. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  789. clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
  790. <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
  791. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  792. fifo-depth = <0x100>;
  793. max-frequency = <150000000>;
  794. status = "disabled";
  795. };
  796. sdio: mmc@ff510000 {
  797. compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
  798. reg = <0x0 0xff510000 0x0 0x4000>;
  799. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  800. clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
  801. <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
  802. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  803. fifo-depth = <0x100>;
  804. max-frequency = <150000000>;
  805. status = "disabled";
  806. };
  807. emmc: mmc@ff520000 {
  808. compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
  809. reg = <0x0 0xff520000 0x0 0x4000>;
  810. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  811. clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
  812. <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
  813. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  814. fifo-depth = <0x100>;
  815. max-frequency = <150000000>;
  816. status = "disabled";
  817. };
  818. gmac2io: ethernet@ff540000 {
  819. compatible = "rockchip,rk3328-gmac";
  820. reg = <0x0 0xff540000 0x0 0x10000>;
  821. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
  822. interrupt-names = "macirq";
  823. clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_RX>,
  824. <&cru SCLK_MAC2IO_TX>, <&cru SCLK_MAC2IO_REF>,
  825. <&cru SCLK_MAC2IO_REFOUT>, <&cru ACLK_MAC2IO>,
  826. <&cru PCLK_MAC2IO>;
  827. clock-names = "stmmaceth", "mac_clk_rx",
  828. "mac_clk_tx", "clk_mac_ref",
  829. "clk_mac_refout", "aclk_mac",
  830. "pclk_mac";
  831. resets = <&cru SRST_GMAC2IO_A>;
  832. reset-names = "stmmaceth";
  833. rockchip,grf = <&grf>;
  834. snps,txpbl = <0x4>;
  835. status = "disabled";
  836. };
  837. gmac2phy: ethernet@ff550000 {
  838. compatible = "rockchip,rk3328-gmac";
  839. reg = <0x0 0xff550000 0x0 0x10000>;
  840. rockchip,grf = <&grf>;
  841. interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  842. interrupt-names = "macirq";
  843. clocks = <&cru SCLK_MAC2PHY_SRC>, <&cru SCLK_MAC2PHY_RXTX>,
  844. <&cru SCLK_MAC2PHY_RXTX>, <&cru SCLK_MAC2PHY_REF>,
  845. <&cru ACLK_MAC2PHY>, <&cru PCLK_MAC2PHY>,
  846. <&cru SCLK_MAC2PHY_OUT>;
  847. clock-names = "stmmaceth", "mac_clk_rx",
  848. "mac_clk_tx", "clk_mac_ref",
  849. "aclk_mac", "pclk_mac",
  850. "clk_macphy";
  851. resets = <&cru SRST_GMAC2PHY_A>;
  852. reset-names = "stmmaceth";
  853. phy-mode = "rmii";
  854. phy-handle = <&phy>;
  855. snps,txpbl = <0x4>;
  856. clock_in_out = "output";
  857. status = "disabled";
  858. mdio {
  859. compatible = "snps,dwmac-mdio";
  860. #address-cells = <1>;
  861. #size-cells = <0>;
  862. phy: ethernet-phy@0 {
  863. compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
  864. reg = <0>;
  865. clocks = <&cru SCLK_MAC2PHY_OUT>;
  866. resets = <&cru SRST_MACPHY>;
  867. pinctrl-names = "default";
  868. pinctrl-0 = <&fephyled_rxm1 &fephyled_linkm1>;
  869. phy-is-integrated;
  870. };
  871. };
  872. };
  873. usb20_otg: usb@ff580000 {
  874. compatible = "rockchip,rk3328-usb", "rockchip,rk3066-usb",
  875. "snps,dwc2";
  876. reg = <0x0 0xff580000 0x0 0x40000>;
  877. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  878. clocks = <&cru HCLK_OTG>;
  879. clock-names = "otg";
  880. dr_mode = "otg";
  881. g-np-tx-fifo-size = <16>;
  882. g-rx-fifo-size = <280>;
  883. g-tx-fifo-size = <256 128 128 64 32 16>;
  884. phys = <&u2phy_otg>;
  885. phy-names = "usb2-phy";
  886. status = "disabled";
  887. };
  888. usb_host0_ehci: usb@ff5c0000 {
  889. compatible = "generic-ehci";
  890. reg = <0x0 0xff5c0000 0x0 0x10000>;
  891. interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
  892. clocks = <&cru HCLK_HOST0>, <&u2phy>;
  893. phys = <&u2phy_host>;
  894. phy-names = "usb";
  895. status = "disabled";
  896. };
  897. usb_host0_ohci: usb@ff5d0000 {
  898. compatible = "generic-ohci";
  899. reg = <0x0 0xff5d0000 0x0 0x10000>;
  900. interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
  901. clocks = <&cru HCLK_HOST0>, <&u2phy>;
  902. phys = <&u2phy_host>;
  903. phy-names = "usb";
  904. status = "disabled";
  905. };
  906. usbdrd3: usb@ff600000 {
  907. compatible = "rockchip,rk3328-dwc3", "snps,dwc3";
  908. reg = <0x0 0xff600000 0x0 0x100000>;
  909. interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
  910. clocks = <&cru SCLK_USB3OTG_REF>, <&cru SCLK_USB3OTG_SUSPEND>,
  911. <&cru ACLK_USB3OTG>;
  912. clock-names = "ref_clk", "suspend_clk",
  913. "bus_clk";
  914. dr_mode = "otg";
  915. phy_type = "utmi_wide";
  916. snps,dis-del-phy-power-chg-quirk;
  917. snps,dis_enblslpm_quirk;
  918. snps,dis-tx-ipgap-linecheck-quirk;
  919. snps,dis-u2-freeclk-exists-quirk;
  920. snps,dis_u2_susphy_quirk;
  921. snps,dis_u3_susphy_quirk;
  922. status = "disabled";
  923. };
  924. gic: interrupt-controller@ff811000 {
  925. compatible = "arm,gic-400";
  926. #interrupt-cells = <3>;
  927. #address-cells = <0>;
  928. interrupt-controller;
  929. reg = <0x0 0xff811000 0 0x1000>,
  930. <0x0 0xff812000 0 0x2000>,
  931. <0x0 0xff814000 0 0x2000>,
  932. <0x0 0xff816000 0 0x2000>;
  933. interrupts = <GIC_PPI 9
  934. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  935. };
  936. pinctrl: pinctrl {
  937. compatible = "rockchip,rk3328-pinctrl";
  938. rockchip,grf = <&grf>;
  939. #address-cells = <2>;
  940. #size-cells = <2>;
  941. ranges;
  942. gpio0: gpio@ff210000 {
  943. compatible = "rockchip,gpio-bank";
  944. reg = <0x0 0xff210000 0x0 0x100>;
  945. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
  946. clocks = <&cru PCLK_GPIO0>;
  947. gpio-controller;
  948. #gpio-cells = <2>;
  949. interrupt-controller;
  950. #interrupt-cells = <2>;
  951. };
  952. gpio1: gpio@ff220000 {
  953. compatible = "rockchip,gpio-bank";
  954. reg = <0x0 0xff220000 0x0 0x100>;
  955. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  956. clocks = <&cru PCLK_GPIO1>;
  957. gpio-controller;
  958. #gpio-cells = <2>;
  959. interrupt-controller;
  960. #interrupt-cells = <2>;
  961. };
  962. gpio2: gpio@ff230000 {
  963. compatible = "rockchip,gpio-bank";
  964. reg = <0x0 0xff230000 0x0 0x100>;
  965. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  966. clocks = <&cru PCLK_GPIO2>;
  967. gpio-controller;
  968. #gpio-cells = <2>;
  969. interrupt-controller;
  970. #interrupt-cells = <2>;
  971. };
  972. gpio3: gpio@ff240000 {
  973. compatible = "rockchip,gpio-bank";
  974. reg = <0x0 0xff240000 0x0 0x100>;
  975. interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
  976. clocks = <&cru PCLK_GPIO3>;
  977. gpio-controller;
  978. #gpio-cells = <2>;
  979. interrupt-controller;
  980. #interrupt-cells = <2>;
  981. };
  982. pcfg_pull_up: pcfg-pull-up {
  983. bias-pull-up;
  984. };
  985. pcfg_pull_down: pcfg-pull-down {
  986. bias-pull-down;
  987. };
  988. pcfg_pull_none: pcfg-pull-none {
  989. bias-disable;
  990. };
  991. pcfg_pull_none_2ma: pcfg-pull-none-2ma {
  992. bias-disable;
  993. drive-strength = <2>;
  994. };
  995. pcfg_pull_up_2ma: pcfg-pull-up-2ma {
  996. bias-pull-up;
  997. drive-strength = <2>;
  998. };
  999. pcfg_pull_up_4ma: pcfg-pull-up-4ma {
  1000. bias-pull-up;
  1001. drive-strength = <4>;
  1002. };
  1003. pcfg_pull_none_4ma: pcfg-pull-none-4ma {
  1004. bias-disable;
  1005. drive-strength = <4>;
  1006. };
  1007. pcfg_pull_down_4ma: pcfg-pull-down-4ma {
  1008. bias-pull-down;
  1009. drive-strength = <4>;
  1010. };
  1011. pcfg_pull_none_8ma: pcfg-pull-none-8ma {
  1012. bias-disable;
  1013. drive-strength = <8>;
  1014. };
  1015. pcfg_pull_up_8ma: pcfg-pull-up-8ma {
  1016. bias-pull-up;
  1017. drive-strength = <8>;
  1018. };
  1019. pcfg_pull_none_12ma: pcfg-pull-none-12ma {
  1020. bias-disable;
  1021. drive-strength = <12>;
  1022. };
  1023. pcfg_pull_up_12ma: pcfg-pull-up-12ma {
  1024. bias-pull-up;
  1025. drive-strength = <12>;
  1026. };
  1027. pcfg_output_high: pcfg-output-high {
  1028. output-high;
  1029. };
  1030. pcfg_output_low: pcfg-output-low {
  1031. output-low;
  1032. };
  1033. pcfg_input_high: pcfg-input-high {
  1034. bias-pull-up;
  1035. input-enable;
  1036. };
  1037. pcfg_input: pcfg-input {
  1038. input-enable;
  1039. };
  1040. i2c0 {
  1041. i2c0_xfer: i2c0-xfer {
  1042. rockchip,pins = <2 RK_PD0 1 &pcfg_pull_none>,
  1043. <2 RK_PD1 1 &pcfg_pull_none>;
  1044. };
  1045. };
  1046. i2c1 {
  1047. i2c1_xfer: i2c1-xfer {
  1048. rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>,
  1049. <2 RK_PA5 2 &pcfg_pull_none>;
  1050. };
  1051. };
  1052. i2c2 {
  1053. i2c2_xfer: i2c2-xfer {
  1054. rockchip,pins = <2 RK_PB5 1 &pcfg_pull_none>,
  1055. <2 RK_PB6 1 &pcfg_pull_none>;
  1056. };
  1057. };
  1058. i2c3 {
  1059. i2c3_xfer: i2c3-xfer {
  1060. rockchip,pins = <0 RK_PA5 2 &pcfg_pull_none>,
  1061. <0 RK_PA6 2 &pcfg_pull_none>;
  1062. };
  1063. i2c3_pins: i2c3-pins {
  1064. rockchip,pins =
  1065. <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>,
  1066. <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
  1067. };
  1068. };
  1069. hdmi_i2c {
  1070. hdmii2c_xfer: hdmii2c-xfer {
  1071. rockchip,pins = <0 RK_PA5 1 &pcfg_pull_none>,
  1072. <0 RK_PA6 1 &pcfg_pull_none>;
  1073. };
  1074. };
  1075. pdm-0 {
  1076. pdmm0_clk: pdmm0-clk {
  1077. rockchip,pins = <2 RK_PC2 2 &pcfg_pull_none>;
  1078. };
  1079. pdmm0_fsync: pdmm0-fsync {
  1080. rockchip,pins = <2 RK_PC7 2 &pcfg_pull_none>;
  1081. };
  1082. pdmm0_sdi0: pdmm0-sdi0 {
  1083. rockchip,pins = <2 RK_PC3 2 &pcfg_pull_none>;
  1084. };
  1085. pdmm0_sdi1: pdmm0-sdi1 {
  1086. rockchip,pins = <2 RK_PC4 2 &pcfg_pull_none>;
  1087. };
  1088. pdmm0_sdi2: pdmm0-sdi2 {
  1089. rockchip,pins = <2 RK_PC5 2 &pcfg_pull_none>;
  1090. };
  1091. pdmm0_sdi3: pdmm0-sdi3 {
  1092. rockchip,pins = <2 RK_PC6 2 &pcfg_pull_none>;
  1093. };
  1094. pdmm0_clk_sleep: pdmm0-clk-sleep {
  1095. rockchip,pins =
  1096. <2 RK_PC2 RK_FUNC_GPIO &pcfg_input_high>;
  1097. };
  1098. pdmm0_sdi0_sleep: pdmm0-sdi0-sleep {
  1099. rockchip,pins =
  1100. <2 RK_PC3 RK_FUNC_GPIO &pcfg_input_high>;
  1101. };
  1102. pdmm0_sdi1_sleep: pdmm0-sdi1-sleep {
  1103. rockchip,pins =
  1104. <2 RK_PC4 RK_FUNC_GPIO &pcfg_input_high>;
  1105. };
  1106. pdmm0_sdi2_sleep: pdmm0-sdi2-sleep {
  1107. rockchip,pins =
  1108. <2 RK_PC5 RK_FUNC_GPIO &pcfg_input_high>;
  1109. };
  1110. pdmm0_sdi3_sleep: pdmm0-sdi3-sleep {
  1111. rockchip,pins =
  1112. <2 RK_PC6 RK_FUNC_GPIO &pcfg_input_high>;
  1113. };
  1114. pdmm0_fsync_sleep: pdmm0-fsync-sleep {
  1115. rockchip,pins =
  1116. <2 RK_PC7 RK_FUNC_GPIO &pcfg_input_high>;
  1117. };
  1118. };
  1119. tsadc {
  1120. otp_pin: otp-pin {
  1121. rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
  1122. };
  1123. otp_out: otp-out {
  1124. rockchip,pins = <2 RK_PB5 1 &pcfg_pull_none>;
  1125. };
  1126. };
  1127. uart0 {
  1128. uart0_xfer: uart0-xfer {
  1129. rockchip,pins = <1 RK_PB1 1 &pcfg_pull_none>,
  1130. <1 RK_PB0 1 &pcfg_pull_up>;
  1131. };
  1132. uart0_cts: uart0-cts {
  1133. rockchip,pins = <1 RK_PB3 1 &pcfg_pull_none>;
  1134. };
  1135. uart0_rts: uart0-rts {
  1136. rockchip,pins = <1 RK_PB2 1 &pcfg_pull_none>;
  1137. };
  1138. uart0_rts_pin: uart0-rts-pin {
  1139. rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
  1140. };
  1141. };
  1142. uart1 {
  1143. uart1_xfer: uart1-xfer {
  1144. rockchip,pins = <3 RK_PA4 4 &pcfg_pull_none>,
  1145. <3 RK_PA6 4 &pcfg_pull_up>;
  1146. };
  1147. uart1_cts: uart1-cts {
  1148. rockchip,pins = <3 RK_PA7 4 &pcfg_pull_none>;
  1149. };
  1150. uart1_rts: uart1-rts {
  1151. rockchip,pins = <3 RK_PA5 4 &pcfg_pull_none>;
  1152. };
  1153. uart1_rts_pin: uart1-rts-pin {
  1154. rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
  1155. };
  1156. };
  1157. uart2-0 {
  1158. uart2m0_xfer: uart2m0-xfer {
  1159. rockchip,pins = <1 RK_PA0 2 &pcfg_pull_none>,
  1160. <1 RK_PA1 2 &pcfg_pull_up>;
  1161. };
  1162. };
  1163. uart2-1 {
  1164. uart2m1_xfer: uart2m1-xfer {
  1165. rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>,
  1166. <2 RK_PA1 1 &pcfg_pull_up>;
  1167. };
  1168. };
  1169. spi0-0 {
  1170. spi0m0_clk: spi0m0-clk {
  1171. rockchip,pins = <2 RK_PB0 1 &pcfg_pull_up>;
  1172. };
  1173. spi0m0_cs0: spi0m0-cs0 {
  1174. rockchip,pins = <2 RK_PB3 1 &pcfg_pull_up>;
  1175. };
  1176. spi0m0_tx: spi0m0-tx {
  1177. rockchip,pins = <2 RK_PB1 1 &pcfg_pull_up>;
  1178. };
  1179. spi0m0_rx: spi0m0-rx {
  1180. rockchip,pins = <2 RK_PB2 1 &pcfg_pull_up>;
  1181. };
  1182. spi0m0_cs1: spi0m0-cs1 {
  1183. rockchip,pins = <2 RK_PB4 1 &pcfg_pull_up>;
  1184. };
  1185. };
  1186. spi0-1 {
  1187. spi0m1_clk: spi0m1-clk {
  1188. rockchip,pins = <3 RK_PC7 2 &pcfg_pull_up>;
  1189. };
  1190. spi0m1_cs0: spi0m1-cs0 {
  1191. rockchip,pins = <3 RK_PD2 2 &pcfg_pull_up>;
  1192. };
  1193. spi0m1_tx: spi0m1-tx {
  1194. rockchip,pins = <3 RK_PD1 2 &pcfg_pull_up>;
  1195. };
  1196. spi0m1_rx: spi0m1-rx {
  1197. rockchip,pins = <3 RK_PD0 2 &pcfg_pull_up>;
  1198. };
  1199. spi0m1_cs1: spi0m1-cs1 {
  1200. rockchip,pins = <3 RK_PD3 2 &pcfg_pull_up>;
  1201. };
  1202. };
  1203. spi0-2 {
  1204. spi0m2_clk: spi0m2-clk {
  1205. rockchip,pins = <3 RK_PA0 4 &pcfg_pull_up>;
  1206. };
  1207. spi0m2_cs0: spi0m2-cs0 {
  1208. rockchip,pins = <3 RK_PB0 3 &pcfg_pull_up>;
  1209. };
  1210. spi0m2_tx: spi0m2-tx {
  1211. rockchip,pins = <3 RK_PA1 4 &pcfg_pull_up>;
  1212. };
  1213. spi0m2_rx: spi0m2-rx {
  1214. rockchip,pins = <3 RK_PA2 4 &pcfg_pull_up>;
  1215. };
  1216. };
  1217. i2s1 {
  1218. i2s1_mclk: i2s1-mclk {
  1219. rockchip,pins = <2 RK_PB7 1 &pcfg_pull_none>;
  1220. };
  1221. i2s1_sclk: i2s1-sclk {
  1222. rockchip,pins = <2 RK_PC2 1 &pcfg_pull_none>;
  1223. };
  1224. i2s1_lrckrx: i2s1-lrckrx {
  1225. rockchip,pins = <2 RK_PC0 1 &pcfg_pull_none>;
  1226. };
  1227. i2s1_lrcktx: i2s1-lrcktx {
  1228. rockchip,pins = <2 RK_PC1 1 &pcfg_pull_none>;
  1229. };
  1230. i2s1_sdi: i2s1-sdi {
  1231. rockchip,pins = <2 RK_PC3 1 &pcfg_pull_none>;
  1232. };
  1233. i2s1_sdo: i2s1-sdo {
  1234. rockchip,pins = <2 RK_PC7 1 &pcfg_pull_none>;
  1235. };
  1236. i2s1_sdio1: i2s1-sdio1 {
  1237. rockchip,pins = <2 RK_PC4 1 &pcfg_pull_none>;
  1238. };
  1239. i2s1_sdio2: i2s1-sdio2 {
  1240. rockchip,pins = <2 RK_PC5 1 &pcfg_pull_none>;
  1241. };
  1242. i2s1_sdio3: i2s1-sdio3 {
  1243. rockchip,pins = <2 RK_PC6 1 &pcfg_pull_none>;
  1244. };
  1245. i2s1_sleep: i2s1-sleep {
  1246. rockchip,pins =
  1247. <2 RK_PB7 RK_FUNC_GPIO &pcfg_input_high>,
  1248. <2 RK_PC0 RK_FUNC_GPIO &pcfg_input_high>,
  1249. <2 RK_PC1 RK_FUNC_GPIO &pcfg_input_high>,
  1250. <2 RK_PC2 RK_FUNC_GPIO &pcfg_input_high>,
  1251. <2 RK_PC3 RK_FUNC_GPIO &pcfg_input_high>,
  1252. <2 RK_PC4 RK_FUNC_GPIO &pcfg_input_high>,
  1253. <2 RK_PC5 RK_FUNC_GPIO &pcfg_input_high>,
  1254. <2 RK_PC6 RK_FUNC_GPIO &pcfg_input_high>,
  1255. <2 RK_PC7 RK_FUNC_GPIO &pcfg_input_high>;
  1256. };
  1257. };
  1258. i2s2-0 {
  1259. i2s2m0_mclk: i2s2m0-mclk {
  1260. rockchip,pins = <1 RK_PC5 1 &pcfg_pull_none>;
  1261. };
  1262. i2s2m0_sclk: i2s2m0-sclk {
  1263. rockchip,pins = <1 RK_PC6 1 &pcfg_pull_none>;
  1264. };
  1265. i2s2m0_lrckrx: i2s2m0-lrckrx {
  1266. rockchip,pins = <1 RK_PD2 1 &pcfg_pull_none>;
  1267. };
  1268. i2s2m0_lrcktx: i2s2m0-lrcktx {
  1269. rockchip,pins = <1 RK_PC7 1 &pcfg_pull_none>;
  1270. };
  1271. i2s2m0_sdi: i2s2m0-sdi {
  1272. rockchip,pins = <1 RK_PD0 1 &pcfg_pull_none>;
  1273. };
  1274. i2s2m0_sdo: i2s2m0-sdo {
  1275. rockchip,pins = <1 RK_PD1 1 &pcfg_pull_none>;
  1276. };
  1277. i2s2m0_sleep: i2s2m0-sleep {
  1278. rockchip,pins =
  1279. <1 RK_PC5 RK_FUNC_GPIO &pcfg_input_high>,
  1280. <1 RK_PC6 RK_FUNC_GPIO &pcfg_input_high>,
  1281. <1 RK_PD2 RK_FUNC_GPIO &pcfg_input_high>,
  1282. <1 RK_PC7 RK_FUNC_GPIO &pcfg_input_high>,
  1283. <1 RK_PD0 RK_FUNC_GPIO &pcfg_input_high>,
  1284. <1 RK_PD1 RK_FUNC_GPIO &pcfg_input_high>;
  1285. };
  1286. };
  1287. i2s2-1 {
  1288. i2s2m1_mclk: i2s2m1-mclk {
  1289. rockchip,pins = <1 RK_PC5 1 &pcfg_pull_none>;
  1290. };
  1291. i2s2m1_sclk: i2s2m1-sclk {
  1292. rockchip,pins = <3 RK_PA0 6 &pcfg_pull_none>;
  1293. };
  1294. i2s2m1_lrckrx: i2sm1-lrckrx {
  1295. rockchip,pins = <3 RK_PB0 6 &pcfg_pull_none>;
  1296. };
  1297. i2s2m1_lrcktx: i2s2m1-lrcktx {
  1298. rockchip,pins = <3 RK_PB0 4 &pcfg_pull_none>;
  1299. };
  1300. i2s2m1_sdi: i2s2m1-sdi {
  1301. rockchip,pins = <3 RK_PA2 6 &pcfg_pull_none>;
  1302. };
  1303. i2s2m1_sdo: i2s2m1-sdo {
  1304. rockchip,pins = <3 RK_PA1 6 &pcfg_pull_none>;
  1305. };
  1306. i2s2m1_sleep: i2s2m1-sleep {
  1307. rockchip,pins =
  1308. <1 RK_PC5 RK_FUNC_GPIO &pcfg_input_high>,
  1309. <3 RK_PA0 RK_FUNC_GPIO &pcfg_input_high>,
  1310. <3 RK_PB0 RK_FUNC_GPIO &pcfg_input_high>,
  1311. <3 RK_PA2 RK_FUNC_GPIO &pcfg_input_high>,
  1312. <3 RK_PA1 RK_FUNC_GPIO &pcfg_input_high>;
  1313. };
  1314. };
  1315. spdif-0 {
  1316. spdifm0_tx: spdifm0-tx {
  1317. rockchip,pins = <0 RK_PD3 1 &pcfg_pull_none>;
  1318. };
  1319. };
  1320. spdif-1 {
  1321. spdifm1_tx: spdifm1-tx {
  1322. rockchip,pins = <2 RK_PC1 2 &pcfg_pull_none>;
  1323. };
  1324. };
  1325. spdif-2 {
  1326. spdifm2_tx: spdifm2-tx {
  1327. rockchip,pins = <0 RK_PA2 2 &pcfg_pull_none>;
  1328. };
  1329. };
  1330. sdmmc0-0 {
  1331. sdmmc0m0_pwren: sdmmc0m0-pwren {
  1332. rockchip,pins = <2 RK_PA7 1 &pcfg_pull_up_4ma>;
  1333. };
  1334. sdmmc0m0_pin: sdmmc0m0-pin {
  1335. rockchip,pins = <2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
  1336. };
  1337. };
  1338. sdmmc0-1 {
  1339. sdmmc0m1_pwren: sdmmc0m1-pwren {
  1340. rockchip,pins = <0 RK_PD6 3 &pcfg_pull_up_4ma>;
  1341. };
  1342. sdmmc0m1_pin: sdmmc0m1-pin {
  1343. rockchip,pins = <0 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
  1344. };
  1345. };
  1346. sdmmc0 {
  1347. sdmmc0_clk: sdmmc0-clk {
  1348. rockchip,pins = <1 RK_PA6 1 &pcfg_pull_none_8ma>;
  1349. };
  1350. sdmmc0_cmd: sdmmc0-cmd {
  1351. rockchip,pins = <1 RK_PA4 1 &pcfg_pull_up_8ma>;
  1352. };
  1353. sdmmc0_dectn: sdmmc0-dectn {
  1354. rockchip,pins = <1 RK_PA5 1 &pcfg_pull_up_4ma>;
  1355. };
  1356. sdmmc0_wrprt: sdmmc0-wrprt {
  1357. rockchip,pins = <1 RK_PA7 1 &pcfg_pull_up_4ma>;
  1358. };
  1359. sdmmc0_bus1: sdmmc0-bus1 {
  1360. rockchip,pins = <1 RK_PA0 1 &pcfg_pull_up_8ma>;
  1361. };
  1362. sdmmc0_bus4: sdmmc0-bus4 {
  1363. rockchip,pins = <1 RK_PA0 1 &pcfg_pull_up_8ma>,
  1364. <1 RK_PA1 1 &pcfg_pull_up_8ma>,
  1365. <1 RK_PA2 1 &pcfg_pull_up_8ma>,
  1366. <1 RK_PA3 1 &pcfg_pull_up_8ma>;
  1367. };
  1368. sdmmc0_pins: sdmmc0-pins {
  1369. rockchip,pins =
  1370. <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1371. <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1372. <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1373. <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1374. <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1375. <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1376. <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1377. <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
  1378. };
  1379. };
  1380. sdmmc0ext {
  1381. sdmmc0ext_clk: sdmmc0ext-clk {
  1382. rockchip,pins = <3 RK_PA2 3 &pcfg_pull_none_4ma>;
  1383. };
  1384. sdmmc0ext_cmd: sdmmc0ext-cmd {
  1385. rockchip,pins = <3 RK_PA0 3 &pcfg_pull_up_4ma>;
  1386. };
  1387. sdmmc0ext_wrprt: sdmmc0ext-wrprt {
  1388. rockchip,pins = <3 RK_PA3 3 &pcfg_pull_up_4ma>;
  1389. };
  1390. sdmmc0ext_dectn: sdmmc0ext-dectn {
  1391. rockchip,pins = <3 RK_PA1 3 &pcfg_pull_up_4ma>;
  1392. };
  1393. sdmmc0ext_bus1: sdmmc0ext-bus1 {
  1394. rockchip,pins = <3 RK_PA4 3 &pcfg_pull_up_4ma>;
  1395. };
  1396. sdmmc0ext_bus4: sdmmc0ext-bus4 {
  1397. rockchip,pins =
  1398. <3 RK_PA4 3 &pcfg_pull_up_4ma>,
  1399. <3 RK_PA5 3 &pcfg_pull_up_4ma>,
  1400. <3 RK_PA6 3 &pcfg_pull_up_4ma>,
  1401. <3 RK_PA7 3 &pcfg_pull_up_4ma>;
  1402. };
  1403. sdmmc0ext_pins: sdmmc0ext-pins {
  1404. rockchip,pins =
  1405. <3 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1406. <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1407. <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1408. <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1409. <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1410. <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1411. <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1412. <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
  1413. };
  1414. };
  1415. sdmmc1 {
  1416. sdmmc1_clk: sdmmc1-clk {
  1417. rockchip,pins = <1 RK_PB4 1 &pcfg_pull_none_8ma>;
  1418. };
  1419. sdmmc1_cmd: sdmmc1-cmd {
  1420. rockchip,pins = <1 RK_PB5 1 &pcfg_pull_up_8ma>;
  1421. };
  1422. sdmmc1_pwren: sdmmc1-pwren {
  1423. rockchip,pins = <1 RK_PC2 1 &pcfg_pull_up_8ma>;
  1424. };
  1425. sdmmc1_wrprt: sdmmc1-wrprt {
  1426. rockchip,pins = <1 RK_PC4 1 &pcfg_pull_up_8ma>;
  1427. };
  1428. sdmmc1_dectn: sdmmc1-dectn {
  1429. rockchip,pins = <1 RK_PC3 1 &pcfg_pull_up_8ma>;
  1430. };
  1431. sdmmc1_bus1: sdmmc1-bus1 {
  1432. rockchip,pins = <1 RK_PB6 1 &pcfg_pull_up_8ma>;
  1433. };
  1434. sdmmc1_bus4: sdmmc1-bus4 {
  1435. rockchip,pins = <1 RK_PB6 1 &pcfg_pull_up_8ma>,
  1436. <1 RK_PB7 1 &pcfg_pull_up_8ma>,
  1437. <1 RK_PC0 1 &pcfg_pull_up_8ma>,
  1438. <1 RK_PC1 1 &pcfg_pull_up_8ma>;
  1439. };
  1440. sdmmc1_pins: sdmmc1-pins {
  1441. rockchip,pins =
  1442. <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1443. <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1444. <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1445. <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1446. <1 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1447. <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1448. <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1449. <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
  1450. <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
  1451. };
  1452. };
  1453. emmc {
  1454. emmc_clk: emmc-clk {
  1455. rockchip,pins = <3 RK_PC5 2 &pcfg_pull_none_12ma>;
  1456. };
  1457. emmc_cmd: emmc-cmd {
  1458. rockchip,pins = <3 RK_PC3 2 &pcfg_pull_up_12ma>;
  1459. };
  1460. emmc_pwren: emmc-pwren {
  1461. rockchip,pins = <3 RK_PC6 2 &pcfg_pull_none>;
  1462. };
  1463. emmc_rstnout: emmc-rstnout {
  1464. rockchip,pins = <3 RK_PC4 2 &pcfg_pull_none>;
  1465. };
  1466. emmc_bus1: emmc-bus1 {
  1467. rockchip,pins = <0 RK_PA7 2 &pcfg_pull_up_12ma>;
  1468. };
  1469. emmc_bus4: emmc-bus4 {
  1470. rockchip,pins =
  1471. <0 RK_PA7 2 &pcfg_pull_up_12ma>,
  1472. <2 RK_PD4 2 &pcfg_pull_up_12ma>,
  1473. <2 RK_PD5 2 &pcfg_pull_up_12ma>,
  1474. <2 RK_PD6 2 &pcfg_pull_up_12ma>;
  1475. };
  1476. emmc_bus8: emmc-bus8 {
  1477. rockchip,pins =
  1478. <0 RK_PA7 2 &pcfg_pull_up_12ma>,
  1479. <2 RK_PD4 2 &pcfg_pull_up_12ma>,
  1480. <2 RK_PD5 2 &pcfg_pull_up_12ma>,
  1481. <2 RK_PD6 2 &pcfg_pull_up_12ma>,
  1482. <2 RK_PD7 2 &pcfg_pull_up_12ma>,
  1483. <3 RK_PC0 2 &pcfg_pull_up_12ma>,
  1484. <3 RK_PC1 2 &pcfg_pull_up_12ma>,
  1485. <3 RK_PC2 2 &pcfg_pull_up_12ma>;
  1486. };
  1487. };
  1488. pwm0 {
  1489. pwm0_pin: pwm0-pin {
  1490. rockchip,pins = <2 RK_PA4 1 &pcfg_pull_none>;
  1491. };
  1492. };
  1493. pwm1 {
  1494. pwm1_pin: pwm1-pin {
  1495. rockchip,pins = <2 RK_PA5 1 &pcfg_pull_none>;
  1496. };
  1497. };
  1498. pwm2 {
  1499. pwm2_pin: pwm2-pin {
  1500. rockchip,pins = <2 RK_PA6 1 &pcfg_pull_none>;
  1501. };
  1502. };
  1503. pwmir {
  1504. pwmir_pin: pwmir-pin {
  1505. rockchip,pins = <2 RK_PA2 1 &pcfg_pull_none>;
  1506. };
  1507. };
  1508. gmac-1 {
  1509. rgmiim1_pins: rgmiim1-pins {
  1510. rockchip,pins =
  1511. /* mac_txclk */
  1512. <1 RK_PB4 2 &pcfg_pull_none_8ma>,
  1513. /* mac_rxclk */
  1514. <1 RK_PB5 2 &pcfg_pull_none_4ma>,
  1515. /* mac_mdio */
  1516. <1 RK_PC3 2 &pcfg_pull_none_4ma>,
  1517. /* mac_txen */
  1518. <1 RK_PD1 2 &pcfg_pull_none_8ma>,
  1519. /* mac_clk */
  1520. <1 RK_PC5 2 &pcfg_pull_none_4ma>,
  1521. /* mac_rxdv */
  1522. <1 RK_PC6 2 &pcfg_pull_none_4ma>,
  1523. /* mac_mdc */
  1524. <1 RK_PC7 2 &pcfg_pull_none_4ma>,
  1525. /* mac_rxd1 */
  1526. <1 RK_PB2 2 &pcfg_pull_none_4ma>,
  1527. /* mac_rxd0 */
  1528. <1 RK_PB3 2 &pcfg_pull_none_4ma>,
  1529. /* mac_txd1 */
  1530. <1 RK_PB0 2 &pcfg_pull_none_8ma>,
  1531. /* mac_txd0 */
  1532. <1 RK_PB1 2 &pcfg_pull_none_8ma>,
  1533. /* mac_rxd3 */
  1534. <1 RK_PB6 2 &pcfg_pull_none_4ma>,
  1535. /* mac_rxd2 */
  1536. <1 RK_PB7 2 &pcfg_pull_none_4ma>,
  1537. /* mac_txd3 */
  1538. <1 RK_PC0 2 &pcfg_pull_none_8ma>,
  1539. /* mac_txd2 */
  1540. <1 RK_PC1 2 &pcfg_pull_none_8ma>,
  1541. /* mac_txclk */
  1542. <0 RK_PB0 1 &pcfg_pull_none_8ma>,
  1543. /* mac_txen */
  1544. <0 RK_PB4 1 &pcfg_pull_none_8ma>,
  1545. /* mac_clk */
  1546. <0 RK_PD0 1 &pcfg_pull_none_4ma>,
  1547. /* mac_txd1 */
  1548. <0 RK_PC0 1 &pcfg_pull_none_8ma>,
  1549. /* mac_txd0 */
  1550. <0 RK_PC1 1 &pcfg_pull_none_8ma>,
  1551. /* mac_txd3 */
  1552. <0 RK_PC7 1 &pcfg_pull_none_8ma>,
  1553. /* mac_txd2 */
  1554. <0 RK_PC6 1 &pcfg_pull_none_8ma>;
  1555. };
  1556. rmiim1_pins: rmiim1-pins {
  1557. rockchip,pins =
  1558. /* mac_mdio */
  1559. <1 RK_PC3 2 &pcfg_pull_none_2ma>,
  1560. /* mac_txen */
  1561. <1 RK_PD1 2 &pcfg_pull_none_12ma>,
  1562. /* mac_clk */
  1563. <1 RK_PC5 2 &pcfg_pull_none_2ma>,
  1564. /* mac_rxer */
  1565. <1 RK_PD0 2 &pcfg_pull_none_2ma>,
  1566. /* mac_rxdv */
  1567. <1 RK_PC6 2 &pcfg_pull_none_2ma>,
  1568. /* mac_mdc */
  1569. <1 RK_PC7 2 &pcfg_pull_none_2ma>,
  1570. /* mac_rxd1 */
  1571. <1 RK_PB2 2 &pcfg_pull_none_2ma>,
  1572. /* mac_rxd0 */
  1573. <1 RK_PB3 2 &pcfg_pull_none_2ma>,
  1574. /* mac_txd1 */
  1575. <1 RK_PB0 2 &pcfg_pull_none_12ma>,
  1576. /* mac_txd0 */
  1577. <1 RK_PB1 2 &pcfg_pull_none_12ma>,
  1578. /* mac_mdio */
  1579. <0 RK_PB3 1 &pcfg_pull_none>,
  1580. /* mac_txen */
  1581. <0 RK_PB4 1 &pcfg_pull_none>,
  1582. /* mac_clk */
  1583. <0 RK_PD0 1 &pcfg_pull_none>,
  1584. /* mac_mdc */
  1585. <0 RK_PC3 1 &pcfg_pull_none>,
  1586. /* mac_txd1 */
  1587. <0 RK_PC0 1 &pcfg_pull_none>,
  1588. /* mac_txd0 */
  1589. <0 RK_PC1 1 &pcfg_pull_none>;
  1590. };
  1591. };
  1592. gmac2phy {
  1593. fephyled_speed10: fephyled-speed10 {
  1594. rockchip,pins = <0 RK_PD6 1 &pcfg_pull_none>;
  1595. };
  1596. fephyled_duplex: fephyled-duplex {
  1597. rockchip,pins = <0 RK_PD6 2 &pcfg_pull_none>;
  1598. };
  1599. fephyled_rxm1: fephyled-rxm1 {
  1600. rockchip,pins = <2 RK_PD1 2 &pcfg_pull_none>;
  1601. };
  1602. fephyled_txm1: fephyled-txm1 {
  1603. rockchip,pins = <2 RK_PD1 3 &pcfg_pull_none>;
  1604. };
  1605. fephyled_linkm1: fephyled-linkm1 {
  1606. rockchip,pins = <2 RK_PD0 2 &pcfg_pull_none>;
  1607. };
  1608. };
  1609. tsadc_pin {
  1610. tsadc_int: tsadc-int {
  1611. rockchip,pins = <2 RK_PB5 2 &pcfg_pull_none>;
  1612. };
  1613. tsadc_pin: tsadc-pin {
  1614. rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
  1615. };
  1616. };
  1617. hdmi_pin {
  1618. hdmi_cec: hdmi-cec {
  1619. rockchip,pins = <0 RK_PA3 1 &pcfg_pull_none>;
  1620. };
  1621. hdmi_hpd: hdmi-hpd {
  1622. rockchip,pins = <0 RK_PA4 1 &pcfg_pull_down>;
  1623. };
  1624. };
  1625. cif-0 {
  1626. dvp_d2d9_m0:dvp-d2d9-m0 {
  1627. rockchip,pins =
  1628. /* cif_d0 */
  1629. <3 RK_PA4 2 &pcfg_pull_none>,
  1630. /* cif_d1 */
  1631. <3 RK_PA5 2 &pcfg_pull_none>,
  1632. /* cif_d2 */
  1633. <3 RK_PA6 2 &pcfg_pull_none>,
  1634. /* cif_d3 */
  1635. <3 RK_PA7 2 &pcfg_pull_none>,
  1636. /* cif_d4 */
  1637. <3 RK_PB0 2 &pcfg_pull_none>,
  1638. /* cif_d5m0 */
  1639. <3 RK_PB1 2 &pcfg_pull_none>,
  1640. /* cif_d6m0 */
  1641. <3 RK_PB2 2 &pcfg_pull_none>,
  1642. /* cif_d7m0 */
  1643. <3 RK_PB3 2 &pcfg_pull_none>,
  1644. /* cif_href */
  1645. <3 RK_PA1 2 &pcfg_pull_none>,
  1646. /* cif_vsync */
  1647. <3 RK_PA0 2 &pcfg_pull_none>,
  1648. /* cif_clkoutm0 */
  1649. <3 RK_PA3 2 &pcfg_pull_none>,
  1650. /* cif_clkin */
  1651. <3 RK_PA2 2 &pcfg_pull_none>;
  1652. };
  1653. };
  1654. cif-1 {
  1655. dvp_d2d9_m1:dvp-d2d9-m1 {
  1656. rockchip,pins =
  1657. /* cif_d0 */
  1658. <3 RK_PA4 2 &pcfg_pull_none>,
  1659. /* cif_d1 */
  1660. <3 RK_PA5 2 &pcfg_pull_none>,
  1661. /* cif_d2 */
  1662. <3 RK_PA6 2 &pcfg_pull_none>,
  1663. /* cif_d3 */
  1664. <3 RK_PA7 2 &pcfg_pull_none>,
  1665. /* cif_d4 */
  1666. <3 RK_PB0 2 &pcfg_pull_none>,
  1667. /* cif_d5m1 */
  1668. <2 RK_PC0 4 &pcfg_pull_none>,
  1669. /* cif_d6m1 */
  1670. <2 RK_PC1 4 &pcfg_pull_none>,
  1671. /* cif_d7m1 */
  1672. <2 RK_PC2 4 &pcfg_pull_none>,
  1673. /* cif_href */
  1674. <3 RK_PA1 2 &pcfg_pull_none>,
  1675. /* cif_vsync */
  1676. <3 RK_PA0 2 &pcfg_pull_none>,
  1677. /* cif_clkoutm1 */
  1678. <2 RK_PB7 4 &pcfg_pull_none>,
  1679. /* cif_clkin */
  1680. <3 RK_PA2 2 &pcfg_pull_none>;
  1681. };
  1682. };
  1683. };
  1684. };