rk322x.dtsi 32 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. #include <dt-bindings/gpio/gpio.h>
  3. #include <dt-bindings/interrupt-controller/irq.h>
  4. #include <dt-bindings/interrupt-controller/arm-gic.h>
  5. #include <dt-bindings/pinctrl/rockchip.h>
  6. #include <dt-bindings/clock/rk3228-cru.h>
  7. #include <dt-bindings/thermal/thermal.h>
  8. #include <dt-bindings/power/rk3228-power.h>
  9. / {
  10. #address-cells = <1>;
  11. #size-cells = <1>;
  12. interrupt-parent = <&gic>;
  13. aliases {
  14. serial0 = &uart0;
  15. serial1 = &uart1;
  16. serial2 = &uart2;
  17. spi0 = &spi0;
  18. };
  19. cpus {
  20. #address-cells = <1>;
  21. #size-cells = <0>;
  22. cpu0: cpu@f00 {
  23. device_type = "cpu";
  24. compatible = "arm,cortex-a7";
  25. reg = <0xf00>;
  26. resets = <&cru SRST_CORE0>;
  27. operating-points-v2 = <&cpu0_opp_table>;
  28. #cooling-cells = <2>; /* min followed by max */
  29. clock-latency = <40000>;
  30. clocks = <&cru ARMCLK>;
  31. enable-method = "psci";
  32. };
  33. cpu1: cpu@f01 {
  34. device_type = "cpu";
  35. compatible = "arm,cortex-a7";
  36. reg = <0xf01>;
  37. resets = <&cru SRST_CORE1>;
  38. operating-points-v2 = <&cpu0_opp_table>;
  39. #cooling-cells = <2>; /* min followed by max */
  40. enable-method = "psci";
  41. };
  42. cpu2: cpu@f02 {
  43. device_type = "cpu";
  44. compatible = "arm,cortex-a7";
  45. reg = <0xf02>;
  46. resets = <&cru SRST_CORE2>;
  47. operating-points-v2 = <&cpu0_opp_table>;
  48. #cooling-cells = <2>; /* min followed by max */
  49. enable-method = "psci";
  50. };
  51. cpu3: cpu@f03 {
  52. device_type = "cpu";
  53. compatible = "arm,cortex-a7";
  54. reg = <0xf03>;
  55. resets = <&cru SRST_CORE3>;
  56. operating-points-v2 = <&cpu0_opp_table>;
  57. #cooling-cells = <2>; /* min followed by max */
  58. enable-method = "psci";
  59. };
  60. };
  61. cpu0_opp_table: opp-table-0 {
  62. compatible = "operating-points-v2";
  63. opp-shared;
  64. opp-408000000 {
  65. opp-hz = /bits/ 64 <408000000>;
  66. opp-microvolt = <950000>;
  67. clock-latency-ns = <40000>;
  68. opp-suspend;
  69. };
  70. opp-600000000 {
  71. opp-hz = /bits/ 64 <600000000>;
  72. opp-microvolt = <975000>;
  73. };
  74. opp-816000000 {
  75. opp-hz = /bits/ 64 <816000000>;
  76. opp-microvolt = <1000000>;
  77. };
  78. opp-1008000000 {
  79. opp-hz = /bits/ 64 <1008000000>;
  80. opp-microvolt = <1175000>;
  81. };
  82. opp-1200000000 {
  83. opp-hz = /bits/ 64 <1200000000>;
  84. opp-microvolt = <1275000>;
  85. };
  86. };
  87. arm-pmu {
  88. compatible = "arm,cortex-a7-pmu";
  89. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
  90. <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
  91. <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
  92. <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  93. interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
  94. };
  95. psci {
  96. compatible = "arm,psci-1.0", "arm,psci-0.2";
  97. method = "smc";
  98. };
  99. timer {
  100. compatible = "arm,armv7-timer";
  101. arm,cpu-registers-not-fw-configured;
  102. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  103. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  104. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  105. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  106. clock-frequency = <24000000>;
  107. };
  108. xin24m: oscillator {
  109. compatible = "fixed-clock";
  110. clock-frequency = <24000000>;
  111. clock-output-names = "xin24m";
  112. #clock-cells = <0>;
  113. };
  114. display_subsystem: display-subsystem {
  115. compatible = "rockchip,display-subsystem";
  116. ports = <&vop_out>;
  117. };
  118. i2s1: i2s1@100b0000 {
  119. compatible = "rockchip,rk3228-i2s", "rockchip,rk3066-i2s";
  120. reg = <0x100b0000 0x4000>;
  121. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  122. clock-names = "i2s_clk", "i2s_hclk";
  123. clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S1_8CH>;
  124. dmas = <&pdma 14>, <&pdma 15>;
  125. dma-names = "tx", "rx";
  126. pinctrl-names = "default";
  127. pinctrl-0 = <&i2s1_bus>;
  128. status = "disabled";
  129. };
  130. i2s0: i2s0@100c0000 {
  131. compatible = "rockchip,rk3228-i2s", "rockchip,rk3066-i2s";
  132. reg = <0x100c0000 0x4000>;
  133. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  134. clock-names = "i2s_clk", "i2s_hclk";
  135. clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0_8CH>;
  136. dmas = <&pdma 11>, <&pdma 12>;
  137. dma-names = "tx", "rx";
  138. status = "disabled";
  139. };
  140. spdif: spdif@100d0000 {
  141. compatible = "rockchip,rk3228-spdif";
  142. reg = <0x100d0000 0x1000>;
  143. interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
  144. clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF_8CH>;
  145. clock-names = "mclk", "hclk";
  146. dmas = <&pdma 10>;
  147. dma-names = "tx";
  148. pinctrl-names = "default";
  149. pinctrl-0 = <&spdif_tx>;
  150. status = "disabled";
  151. };
  152. i2s2: i2s2@100e0000 {
  153. compatible = "rockchip,rk3228-i2s", "rockchip,rk3066-i2s";
  154. reg = <0x100e0000 0x4000>;
  155. interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
  156. clock-names = "i2s_clk", "i2s_hclk";
  157. clocks = <&cru SCLK_I2S2>, <&cru HCLK_I2S2_2CH>;
  158. dmas = <&pdma 0>, <&pdma 1>;
  159. dma-names = "tx", "rx";
  160. status = "disabled";
  161. };
  162. grf: syscon@11000000 {
  163. compatible = "rockchip,rk3228-grf", "syscon", "simple-mfd";
  164. reg = <0x11000000 0x1000>;
  165. #address-cells = <1>;
  166. #size-cells = <1>;
  167. io_domains: io-domains {
  168. compatible = "rockchip,rk3228-io-voltage-domain";
  169. status = "disabled";
  170. };
  171. power: power-controller {
  172. compatible = "rockchip,rk3228-power-controller";
  173. #power-domain-cells = <1>;
  174. #address-cells = <1>;
  175. #size-cells = <0>;
  176. power-domain@RK3228_PD_VIO {
  177. reg = <RK3228_PD_VIO>;
  178. clocks = <&cru ACLK_HDCP>,
  179. <&cru SCLK_HDCP>,
  180. <&cru ACLK_IEP>,
  181. <&cru HCLK_IEP>,
  182. <&cru ACLK_RGA>,
  183. <&cru HCLK_RGA>,
  184. <&cru SCLK_RGA>;
  185. pm_qos = <&qos_hdcp>,
  186. <&qos_iep>,
  187. <&qos_rga_r>,
  188. <&qos_rga_w>;
  189. #power-domain-cells = <0>;
  190. };
  191. power-domain@RK3228_PD_VOP {
  192. reg = <RK3228_PD_VOP>;
  193. clocks =<&cru ACLK_VOP>,
  194. <&cru DCLK_VOP>,
  195. <&cru HCLK_VOP>;
  196. pm_qos = <&qos_vop>;
  197. #power-domain-cells = <0>;
  198. };
  199. power-domain@RK3228_PD_VPU {
  200. reg = <RK3228_PD_VPU>;
  201. clocks = <&cru ACLK_VPU>,
  202. <&cru HCLK_VPU>;
  203. pm_qos = <&qos_vpu>;
  204. #power-domain-cells = <0>;
  205. };
  206. power-domain@RK3228_PD_RKVDEC {
  207. reg = <RK3228_PD_RKVDEC>;
  208. clocks = <&cru ACLK_RKVDEC>,
  209. <&cru HCLK_RKVDEC>,
  210. <&cru SCLK_VDEC_CABAC>,
  211. <&cru SCLK_VDEC_CORE>;
  212. pm_qos = <&qos_rkvdec_r>,
  213. <&qos_rkvdec_w>;
  214. #power-domain-cells = <0>;
  215. };
  216. power-domain@RK3228_PD_GPU {
  217. reg = <RK3228_PD_GPU>;
  218. clocks = <&cru ACLK_GPU>;
  219. pm_qos = <&qos_gpu>;
  220. #power-domain-cells = <0>;
  221. };
  222. };
  223. u2phy0: usb2phy@760 {
  224. compatible = "rockchip,rk3228-usb2phy";
  225. reg = <0x0760 0x0c>;
  226. clocks = <&cru SCLK_OTGPHY0>;
  227. clock-names = "phyclk";
  228. clock-output-names = "usb480m_phy0";
  229. #clock-cells = <0>;
  230. status = "disabled";
  231. u2phy0_otg: otg-port {
  232. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
  233. <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
  234. <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
  235. interrupt-names = "otg-bvalid", "otg-id",
  236. "linestate";
  237. #phy-cells = <0>;
  238. status = "disabled";
  239. };
  240. u2phy0_host: host-port {
  241. interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
  242. interrupt-names = "linestate";
  243. #phy-cells = <0>;
  244. status = "disabled";
  245. };
  246. };
  247. u2phy1: usb2phy@800 {
  248. compatible = "rockchip,rk3228-usb2phy";
  249. reg = <0x0800 0x0c>;
  250. clocks = <&cru SCLK_OTGPHY1>;
  251. clock-names = "phyclk";
  252. clock-output-names = "usb480m_phy1";
  253. #clock-cells = <0>;
  254. status = "disabled";
  255. u2phy1_otg: otg-port {
  256. interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
  257. interrupt-names = "linestate";
  258. #phy-cells = <0>;
  259. status = "disabled";
  260. };
  261. u2phy1_host: host-port {
  262. interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
  263. interrupt-names = "linestate";
  264. #phy-cells = <0>;
  265. status = "disabled";
  266. };
  267. };
  268. };
  269. uart0: serial@11010000 {
  270. compatible = "snps,dw-apb-uart";
  271. reg = <0x11010000 0x100>;
  272. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  273. clock-frequency = <24000000>;
  274. clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
  275. clock-names = "baudclk", "apb_pclk";
  276. pinctrl-names = "default";
  277. pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
  278. reg-shift = <2>;
  279. reg-io-width = <4>;
  280. status = "disabled";
  281. };
  282. uart1: serial@11020000 {
  283. compatible = "snps,dw-apb-uart";
  284. reg = <0x11020000 0x100>;
  285. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  286. clock-frequency = <24000000>;
  287. clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
  288. clock-names = "baudclk", "apb_pclk";
  289. pinctrl-names = "default";
  290. pinctrl-0 = <&uart1_xfer>;
  291. reg-shift = <2>;
  292. reg-io-width = <4>;
  293. status = "disabled";
  294. };
  295. uart2: serial@11030000 {
  296. compatible = "snps,dw-apb-uart";
  297. reg = <0x11030000 0x100>;
  298. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  299. clock-frequency = <24000000>;
  300. clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
  301. clock-names = "baudclk", "apb_pclk";
  302. pinctrl-names = "default";
  303. pinctrl-0 = <&uart2_xfer>;
  304. reg-shift = <2>;
  305. reg-io-width = <4>;
  306. status = "disabled";
  307. };
  308. efuse: efuse@11040000 {
  309. compatible = "rockchip,rk3228-efuse";
  310. reg = <0x11040000 0x20>;
  311. clocks = <&cru PCLK_EFUSE_256>;
  312. clock-names = "pclk_efuse";
  313. #address-cells = <1>;
  314. #size-cells = <1>;
  315. /* Data cells */
  316. efuse_id: id@7 {
  317. reg = <0x7 0x10>;
  318. };
  319. cpu_leakage: cpu_leakage@17 {
  320. reg = <0x17 0x1>;
  321. };
  322. };
  323. i2c0: i2c@11050000 {
  324. compatible = "rockchip,rk3228-i2c";
  325. reg = <0x11050000 0x1000>;
  326. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  327. #address-cells = <1>;
  328. #size-cells = <0>;
  329. clock-names = "i2c";
  330. clocks = <&cru PCLK_I2C0>;
  331. pinctrl-names = "default";
  332. pinctrl-0 = <&i2c0_xfer>;
  333. status = "disabled";
  334. };
  335. i2c1: i2c@11060000 {
  336. compatible = "rockchip,rk3228-i2c";
  337. reg = <0x11060000 0x1000>;
  338. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  339. #address-cells = <1>;
  340. #size-cells = <0>;
  341. clock-names = "i2c";
  342. clocks = <&cru PCLK_I2C1>;
  343. pinctrl-names = "default";
  344. pinctrl-0 = <&i2c1_xfer>;
  345. status = "disabled";
  346. };
  347. i2c2: i2c@11070000 {
  348. compatible = "rockchip,rk3228-i2c";
  349. reg = <0x11070000 0x1000>;
  350. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  351. #address-cells = <1>;
  352. #size-cells = <0>;
  353. clock-names = "i2c";
  354. clocks = <&cru PCLK_I2C2>;
  355. pinctrl-names = "default";
  356. pinctrl-0 = <&i2c2_xfer>;
  357. status = "disabled";
  358. };
  359. i2c3: i2c@11080000 {
  360. compatible = "rockchip,rk3228-i2c";
  361. reg = <0x11080000 0x1000>;
  362. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  363. #address-cells = <1>;
  364. #size-cells = <0>;
  365. clock-names = "i2c";
  366. clocks = <&cru PCLK_I2C3>;
  367. pinctrl-names = "default";
  368. pinctrl-0 = <&i2c3_xfer>;
  369. status = "disabled";
  370. };
  371. spi0: spi@11090000 {
  372. compatible = "rockchip,rk3228-spi";
  373. reg = <0x11090000 0x1000>;
  374. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
  375. #address-cells = <1>;
  376. #size-cells = <0>;
  377. clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
  378. clock-names = "spiclk", "apb_pclk";
  379. pinctrl-names = "default";
  380. pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0 &spi0_cs1>;
  381. status = "disabled";
  382. };
  383. wdt: watchdog@110a0000 {
  384. compatible = "rockchip,rk3228-wdt", "snps,dw-wdt";
  385. reg = <0x110a0000 0x100>;
  386. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
  387. clocks = <&cru PCLK_CPU>;
  388. status = "disabled";
  389. };
  390. pwm0: pwm@110b0000 {
  391. compatible = "rockchip,rk3288-pwm";
  392. reg = <0x110b0000 0x10>;
  393. #pwm-cells = <3>;
  394. clocks = <&cru PCLK_PWM>;
  395. pinctrl-names = "default";
  396. pinctrl-0 = <&pwm0_pin>;
  397. status = "disabled";
  398. };
  399. pwm1: pwm@110b0010 {
  400. compatible = "rockchip,rk3288-pwm";
  401. reg = <0x110b0010 0x10>;
  402. #pwm-cells = <3>;
  403. clocks = <&cru PCLK_PWM>;
  404. pinctrl-names = "default";
  405. pinctrl-0 = <&pwm1_pin>;
  406. status = "disabled";
  407. };
  408. pwm2: pwm@110b0020 {
  409. compatible = "rockchip,rk3288-pwm";
  410. reg = <0x110b0020 0x10>;
  411. #pwm-cells = <3>;
  412. clocks = <&cru PCLK_PWM>;
  413. pinctrl-names = "default";
  414. pinctrl-0 = <&pwm2_pin>;
  415. status = "disabled";
  416. };
  417. pwm3: pwm@110b0030 {
  418. compatible = "rockchip,rk3288-pwm";
  419. reg = <0x110b0030 0x10>;
  420. #pwm-cells = <2>;
  421. clocks = <&cru PCLK_PWM>;
  422. pinctrl-names = "default";
  423. pinctrl-0 = <&pwm3_pin>;
  424. status = "disabled";
  425. };
  426. timer: timer@110c0000 {
  427. compatible = "rockchip,rk3228-timer", "rockchip,rk3288-timer";
  428. reg = <0x110c0000 0x20>;
  429. interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
  430. clocks = <&cru PCLK_TIMER>, <&xin24m>;
  431. clock-names = "pclk", "timer";
  432. };
  433. cru: clock-controller@110e0000 {
  434. compatible = "rockchip,rk3228-cru";
  435. reg = <0x110e0000 0x1000>;
  436. clocks = <&xin24m>;
  437. clock-names = "xin24m";
  438. rockchip,grf = <&grf>;
  439. #clock-cells = <1>;
  440. #reset-cells = <1>;
  441. assigned-clocks =
  442. <&cru PLL_GPLL>, <&cru ARMCLK>,
  443. <&cru PLL_CPLL>, <&cru ACLK_PERI>,
  444. <&cru HCLK_PERI>, <&cru PCLK_PERI>,
  445. <&cru ACLK_CPU>, <&cru HCLK_CPU>,
  446. <&cru PCLK_CPU>;
  447. assigned-clock-rates =
  448. <594000000>, <816000000>,
  449. <500000000>, <150000000>,
  450. <150000000>, <75000000>,
  451. <150000000>, <150000000>,
  452. <75000000>;
  453. };
  454. pdma: dma-controller@110f0000 {
  455. compatible = "arm,pl330", "arm,primecell";
  456. reg = <0x110f0000 0x4000>;
  457. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  458. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
  459. #dma-cells = <1>;
  460. arm,pl330-periph-burst;
  461. clocks = <&cru ACLK_DMAC>;
  462. clock-names = "apb_pclk";
  463. };
  464. thermal-zones {
  465. cpu_thermal: cpu-thermal {
  466. polling-delay-passive = <100>; /* milliseconds */
  467. polling-delay = <5000>; /* milliseconds */
  468. thermal-sensors = <&tsadc 0>;
  469. trips {
  470. cpu_alert0: cpu_alert0 {
  471. temperature = <70000>; /* millicelsius */
  472. hysteresis = <2000>; /* millicelsius */
  473. type = "passive";
  474. };
  475. cpu_alert1: cpu_alert1 {
  476. temperature = <75000>; /* millicelsius */
  477. hysteresis = <2000>; /* millicelsius */
  478. type = "passive";
  479. };
  480. cpu_crit: cpu_crit {
  481. temperature = <90000>; /* millicelsius */
  482. hysteresis = <2000>; /* millicelsius */
  483. type = "critical";
  484. };
  485. };
  486. cooling-maps {
  487. map0 {
  488. trip = <&cpu_alert0>;
  489. cooling-device =
  490. <&cpu0 THERMAL_NO_LIMIT 6>,
  491. <&cpu1 THERMAL_NO_LIMIT 6>,
  492. <&cpu2 THERMAL_NO_LIMIT 6>,
  493. <&cpu3 THERMAL_NO_LIMIT 6>;
  494. };
  495. map1 {
  496. trip = <&cpu_alert1>;
  497. cooling-device =
  498. <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  499. <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  500. <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  501. <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  502. };
  503. };
  504. };
  505. };
  506. tsadc: tsadc@11150000 {
  507. compatible = "rockchip,rk3228-tsadc";
  508. reg = <0x11150000 0x100>;
  509. interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
  510. clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
  511. clock-names = "tsadc", "apb_pclk";
  512. assigned-clocks = <&cru SCLK_TSADC>;
  513. assigned-clock-rates = <32768>;
  514. resets = <&cru SRST_TSADC>;
  515. reset-names = "tsadc-apb";
  516. pinctrl-names = "init", "default", "sleep";
  517. pinctrl-0 = <&otp_pin>;
  518. pinctrl-1 = <&otp_out>;
  519. pinctrl-2 = <&otp_pin>;
  520. #thermal-sensor-cells = <1>;
  521. rockchip,hw-tshut-temp = <95000>;
  522. status = "disabled";
  523. };
  524. hdmi_phy: hdmi-phy@12030000 {
  525. compatible = "rockchip,rk3228-hdmi-phy";
  526. reg = <0x12030000 0x10000>;
  527. clocks = <&cru PCLK_HDMI_PHY>, <&xin24m>, <&cru DCLK_HDMI_PHY>;
  528. clock-names = "sysclk", "refoclk", "refpclk";
  529. #clock-cells = <0>;
  530. clock-output-names = "hdmiphy_phy";
  531. #phy-cells = <0>;
  532. status = "disabled";
  533. };
  534. gpu: gpu@20000000 {
  535. compatible = "rockchip,rk3228-mali", "arm,mali-400";
  536. reg = <0x20000000 0x10000>;
  537. interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
  538. <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
  539. <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
  540. <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
  541. <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
  542. <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
  543. interrupt-names = "gp",
  544. "gpmmu",
  545. "pp0",
  546. "ppmmu0",
  547. "pp1",
  548. "ppmmu1";
  549. clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
  550. clock-names = "bus", "core";
  551. power-domains = <&power RK3228_PD_GPU>;
  552. resets = <&cru SRST_GPU_A>;
  553. status = "disabled";
  554. };
  555. vpu: video-codec@20020000 {
  556. compatible = "rockchip,rk3228-vpu", "rockchip,rk3399-vpu";
  557. reg = <0x20020000 0x800>;
  558. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
  559. <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  560. interrupt-names = "vepu", "vdpu";
  561. clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
  562. clock-names = "aclk", "hclk";
  563. iommus = <&vpu_mmu>;
  564. power-domains = <&power RK3228_PD_VPU>;
  565. };
  566. vpu_mmu: iommu@20020800 {
  567. compatible = "rockchip,iommu";
  568. reg = <0x20020800 0x100>;
  569. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  570. clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
  571. clock-names = "aclk", "iface";
  572. power-domains = <&power RK3228_PD_VPU>;
  573. #iommu-cells = <0>;
  574. };
  575. vdec: video-codec@20030000 {
  576. compatible = "rockchip,rk3228-vdec", "rockchip,rk3399-vdec";
  577. reg = <0x20030000 0x480>;
  578. interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  579. clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>,
  580. <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>;
  581. clock-names = "axi", "ahb", "cabac", "core";
  582. assigned-clocks = <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>;
  583. assigned-clock-rates = <300000000>, <300000000>;
  584. iommus = <&vdec_mmu>;
  585. power-domains = <&power RK3228_PD_RKVDEC>;
  586. };
  587. vdec_mmu: iommu@20030480 {
  588. compatible = "rockchip,iommu";
  589. reg = <0x20030480 0x40>, <0x200304c0 0x40>;
  590. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
  591. clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>;
  592. clock-names = "aclk", "iface";
  593. power-domains = <&power RK3228_PD_RKVDEC>;
  594. #iommu-cells = <0>;
  595. };
  596. vop: vop@20050000 {
  597. compatible = "rockchip,rk3228-vop";
  598. reg = <0x20050000 0x1ffc>;
  599. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  600. clocks = <&cru ACLK_VOP>, <&cru DCLK_VOP>, <&cru HCLK_VOP>;
  601. clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
  602. resets = <&cru SRST_VOP_A>, <&cru SRST_VOP_H>, <&cru SRST_VOP_D>;
  603. reset-names = "axi", "ahb", "dclk";
  604. iommus = <&vop_mmu>;
  605. power-domains = <&power RK3228_PD_VOP>;
  606. status = "disabled";
  607. vop_out: port {
  608. #address-cells = <1>;
  609. #size-cells = <0>;
  610. vop_out_hdmi: endpoint@0 {
  611. reg = <0>;
  612. remote-endpoint = <&hdmi_in_vop>;
  613. };
  614. };
  615. };
  616. vop_mmu: iommu@20053f00 {
  617. compatible = "rockchip,iommu";
  618. reg = <0x20053f00 0x100>;
  619. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  620. clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
  621. clock-names = "aclk", "iface";
  622. power-domains = <&power RK3228_PD_VOP>;
  623. #iommu-cells = <0>;
  624. status = "disabled";
  625. };
  626. rga: rga@20060000 {
  627. compatible = "rockchip,rk3228-rga", "rockchip,rk3288-rga";
  628. reg = <0x20060000 0x1000>;
  629. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  630. clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA>;
  631. clock-names = "aclk", "hclk", "sclk";
  632. power-domains = <&power RK3228_PD_VIO>;
  633. resets = <&cru SRST_RGA>, <&cru SRST_RGA_A>, <&cru SRST_RGA_H>;
  634. reset-names = "core", "axi", "ahb";
  635. };
  636. iep_mmu: iommu@20070800 {
  637. compatible = "rockchip,iommu";
  638. reg = <0x20070800 0x100>;
  639. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  640. clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
  641. clock-names = "aclk", "iface";
  642. power-domains = <&power RK3228_PD_VIO>;
  643. #iommu-cells = <0>;
  644. status = "disabled";
  645. };
  646. hdmi: hdmi@200a0000 {
  647. compatible = "rockchip,rk3228-dw-hdmi";
  648. reg = <0x200a0000 0x20000>;
  649. reg-io-width = <4>;
  650. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  651. assigned-clocks = <&cru SCLK_HDMI_PHY>;
  652. assigned-clock-parents = <&hdmi_phy>;
  653. clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>, <&cru SCLK_HDMI_CEC>;
  654. clock-names = "iahb", "isfr", "cec";
  655. pinctrl-names = "default";
  656. pinctrl-0 = <&hdmii2c_xfer &hdmi_hpd &hdmi_cec>;
  657. resets = <&cru SRST_HDMI_P>;
  658. reset-names = "hdmi";
  659. phys = <&hdmi_phy>;
  660. phy-names = "hdmi";
  661. rockchip,grf = <&grf>;
  662. status = "disabled";
  663. ports {
  664. hdmi_in: port {
  665. #address-cells = <1>;
  666. #size-cells = <0>;
  667. hdmi_in_vop: endpoint@0 {
  668. reg = <0>;
  669. remote-endpoint = <&vop_out_hdmi>;
  670. };
  671. };
  672. };
  673. };
  674. sdmmc: mmc@30000000 {
  675. compatible = "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc";
  676. reg = <0x30000000 0x4000>;
  677. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  678. clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
  679. <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
  680. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  681. fifo-depth = <0x100>;
  682. pinctrl-names = "default";
  683. pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
  684. status = "disabled";
  685. };
  686. sdio: mmc@30010000 {
  687. compatible = "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc";
  688. reg = <0x30010000 0x4000>;
  689. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  690. clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
  691. <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
  692. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  693. fifo-depth = <0x100>;
  694. pinctrl-names = "default";
  695. pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
  696. status = "disabled";
  697. };
  698. emmc: mmc@30020000 {
  699. compatible = "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc";
  700. reg = <0x30020000 0x4000>;
  701. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  702. clock-frequency = <37500000>;
  703. max-frequency = <37500000>;
  704. clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
  705. <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
  706. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  707. bus-width = <8>;
  708. rockchip,default-sample-phase = <158>;
  709. fifo-depth = <0x100>;
  710. pinctrl-names = "default";
  711. pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
  712. resets = <&cru SRST_EMMC>;
  713. reset-names = "reset";
  714. status = "disabled";
  715. };
  716. usb_otg: usb@30040000 {
  717. compatible = "rockchip,rk3228-usb", "rockchip,rk3066-usb",
  718. "snps,dwc2";
  719. reg = <0x30040000 0x40000>;
  720. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  721. clocks = <&cru HCLK_OTG>;
  722. clock-names = "otg";
  723. dr_mode = "otg";
  724. g-np-tx-fifo-size = <16>;
  725. g-rx-fifo-size = <280>;
  726. g-tx-fifo-size = <256 128 128 64 32 16>;
  727. phys = <&u2phy0_otg>;
  728. phy-names = "usb2-phy";
  729. status = "disabled";
  730. };
  731. usb_host0_ehci: usb@30080000 {
  732. compatible = "generic-ehci";
  733. reg = <0x30080000 0x20000>;
  734. interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
  735. clocks = <&cru HCLK_HOST0>, <&u2phy0>;
  736. phys = <&u2phy0_host>;
  737. phy-names = "usb";
  738. status = "disabled";
  739. };
  740. usb_host0_ohci: usb@300a0000 {
  741. compatible = "generic-ohci";
  742. reg = <0x300a0000 0x20000>;
  743. interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
  744. clocks = <&cru HCLK_HOST0>, <&u2phy0>;
  745. phys = <&u2phy0_host>;
  746. phy-names = "usb";
  747. status = "disabled";
  748. };
  749. usb_host1_ehci: usb@300c0000 {
  750. compatible = "generic-ehci";
  751. reg = <0x300c0000 0x20000>;
  752. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
  753. clocks = <&cru HCLK_HOST1>, <&u2phy1>;
  754. phys = <&u2phy1_otg>;
  755. phy-names = "usb";
  756. status = "disabled";
  757. };
  758. usb_host1_ohci: usb@300e0000 {
  759. compatible = "generic-ohci";
  760. reg = <0x300e0000 0x20000>;
  761. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  762. clocks = <&cru HCLK_HOST1>, <&u2phy1>;
  763. phys = <&u2phy1_otg>;
  764. phy-names = "usb";
  765. status = "disabled";
  766. };
  767. usb_host2_ehci: usb@30100000 {
  768. compatible = "generic-ehci";
  769. reg = <0x30100000 0x20000>;
  770. interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
  771. clocks = <&cru HCLK_HOST2>, <&u2phy1>;
  772. phys = <&u2phy1_host>;
  773. phy-names = "usb";
  774. status = "disabled";
  775. };
  776. usb_host2_ohci: usb@30120000 {
  777. compatible = "generic-ohci";
  778. reg = <0x30120000 0x20000>;
  779. interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
  780. clocks = <&cru HCLK_HOST2>, <&u2phy1>;
  781. phys = <&u2phy1_host>;
  782. phy-names = "usb";
  783. status = "disabled";
  784. };
  785. gmac: ethernet@30200000 {
  786. compatible = "rockchip,rk3228-gmac";
  787. reg = <0x30200000 0x10000>;
  788. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
  789. interrupt-names = "macirq";
  790. clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
  791. <&cru SCLK_MAC_TX>, <&cru SCLK_MAC_REF>,
  792. <&cru SCLK_MAC_REFOUT>, <&cru ACLK_GMAC>,
  793. <&cru PCLK_GMAC>;
  794. clock-names = "stmmaceth", "mac_clk_rx",
  795. "mac_clk_tx", "clk_mac_ref",
  796. "clk_mac_refout", "aclk_mac",
  797. "pclk_mac";
  798. resets = <&cru SRST_GMAC>;
  799. reset-names = "stmmaceth";
  800. rockchip,grf = <&grf>;
  801. status = "disabled";
  802. };
  803. qos_iep: qos@31030080 {
  804. compatible = "rockchip,rk3228-qos", "syscon";
  805. reg = <0x31030080 0x20>;
  806. };
  807. qos_rga_w: qos@31030100 {
  808. compatible = "rockchip,rk3228-qos", "syscon";
  809. reg = <0x31030100 0x20>;
  810. };
  811. qos_hdcp: qos@31030180 {
  812. compatible = "rockchip,rk3228-qos", "syscon";
  813. reg = <0x31030180 0x20>;
  814. };
  815. qos_rga_r: qos@31030200 {
  816. compatible = "rockchip,rk3228-qos", "syscon";
  817. reg = <0x31030200 0x20>;
  818. };
  819. qos_vpu: qos@31040000 {
  820. compatible = "rockchip,rk3228-qos", "syscon";
  821. reg = <0x31040000 0x20>;
  822. };
  823. qos_gpu: qos@31050000 {
  824. compatible = "rockchip,rk3228-qos", "syscon";
  825. reg = <0x31050000 0x20>;
  826. };
  827. qos_vop: qos@31060000 {
  828. compatible = "rockchip,rk3228-qos", "syscon";
  829. reg = <0x31060000 0x20>;
  830. };
  831. qos_rkvdec_r: qos@31070000 {
  832. compatible = "rockchip,rk3228-qos", "syscon";
  833. reg = <0x31070000 0x20>;
  834. };
  835. qos_rkvdec_w: qos@31070080 {
  836. compatible = "rockchip,rk3228-qos", "syscon";
  837. reg = <0x31070080 0x20>;
  838. };
  839. gic: interrupt-controller@32010000 {
  840. compatible = "arm,gic-400";
  841. interrupt-controller;
  842. #interrupt-cells = <3>;
  843. #address-cells = <0>;
  844. reg = <0x32011000 0x1000>,
  845. <0x32012000 0x2000>,
  846. <0x32014000 0x2000>,
  847. <0x32016000 0x2000>;
  848. interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  849. };
  850. pinctrl: pinctrl {
  851. compatible = "rockchip,rk3228-pinctrl";
  852. rockchip,grf = <&grf>;
  853. #address-cells = <1>;
  854. #size-cells = <1>;
  855. ranges;
  856. gpio0: gpio@11110000 {
  857. compatible = "rockchip,gpio-bank";
  858. reg = <0x11110000 0x100>;
  859. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
  860. clocks = <&cru PCLK_GPIO0>;
  861. gpio-controller;
  862. #gpio-cells = <2>;
  863. interrupt-controller;
  864. #interrupt-cells = <2>;
  865. };
  866. gpio1: gpio@11120000 {
  867. compatible = "rockchip,gpio-bank";
  868. reg = <0x11120000 0x100>;
  869. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  870. clocks = <&cru PCLK_GPIO1>;
  871. gpio-controller;
  872. #gpio-cells = <2>;
  873. interrupt-controller;
  874. #interrupt-cells = <2>;
  875. };
  876. gpio2: gpio@11130000 {
  877. compatible = "rockchip,gpio-bank";
  878. reg = <0x11130000 0x100>;
  879. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  880. clocks = <&cru PCLK_GPIO2>;
  881. gpio-controller;
  882. #gpio-cells = <2>;
  883. interrupt-controller;
  884. #interrupt-cells = <2>;
  885. };
  886. gpio3: gpio@11140000 {
  887. compatible = "rockchip,gpio-bank";
  888. reg = <0x11140000 0x100>;
  889. interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
  890. clocks = <&cru PCLK_GPIO3>;
  891. gpio-controller;
  892. #gpio-cells = <2>;
  893. interrupt-controller;
  894. #interrupt-cells = <2>;
  895. };
  896. pcfg_pull_up: pcfg-pull-up {
  897. bias-pull-up;
  898. };
  899. pcfg_pull_down: pcfg-pull-down {
  900. bias-pull-down;
  901. };
  902. pcfg_pull_none: pcfg-pull-none {
  903. bias-disable;
  904. };
  905. pcfg_pull_none_drv_12ma: pcfg-pull-none-drv-12ma {
  906. drive-strength = <12>;
  907. };
  908. sdmmc {
  909. sdmmc_clk: sdmmc-clk {
  910. rockchip,pins = <1 RK_PC0 1 &pcfg_pull_none_drv_12ma>;
  911. };
  912. sdmmc_cmd: sdmmc-cmd {
  913. rockchip,pins = <1 RK_PB7 1 &pcfg_pull_none_drv_12ma>;
  914. };
  915. sdmmc_bus4: sdmmc-bus4 {
  916. rockchip,pins = <1 RK_PC2 1 &pcfg_pull_none_drv_12ma>,
  917. <1 RK_PC3 1 &pcfg_pull_none_drv_12ma>,
  918. <1 RK_PC4 1 &pcfg_pull_none_drv_12ma>,
  919. <1 RK_PC5 1 &pcfg_pull_none_drv_12ma>;
  920. };
  921. };
  922. sdio {
  923. sdio_clk: sdio-clk {
  924. rockchip,pins = <3 RK_PA0 1 &pcfg_pull_none_drv_12ma>;
  925. };
  926. sdio_cmd: sdio-cmd {
  927. rockchip,pins = <3 RK_PA1 1 &pcfg_pull_none_drv_12ma>;
  928. };
  929. sdio_bus4: sdio-bus4 {
  930. rockchip,pins = <3 RK_PA2 1 &pcfg_pull_none_drv_12ma>,
  931. <3 RK_PA3 1 &pcfg_pull_none_drv_12ma>,
  932. <3 RK_PA4 1 &pcfg_pull_none_drv_12ma>,
  933. <3 RK_PA5 1 &pcfg_pull_none_drv_12ma>;
  934. };
  935. };
  936. emmc {
  937. emmc_clk: emmc-clk {
  938. rockchip,pins = <2 RK_PA7 2 &pcfg_pull_none>;
  939. };
  940. emmc_cmd: emmc-cmd {
  941. rockchip,pins = <1 RK_PC6 2 &pcfg_pull_none>;
  942. };
  943. emmc_bus8: emmc-bus8 {
  944. rockchip,pins = <1 RK_PD0 2 &pcfg_pull_none>,
  945. <1 RK_PD1 2 &pcfg_pull_none>,
  946. <1 RK_PD2 2 &pcfg_pull_none>,
  947. <1 RK_PD3 2 &pcfg_pull_none>,
  948. <1 RK_PD4 2 &pcfg_pull_none>,
  949. <1 RK_PD5 2 &pcfg_pull_none>,
  950. <1 RK_PD6 2 &pcfg_pull_none>,
  951. <1 RK_PD7 2 &pcfg_pull_none>;
  952. };
  953. };
  954. gmac {
  955. rgmii_pins: rgmii-pins {
  956. rockchip,pins = <2 RK_PB6 1 &pcfg_pull_none>,
  957. <2 RK_PB4 1 &pcfg_pull_none>,
  958. <2 RK_PD1 1 &pcfg_pull_none>,
  959. <2 RK_PC3 1 &pcfg_pull_none_drv_12ma>,
  960. <2 RK_PC2 1 &pcfg_pull_none_drv_12ma>,
  961. <2 RK_PC6 1 &pcfg_pull_none_drv_12ma>,
  962. <2 RK_PC7 1 &pcfg_pull_none_drv_12ma>,
  963. <2 RK_PB1 1 &pcfg_pull_none_drv_12ma>,
  964. <2 RK_PB5 1 &pcfg_pull_none_drv_12ma>,
  965. <2 RK_PC1 1 &pcfg_pull_none>,
  966. <2 RK_PC0 1 &pcfg_pull_none>,
  967. <2 RK_PC5 2 &pcfg_pull_none>,
  968. <2 RK_PC4 2 &pcfg_pull_none>,
  969. <2 RK_PB3 1 &pcfg_pull_none>,
  970. <2 RK_PB0 1 &pcfg_pull_none>;
  971. };
  972. rmii_pins: rmii-pins {
  973. rockchip,pins = <2 RK_PB6 1 &pcfg_pull_none>,
  974. <2 RK_PB4 1 &pcfg_pull_none>,
  975. <2 RK_PD1 1 &pcfg_pull_none>,
  976. <2 RK_PC3 1 &pcfg_pull_none_drv_12ma>,
  977. <2 RK_PC2 1 &pcfg_pull_none_drv_12ma>,
  978. <2 RK_PB5 1 &pcfg_pull_none_drv_12ma>,
  979. <2 RK_PC1 1 &pcfg_pull_none>,
  980. <2 RK_PC0 1 &pcfg_pull_none>,
  981. <2 RK_PB0 1 &pcfg_pull_none>,
  982. <2 RK_PB7 1 &pcfg_pull_none>;
  983. };
  984. phy_pins: phy-pins {
  985. rockchip,pins = <2 RK_PB6 2 &pcfg_pull_none>,
  986. <2 RK_PB0 2 &pcfg_pull_none>;
  987. };
  988. };
  989. hdmi {
  990. hdmi_hpd: hdmi-hpd {
  991. rockchip,pins = <0 RK_PB7 1 &pcfg_pull_down>;
  992. };
  993. hdmii2c_xfer: hdmii2c-xfer {
  994. rockchip,pins = <0 RK_PA6 2 &pcfg_pull_none>,
  995. <0 RK_PA7 2 &pcfg_pull_none>;
  996. };
  997. hdmi_cec: hdmi-cec {
  998. rockchip,pins = <0 RK_PC4 1 &pcfg_pull_none>;
  999. };
  1000. };
  1001. i2c0 {
  1002. i2c0_xfer: i2c0-xfer {
  1003. rockchip,pins = <0 RK_PA0 1 &pcfg_pull_none>,
  1004. <0 RK_PA1 1 &pcfg_pull_none>;
  1005. };
  1006. };
  1007. i2c1 {
  1008. i2c1_xfer: i2c1-xfer {
  1009. rockchip,pins = <0 RK_PA2 1 &pcfg_pull_none>,
  1010. <0 RK_PA3 1 &pcfg_pull_none>;
  1011. };
  1012. };
  1013. i2c2 {
  1014. i2c2_xfer: i2c2-xfer {
  1015. rockchip,pins = <2 RK_PC4 1 &pcfg_pull_none>,
  1016. <2 RK_PC5 1 &pcfg_pull_none>;
  1017. };
  1018. };
  1019. i2c3 {
  1020. i2c3_xfer: i2c3-xfer {
  1021. rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>,
  1022. <0 RK_PA7 1 &pcfg_pull_none>;
  1023. };
  1024. };
  1025. spi0 {
  1026. spi0_clk: spi0-clk {
  1027. rockchip,pins = <0 RK_PB1 2 &pcfg_pull_up>;
  1028. };
  1029. spi0_cs0: spi0-cs0 {
  1030. rockchip,pins = <0 RK_PB6 2 &pcfg_pull_up>;
  1031. };
  1032. spi0_tx: spi0-tx {
  1033. rockchip,pins = <0 RK_PB3 2 &pcfg_pull_up>;
  1034. };
  1035. spi0_rx: spi0-rx {
  1036. rockchip,pins = <0 RK_PB5 2 &pcfg_pull_up>;
  1037. };
  1038. spi0_cs1: spi0-cs1 {
  1039. rockchip,pins = <1 RK_PB4 1 &pcfg_pull_up>;
  1040. };
  1041. };
  1042. spi1 {
  1043. spi1_clk: spi1-clk {
  1044. rockchip,pins = <0 RK_PC7 2 &pcfg_pull_up>;
  1045. };
  1046. spi1_cs0: spi1-cs0 {
  1047. rockchip,pins = <2 RK_PA2 2 &pcfg_pull_up>;
  1048. };
  1049. spi1_rx: spi1-rx {
  1050. rockchip,pins = <2 RK_PA0 2 &pcfg_pull_up>;
  1051. };
  1052. spi1_tx: spi1-tx {
  1053. rockchip,pins = <2 RK_PA1 2 &pcfg_pull_up>;
  1054. };
  1055. spi1_cs1: spi1-cs1 {
  1056. rockchip,pins = <2 RK_PA3 2 &pcfg_pull_up>;
  1057. };
  1058. };
  1059. i2s1 {
  1060. i2s1_bus: i2s1-bus {
  1061. rockchip,pins = <0 RK_PB0 1 &pcfg_pull_none>,
  1062. <0 RK_PB1 1 &pcfg_pull_none>,
  1063. <0 RK_PB3 1 &pcfg_pull_none>,
  1064. <0 RK_PB4 1 &pcfg_pull_none>,
  1065. <0 RK_PB5 1 &pcfg_pull_none>,
  1066. <0 RK_PB6 1 &pcfg_pull_none>,
  1067. <1 RK_PA2 2 &pcfg_pull_none>,
  1068. <1 RK_PA4 2 &pcfg_pull_none>,
  1069. <1 RK_PA5 2 &pcfg_pull_none>;
  1070. };
  1071. };
  1072. pwm0 {
  1073. pwm0_pin: pwm0-pin {
  1074. rockchip,pins = <3 RK_PC5 1 &pcfg_pull_none>;
  1075. };
  1076. };
  1077. pwm1 {
  1078. pwm1_pin: pwm1-pin {
  1079. rockchip,pins = <0 RK_PD6 2 &pcfg_pull_none>;
  1080. };
  1081. };
  1082. pwm2 {
  1083. pwm2_pin: pwm2-pin {
  1084. rockchip,pins = <1 RK_PB4 2 &pcfg_pull_none>;
  1085. };
  1086. };
  1087. pwm3 {
  1088. pwm3_pin: pwm3-pin {
  1089. rockchip,pins = <1 RK_PB3 2 &pcfg_pull_none>;
  1090. };
  1091. };
  1092. spdif {
  1093. spdif_tx: spdif-tx {
  1094. rockchip,pins = <3 RK_PD7 2 &pcfg_pull_none>;
  1095. };
  1096. };
  1097. tsadc {
  1098. otp_pin: otp-pin {
  1099. rockchip,pins = <0 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
  1100. };
  1101. otp_out: otp-out {
  1102. rockchip,pins = <0 RK_PD0 2 &pcfg_pull_none>;
  1103. };
  1104. };
  1105. uart0 {
  1106. uart0_xfer: uart0-xfer {
  1107. rockchip,pins = <2 RK_PD2 1 &pcfg_pull_none>,
  1108. <2 RK_PD3 1 &pcfg_pull_none>;
  1109. };
  1110. uart0_cts: uart0-cts {
  1111. rockchip,pins = <2 RK_PD5 1 &pcfg_pull_none>;
  1112. };
  1113. uart0_rts: uart0-rts {
  1114. rockchip,pins = <0 RK_PC1 1 &pcfg_pull_none>;
  1115. };
  1116. };
  1117. uart1 {
  1118. uart1_xfer: uart1-xfer {
  1119. rockchip,pins = <1 RK_PB1 1 &pcfg_pull_none>,
  1120. <1 RK_PB2 1 &pcfg_pull_none>;
  1121. };
  1122. uart1_cts: uart1-cts {
  1123. rockchip,pins = <1 RK_PB0 1 &pcfg_pull_none>;
  1124. };
  1125. uart1_rts: uart1-rts {
  1126. rockchip,pins = <1 RK_PB3 1 &pcfg_pull_none>;
  1127. };
  1128. };
  1129. uart2 {
  1130. uart2_xfer: uart2-xfer {
  1131. rockchip,pins = <1 RK_PC2 2 &pcfg_pull_up>,
  1132. <1 RK_PC3 2 &pcfg_pull_none>;
  1133. };
  1134. uart21_xfer: uart21-xfer {
  1135. rockchip,pins = <1 RK_PB2 2 &pcfg_pull_up>,
  1136. <1 RK_PB1 2 &pcfg_pull_none>;
  1137. };
  1138. uart2_cts: uart2-cts {
  1139. rockchip,pins = <0 RK_PD1 1 &pcfg_pull_none>;
  1140. };
  1141. uart2_rts: uart2-rts {
  1142. rockchip,pins = <0 RK_PD0 1 &pcfg_pull_none>;
  1143. };
  1144. };
  1145. };
  1146. };