rk3368.dtsi 30 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de>
  4. */
  5. #include <dt-bindings/clock/rk3368-cru.h>
  6. #include <dt-bindings/gpio/gpio.h>
  7. #include <dt-bindings/interrupt-controller/irq.h>
  8. #include <dt-bindings/interrupt-controller/arm-gic.h>
  9. #include <dt-bindings/pinctrl/rockchip.h>
  10. #include <dt-bindings/soc/rockchip,boot-mode.h>
  11. #include <dt-bindings/thermal/thermal.h>
  12. / {
  13. compatible = "rockchip,rk3368";
  14. interrupt-parent = <&gic>;
  15. #address-cells = <2>;
  16. #size-cells = <2>;
  17. aliases {
  18. ethernet0 = &gmac;
  19. i2c0 = &i2c0;
  20. i2c1 = &i2c1;
  21. i2c2 = &i2c2;
  22. i2c3 = &i2c3;
  23. i2c4 = &i2c4;
  24. i2c5 = &i2c5;
  25. serial0 = &uart0;
  26. serial1 = &uart1;
  27. serial2 = &uart2;
  28. serial3 = &uart3;
  29. serial4 = &uart4;
  30. spi0 = &spi0;
  31. spi1 = &spi1;
  32. spi2 = &spi2;
  33. };
  34. cpus {
  35. #address-cells = <0x2>;
  36. #size-cells = <0x0>;
  37. cpu-map {
  38. cluster0 {
  39. core0 {
  40. cpu = <&cpu_b0>;
  41. };
  42. core1 {
  43. cpu = <&cpu_b1>;
  44. };
  45. core2 {
  46. cpu = <&cpu_b2>;
  47. };
  48. core3 {
  49. cpu = <&cpu_b3>;
  50. };
  51. };
  52. cluster1 {
  53. core0 {
  54. cpu = <&cpu_l0>;
  55. };
  56. core1 {
  57. cpu = <&cpu_l1>;
  58. };
  59. core2 {
  60. cpu = <&cpu_l2>;
  61. };
  62. core3 {
  63. cpu = <&cpu_l3>;
  64. };
  65. };
  66. };
  67. cpu_l0: cpu@0 {
  68. device_type = "cpu";
  69. compatible = "arm,cortex-a53", "arm,armv8";
  70. reg = <0x0 0x0>;
  71. enable-method = "psci";
  72. #cooling-cells = <2>; /* min followed by max */
  73. };
  74. cpu_l1: cpu@1 {
  75. device_type = "cpu";
  76. compatible = "arm,cortex-a53", "arm,armv8";
  77. reg = <0x0 0x1>;
  78. enable-method = "psci";
  79. #cooling-cells = <2>; /* min followed by max */
  80. };
  81. cpu_l2: cpu@2 {
  82. device_type = "cpu";
  83. compatible = "arm,cortex-a53", "arm,armv8";
  84. reg = <0x0 0x2>;
  85. enable-method = "psci";
  86. #cooling-cells = <2>; /* min followed by max */
  87. };
  88. cpu_l3: cpu@3 {
  89. device_type = "cpu";
  90. compatible = "arm,cortex-a53", "arm,armv8";
  91. reg = <0x0 0x3>;
  92. enable-method = "psci";
  93. #cooling-cells = <2>; /* min followed by max */
  94. };
  95. cpu_b0: cpu@100 {
  96. device_type = "cpu";
  97. compatible = "arm,cortex-a53", "arm,armv8";
  98. reg = <0x0 0x100>;
  99. enable-method = "psci";
  100. #cooling-cells = <2>; /* min followed by max */
  101. };
  102. cpu_b1: cpu@101 {
  103. device_type = "cpu";
  104. compatible = "arm,cortex-a53", "arm,armv8";
  105. reg = <0x0 0x101>;
  106. enable-method = "psci";
  107. #cooling-cells = <2>; /* min followed by max */
  108. };
  109. cpu_b2: cpu@102 {
  110. device_type = "cpu";
  111. compatible = "arm,cortex-a53", "arm,armv8";
  112. reg = <0x0 0x102>;
  113. enable-method = "psci";
  114. #cooling-cells = <2>; /* min followed by max */
  115. };
  116. cpu_b3: cpu@103 {
  117. device_type = "cpu";
  118. compatible = "arm,cortex-a53", "arm,armv8";
  119. reg = <0x0 0x103>;
  120. enable-method = "psci";
  121. #cooling-cells = <2>; /* min followed by max */
  122. };
  123. };
  124. amba {
  125. compatible = "simple-bus";
  126. #address-cells = <2>;
  127. #size-cells = <2>;
  128. ranges;
  129. dmac_peri: dma-controller@ff250000 {
  130. compatible = "arm,pl330", "arm,primecell";
  131. reg = <0x0 0xff250000 0x0 0x4000>;
  132. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
  133. <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
  134. #dma-cells = <1>;
  135. arm,pl330-broken-no-flushp;
  136. clocks = <&cru ACLK_DMAC_PERI>;
  137. clock-names = "apb_pclk";
  138. };
  139. dmac_bus: dma-controller@ff600000 {
  140. compatible = "arm,pl330", "arm,primecell";
  141. reg = <0x0 0xff600000 0x0 0x4000>;
  142. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  143. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
  144. #dma-cells = <1>;
  145. arm,pl330-broken-no-flushp;
  146. clocks = <&cru ACLK_DMAC_BUS>;
  147. clock-names = "apb_pclk";
  148. };
  149. };
  150. arm-pmu {
  151. compatible = "arm,armv8-pmuv3";
  152. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
  153. <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
  154. <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
  155. <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
  156. <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
  157. <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
  158. <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
  159. <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
  160. interrupt-affinity = <&cpu_l0>, <&cpu_l1>, <&cpu_l2>,
  161. <&cpu_l3>, <&cpu_b0>, <&cpu_b1>,
  162. <&cpu_b2>, <&cpu_b3>;
  163. };
  164. psci {
  165. compatible = "arm,psci-0.2";
  166. method = "smc";
  167. };
  168. timer {
  169. compatible = "arm,armv8-timer";
  170. interrupts = <GIC_PPI 13
  171. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
  172. <GIC_PPI 14
  173. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
  174. <GIC_PPI 11
  175. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
  176. <GIC_PPI 10
  177. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
  178. };
  179. xin24m: oscillator {
  180. compatible = "fixed-clock";
  181. clock-frequency = <24000000>;
  182. clock-output-names = "xin24m";
  183. #clock-cells = <0>;
  184. };
  185. sdmmc: dwmmc@ff0c0000 {
  186. compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
  187. reg = <0x0 0xff0c0000 0x0 0x4000>;
  188. max-frequency = <150000000>;
  189. clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
  190. <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
  191. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  192. fifo-depth = <0x100>;
  193. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  194. resets = <&cru SRST_MMC0>;
  195. reset-names = "reset";
  196. status = "disabled";
  197. };
  198. sdio0: dwmmc@ff0d0000 {
  199. compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
  200. reg = <0x0 0xff0d0000 0x0 0x4000>;
  201. max-frequency = <150000000>;
  202. clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
  203. <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
  204. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  205. fifo-depth = <0x100>;
  206. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  207. resets = <&cru SRST_SDIO0>;
  208. reset-names = "reset";
  209. status = "disabled";
  210. };
  211. emmc: dwmmc@ff0f0000 {
  212. compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
  213. reg = <0x0 0xff0f0000 0x0 0x4000>;
  214. max-frequency = <150000000>;
  215. clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
  216. <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
  217. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  218. fifo-depth = <0x100>;
  219. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  220. resets = <&cru SRST_EMMC>;
  221. reset-names = "reset";
  222. status = "disabled";
  223. };
  224. saradc: saradc@ff100000 {
  225. compatible = "rockchip,saradc";
  226. reg = <0x0 0xff100000 0x0 0x100>;
  227. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  228. #io-channel-cells = <1>;
  229. clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
  230. clock-names = "saradc", "apb_pclk";
  231. resets = <&cru SRST_SARADC>;
  232. reset-names = "saradc-apb";
  233. status = "disabled";
  234. };
  235. spi0: spi@ff110000 {
  236. compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
  237. reg = <0x0 0xff110000 0x0 0x1000>;
  238. clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
  239. clock-names = "spiclk", "apb_pclk";
  240. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  241. pinctrl-names = "default";
  242. pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
  243. #address-cells = <1>;
  244. #size-cells = <0>;
  245. status = "disabled";
  246. };
  247. spi1: spi@ff120000 {
  248. compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
  249. reg = <0x0 0xff120000 0x0 0x1000>;
  250. clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
  251. clock-names = "spiclk", "apb_pclk";
  252. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  253. pinctrl-names = "default";
  254. pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
  255. #address-cells = <1>;
  256. #size-cells = <0>;
  257. status = "disabled";
  258. };
  259. spi2: spi@ff130000 {
  260. compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
  261. reg = <0x0 0xff130000 0x0 0x1000>;
  262. clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
  263. clock-names = "spiclk", "apb_pclk";
  264. interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
  265. pinctrl-names = "default";
  266. pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
  267. #address-cells = <1>;
  268. #size-cells = <0>;
  269. status = "disabled";
  270. };
  271. i2c2: i2c@ff140000 {
  272. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  273. reg = <0x0 0xff140000 0x0 0x1000>;
  274. interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
  275. #address-cells = <1>;
  276. #size-cells = <0>;
  277. clock-names = "i2c";
  278. clocks = <&cru PCLK_I2C2>;
  279. pinctrl-names = "default";
  280. pinctrl-0 = <&i2c2_xfer>;
  281. status = "disabled";
  282. };
  283. i2c3: i2c@ff150000 {
  284. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  285. reg = <0x0 0xff150000 0x0 0x1000>;
  286. interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
  287. #address-cells = <1>;
  288. #size-cells = <0>;
  289. clock-names = "i2c";
  290. clocks = <&cru PCLK_I2C3>;
  291. pinctrl-names = "default";
  292. pinctrl-0 = <&i2c3_xfer>;
  293. status = "disabled";
  294. };
  295. i2c4: i2c@ff160000 {
  296. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  297. reg = <0x0 0xff160000 0x0 0x1000>;
  298. interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
  299. #address-cells = <1>;
  300. #size-cells = <0>;
  301. clock-names = "i2c";
  302. clocks = <&cru PCLK_I2C4>;
  303. pinctrl-names = "default";
  304. pinctrl-0 = <&i2c4_xfer>;
  305. status = "disabled";
  306. };
  307. i2c5: i2c@ff170000 {
  308. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  309. reg = <0x0 0xff170000 0x0 0x1000>;
  310. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
  311. #address-cells = <1>;
  312. #size-cells = <0>;
  313. clock-names = "i2c";
  314. clocks = <&cru PCLK_I2C5>;
  315. pinctrl-names = "default";
  316. pinctrl-0 = <&i2c5_xfer>;
  317. status = "disabled";
  318. };
  319. uart0: serial@ff180000 {
  320. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  321. reg = <0x0 0xff180000 0x0 0x100>;
  322. clock-frequency = <24000000>;
  323. clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
  324. clock-names = "baudclk", "apb_pclk";
  325. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  326. reg-shift = <2>;
  327. reg-io-width = <4>;
  328. status = "disabled";
  329. };
  330. uart1: serial@ff190000 {
  331. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  332. reg = <0x0 0xff190000 0x0 0x100>;
  333. clock-frequency = <24000000>;
  334. clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
  335. clock-names = "baudclk", "apb_pclk";
  336. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  337. reg-shift = <2>;
  338. reg-io-width = <4>;
  339. status = "disabled";
  340. };
  341. uart3: serial@ff1b0000 {
  342. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  343. reg = <0x0 0xff1b0000 0x0 0x100>;
  344. clock-frequency = <24000000>;
  345. clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
  346. clock-names = "baudclk", "apb_pclk";
  347. interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
  348. reg-shift = <2>;
  349. reg-io-width = <4>;
  350. status = "disabled";
  351. };
  352. uart4: serial@ff1c0000 {
  353. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  354. reg = <0x0 0xff1c0000 0x0 0x100>;
  355. clock-frequency = <24000000>;
  356. clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
  357. clock-names = "baudclk", "apb_pclk";
  358. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
  359. reg-shift = <2>;
  360. reg-io-width = <4>;
  361. status = "disabled";
  362. };
  363. thermal-zones {
  364. cpu {
  365. polling-delay-passive = <100>; /* milliseconds */
  366. polling-delay = <5000>; /* milliseconds */
  367. thermal-sensors = <&tsadc 0>;
  368. trips {
  369. cpu_alert0: cpu_alert0 {
  370. temperature = <75000>; /* millicelsius */
  371. hysteresis = <2000>; /* millicelsius */
  372. type = "passive";
  373. };
  374. cpu_alert1: cpu_alert1 {
  375. temperature = <80000>; /* millicelsius */
  376. hysteresis = <2000>; /* millicelsius */
  377. type = "passive";
  378. };
  379. cpu_crit: cpu_crit {
  380. temperature = <95000>; /* millicelsius */
  381. hysteresis = <2000>; /* millicelsius */
  382. type = "critical";
  383. };
  384. };
  385. cooling-maps {
  386. map0 {
  387. trip = <&cpu_alert0>;
  388. cooling-device =
  389. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  390. };
  391. map1 {
  392. trip = <&cpu_alert1>;
  393. cooling-device =
  394. <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  395. };
  396. };
  397. };
  398. gpu {
  399. polling-delay-passive = <100>; /* milliseconds */
  400. polling-delay = <5000>; /* milliseconds */
  401. thermal-sensors = <&tsadc 1>;
  402. trips {
  403. gpu_alert0: gpu_alert0 {
  404. temperature = <80000>; /* millicelsius */
  405. hysteresis = <2000>; /* millicelsius */
  406. type = "passive";
  407. };
  408. gpu_crit: gpu_crit {
  409. temperature = <115000>; /* millicelsius */
  410. hysteresis = <2000>; /* millicelsius */
  411. type = "critical";
  412. };
  413. };
  414. cooling-maps {
  415. map0 {
  416. trip = <&gpu_alert0>;
  417. cooling-device =
  418. <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  419. };
  420. };
  421. };
  422. };
  423. tsadc: tsadc@ff280000 {
  424. compatible = "rockchip,rk3368-tsadc";
  425. reg = <0x0 0xff280000 0x0 0x100>;
  426. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  427. clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
  428. clock-names = "tsadc", "apb_pclk";
  429. resets = <&cru SRST_TSADC>;
  430. reset-names = "tsadc-apb";
  431. pinctrl-names = "init", "default", "sleep";
  432. pinctrl-0 = <&otp_gpio>;
  433. pinctrl-1 = <&otp_out>;
  434. pinctrl-2 = <&otp_gpio>;
  435. #thermal-sensor-cells = <1>;
  436. rockchip,hw-tshut-temp = <95000>;
  437. status = "disabled";
  438. };
  439. gmac: ethernet@ff290000 {
  440. compatible = "rockchip,rk3368-gmac";
  441. reg = <0x0 0xff290000 0x0 0x10000>;
  442. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  443. interrupt-names = "macirq";
  444. rockchip,grf = <&grf>;
  445. clocks = <&cru SCLK_MAC>,
  446. <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
  447. <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
  448. <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
  449. clock-names = "stmmaceth",
  450. "mac_clk_rx", "mac_clk_tx",
  451. "clk_mac_ref", "clk_mac_refout",
  452. "aclk_mac", "pclk_mac";
  453. status = "disabled";
  454. };
  455. usb_host0_ehci: usb@ff500000 {
  456. compatible = "generic-ehci";
  457. reg = <0x0 0xff500000 0x0 0x100>;
  458. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
  459. clocks = <&cru HCLK_HOST0>;
  460. clock-names = "usbhost";
  461. status = "disabled";
  462. };
  463. usb_otg: usb@ff580000 {
  464. compatible = "rockchip,rk3368-usb", "rockchip,rk3066-usb",
  465. "snps,dwc2";
  466. reg = <0x0 0xff580000 0x0 0x40000>;
  467. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  468. clocks = <&cru HCLK_OTG0>;
  469. clock-names = "otg";
  470. dr_mode = "otg";
  471. g-np-tx-fifo-size = <16>;
  472. g-rx-fifo-size = <275>;
  473. g-tx-fifo-size = <256 128 128 64 64 32>;
  474. status = "disabled";
  475. };
  476. i2c0: i2c@ff650000 {
  477. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  478. reg = <0x0 0xff650000 0x0 0x1000>;
  479. clocks = <&cru PCLK_I2C0>;
  480. clock-names = "i2c";
  481. interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
  482. pinctrl-names = "default";
  483. pinctrl-0 = <&i2c0_xfer>;
  484. #address-cells = <1>;
  485. #size-cells = <0>;
  486. status = "disabled";
  487. };
  488. i2c1: i2c@ff660000 {
  489. compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
  490. reg = <0x0 0xff660000 0x0 0x1000>;
  491. interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
  492. #address-cells = <1>;
  493. #size-cells = <0>;
  494. clock-names = "i2c";
  495. clocks = <&cru PCLK_I2C1>;
  496. pinctrl-names = "default";
  497. pinctrl-0 = <&i2c1_xfer>;
  498. status = "disabled";
  499. };
  500. pwm0: pwm@ff680000 {
  501. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  502. reg = <0x0 0xff680000 0x0 0x10>;
  503. #pwm-cells = <3>;
  504. pinctrl-names = "default";
  505. pinctrl-0 = <&pwm0_pin>;
  506. clocks = <&cru PCLK_PWM1>;
  507. clock-names = "pwm";
  508. status = "disabled";
  509. };
  510. pwm1: pwm@ff680010 {
  511. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  512. reg = <0x0 0xff680010 0x0 0x10>;
  513. #pwm-cells = <3>;
  514. pinctrl-names = "default";
  515. pinctrl-0 = <&pwm1_pin>;
  516. clocks = <&cru PCLK_PWM1>;
  517. clock-names = "pwm";
  518. status = "disabled";
  519. };
  520. pwm2: pwm@ff680020 {
  521. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  522. reg = <0x0 0xff680020 0x0 0x10>;
  523. #pwm-cells = <3>;
  524. clocks = <&cru PCLK_PWM1>;
  525. clock-names = "pwm";
  526. status = "disabled";
  527. };
  528. pwm3: pwm@ff680030 {
  529. compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm";
  530. reg = <0x0 0xff680030 0x0 0x10>;
  531. #pwm-cells = <3>;
  532. pinctrl-names = "default";
  533. pinctrl-0 = <&pwm3_pin>;
  534. clocks = <&cru PCLK_PWM1>;
  535. clock-names = "pwm";
  536. status = "disabled";
  537. };
  538. uart2: serial@ff690000 {
  539. compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
  540. reg = <0x0 0xff690000 0x0 0x100>;
  541. clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
  542. clock-names = "baudclk", "apb_pclk";
  543. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  544. pinctrl-names = "default";
  545. pinctrl-0 = <&uart2_xfer>;
  546. reg-shift = <2>;
  547. reg-io-width = <4>;
  548. status = "disabled";
  549. };
  550. mbox: mbox@ff6b0000 {
  551. compatible = "rockchip,rk3368-mailbox";
  552. reg = <0x0 0xff6b0000 0x0 0x1000>;
  553. interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
  554. <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
  555. <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
  556. <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
  557. clocks = <&cru PCLK_MAILBOX>;
  558. clock-names = "pclk_mailbox";
  559. #mbox-cells = <1>;
  560. status = "disabled";
  561. };
  562. pmugrf: syscon@ff738000 {
  563. compatible = "rockchip,rk3368-pmugrf", "syscon", "simple-mfd";
  564. reg = <0x0 0xff738000 0x0 0x1000>;
  565. pmu_io_domains: io-domains {
  566. compatible = "rockchip,rk3368-pmu-io-voltage-domain";
  567. status = "disabled";
  568. };
  569. reboot-mode {
  570. compatible = "syscon-reboot-mode";
  571. offset = <0x200>;
  572. mode-normal = <BOOT_NORMAL>;
  573. mode-recovery = <BOOT_RECOVERY>;
  574. mode-bootloader = <BOOT_FASTBOOT>;
  575. mode-loader = <BOOT_BL_DOWNLOAD>;
  576. };
  577. };
  578. cru: clock-controller@ff760000 {
  579. compatible = "rockchip,rk3368-cru";
  580. reg = <0x0 0xff760000 0x0 0x1000>;
  581. rockchip,grf = <&grf>;
  582. #clock-cells = <1>;
  583. #reset-cells = <1>;
  584. };
  585. grf: syscon@ff770000 {
  586. compatible = "rockchip,rk3368-grf", "syscon", "simple-mfd";
  587. reg = <0x0 0xff770000 0x0 0x1000>;
  588. io_domains: io-domains {
  589. compatible = "rockchip,rk3368-io-voltage-domain";
  590. status = "disabled";
  591. };
  592. };
  593. wdt: watchdog@ff800000 {
  594. compatible = "rockchip,rk3368-wdt", "snps,dw-wdt";
  595. reg = <0x0 0xff800000 0x0 0x100>;
  596. clocks = <&cru PCLK_WDT>;
  597. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  598. status = "disabled";
  599. };
  600. timer@ff810000 {
  601. compatible = "rockchip,rk3368-timer", "rockchip,rk3288-timer";
  602. reg = <0x0 0xff810000 0x0 0x20>;
  603. interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
  604. };
  605. spdif: spdif@ff880000 {
  606. compatible = "rockchip,rk3368-spdif";
  607. reg = <0x0 0xff880000 0x0 0x1000>;
  608. interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
  609. clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
  610. clock-names = "mclk", "hclk";
  611. dmas = <&dmac_bus 3>;
  612. dma-names = "tx";
  613. pinctrl-names = "default";
  614. pinctrl-0 = <&spdif_tx>;
  615. status = "disabled";
  616. };
  617. i2s_2ch: i2s-2ch@ff890000 {
  618. compatible = "rockchip,rk3368-i2s", "rockchip,rk3066-i2s";
  619. reg = <0x0 0xff890000 0x0 0x1000>;
  620. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
  621. clock-names = "i2s_clk", "i2s_hclk";
  622. clocks = <&cru SCLK_I2S_2CH>, <&cru HCLK_I2S_2CH>;
  623. dmas = <&dmac_bus 6>, <&dmac_bus 7>;
  624. dma-names = "tx", "rx";
  625. status = "disabled";
  626. };
  627. i2s_8ch: i2s-8ch@ff898000 {
  628. compatible = "rockchip,rk3368-i2s", "rockchip,rk3066-i2s";
  629. reg = <0x0 0xff898000 0x0 0x1000>;
  630. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  631. clock-names = "i2s_clk", "i2s_hclk";
  632. clocks = <&cru SCLK_I2S_8CH>, <&cru HCLK_I2S_8CH>;
  633. dmas = <&dmac_bus 0>, <&dmac_bus 1>;
  634. dma-names = "tx", "rx";
  635. pinctrl-names = "default";
  636. pinctrl-0 = <&i2s_8ch_bus>;
  637. status = "disabled";
  638. };
  639. iep_mmu: iommu@ff900800 {
  640. compatible = "rockchip,iommu";
  641. reg = <0x0 0xff900800 0x0 0x100>;
  642. interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
  643. interrupt-names = "iep_mmu";
  644. clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
  645. clock-names = "aclk", "iface";
  646. #iommu-cells = <0>;
  647. status = "disabled";
  648. };
  649. isp_mmu: iommu@ff914000 {
  650. compatible = "rockchip,iommu";
  651. reg = <0x0 0xff914000 0x0 0x100>,
  652. <0x0 0xff915000 0x0 0x100>;
  653. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  654. interrupt-names = "isp_mmu";
  655. clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>;
  656. clock-names = "aclk", "iface";
  657. #iommu-cells = <0>;
  658. rockchip,disable-mmu-reset;
  659. status = "disabled";
  660. };
  661. vop_mmu: iommu@ff930300 {
  662. compatible = "rockchip,iommu";
  663. reg = <0x0 0xff930300 0x0 0x100>;
  664. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  665. interrupt-names = "vop_mmu";
  666. clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
  667. clock-names = "aclk", "iface";
  668. #iommu-cells = <0>;
  669. status = "disabled";
  670. };
  671. hevc_mmu: iommu@ff9a0440 {
  672. compatible = "rockchip,iommu";
  673. reg = <0x0 0xff9a0440 0x0 0x40>,
  674. <0x0 0xff9a0480 0x0 0x40>;
  675. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  676. interrupt-names = "hevc_mmu";
  677. clocks = <&cru ACLK_VIDEO>, <&cru HCLK_VIDEO>;
  678. clock-names = "aclk", "iface";
  679. #iommu-cells = <0>;
  680. status = "disabled";
  681. };
  682. vpu_mmu: iommu@ff9a0800 {
  683. compatible = "rockchip,iommu";
  684. reg = <0x0 0xff9a0800 0x0 0x100>;
  685. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
  686. <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  687. interrupt-names = "vepu_mmu", "vdpu_mmu";
  688. clocks = <&cru ACLK_VIDEO>, <&cru HCLK_VIDEO>;
  689. clock-names = "aclk", "iface";
  690. #iommu-cells = <0>;
  691. status = "disabled";
  692. };
  693. efuse256: efuse@ffb00000 {
  694. compatible = "rockchip,rk3368-efuse";
  695. reg = <0x0 0xffb00000 0x0 0x20>;
  696. #address-cells = <1>;
  697. #size-cells = <1>;
  698. clocks = <&cru PCLK_EFUSE256>;
  699. clock-names = "pclk_efuse";
  700. cpu_leakage: cpu-leakage@17 {
  701. reg = <0x17 0x1>;
  702. };
  703. temp_adjust: temp-adjust@1f {
  704. reg = <0x1f 0x1>;
  705. };
  706. };
  707. gic: interrupt-controller@ffb71000 {
  708. compatible = "arm,gic-400";
  709. interrupt-controller;
  710. #interrupt-cells = <3>;
  711. #address-cells = <0>;
  712. reg = <0x0 0xffb71000 0x0 0x1000>,
  713. <0x0 0xffb72000 0x0 0x2000>,
  714. <0x0 0xffb74000 0x0 0x2000>,
  715. <0x0 0xffb76000 0x0 0x2000>;
  716. interrupts = <GIC_PPI 9
  717. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
  718. };
  719. pinctrl: pinctrl {
  720. compatible = "rockchip,rk3368-pinctrl";
  721. rockchip,grf = <&grf>;
  722. rockchip,pmu = <&pmugrf>;
  723. #address-cells = <0x2>;
  724. #size-cells = <0x2>;
  725. ranges;
  726. gpio0: gpio0@ff750000 {
  727. compatible = "rockchip,gpio-bank";
  728. reg = <0x0 0xff750000 0x0 0x100>;
  729. clocks = <&cru PCLK_GPIO0>;
  730. interrupts = <GIC_SPI 0x51 IRQ_TYPE_LEVEL_HIGH>;
  731. gpio-controller;
  732. #gpio-cells = <0x2>;
  733. interrupt-controller;
  734. #interrupt-cells = <0x2>;
  735. };
  736. gpio1: gpio1@ff780000 {
  737. compatible = "rockchip,gpio-bank";
  738. reg = <0x0 0xff780000 0x0 0x100>;
  739. clocks = <&cru PCLK_GPIO1>;
  740. interrupts = <GIC_SPI 0x52 IRQ_TYPE_LEVEL_HIGH>;
  741. gpio-controller;
  742. #gpio-cells = <0x2>;
  743. interrupt-controller;
  744. #interrupt-cells = <0x2>;
  745. };
  746. gpio2: gpio2@ff790000 {
  747. compatible = "rockchip,gpio-bank";
  748. reg = <0x0 0xff790000 0x0 0x100>;
  749. clocks = <&cru PCLK_GPIO2>;
  750. interrupts = <GIC_SPI 0x53 IRQ_TYPE_LEVEL_HIGH>;
  751. gpio-controller;
  752. #gpio-cells = <0x2>;
  753. interrupt-controller;
  754. #interrupt-cells = <0x2>;
  755. };
  756. gpio3: gpio3@ff7a0000 {
  757. compatible = "rockchip,gpio-bank";
  758. reg = <0x0 0xff7a0000 0x0 0x100>;
  759. clocks = <&cru PCLK_GPIO3>;
  760. interrupts = <GIC_SPI 0x54 IRQ_TYPE_LEVEL_HIGH>;
  761. gpio-controller;
  762. #gpio-cells = <0x2>;
  763. interrupt-controller;
  764. #interrupt-cells = <0x2>;
  765. };
  766. pcfg_pull_up: pcfg-pull-up {
  767. bias-pull-up;
  768. };
  769. pcfg_pull_down: pcfg-pull-down {
  770. bias-pull-down;
  771. };
  772. pcfg_pull_none: pcfg-pull-none {
  773. bias-disable;
  774. };
  775. pcfg_pull_none_12ma: pcfg-pull-none-12ma {
  776. bias-disable;
  777. drive-strength = <12>;
  778. };
  779. emmc {
  780. emmc_clk: emmc-clk {
  781. rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
  782. };
  783. emmc_cmd: emmc-cmd {
  784. rockchip,pins = <1 26 RK_FUNC_2 &pcfg_pull_up>;
  785. };
  786. emmc_pwr: emmc-pwr {
  787. rockchip,pins = <1 27 RK_FUNC_2 &pcfg_pull_up>;
  788. };
  789. emmc_bus1: emmc-bus1 {
  790. rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>;
  791. };
  792. emmc_bus4: emmc-bus4 {
  793. rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>,
  794. <1 19 RK_FUNC_2 &pcfg_pull_up>,
  795. <1 20 RK_FUNC_2 &pcfg_pull_up>,
  796. <1 21 RK_FUNC_2 &pcfg_pull_up>;
  797. };
  798. emmc_bus8: emmc-bus8 {
  799. rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>,
  800. <1 19 RK_FUNC_2 &pcfg_pull_up>,
  801. <1 20 RK_FUNC_2 &pcfg_pull_up>,
  802. <1 21 RK_FUNC_2 &pcfg_pull_up>,
  803. <1 22 RK_FUNC_2 &pcfg_pull_up>,
  804. <1 23 RK_FUNC_2 &pcfg_pull_up>,
  805. <1 24 RK_FUNC_2 &pcfg_pull_up>,
  806. <1 25 RK_FUNC_2 &pcfg_pull_up>;
  807. };
  808. };
  809. gmac {
  810. rgmii_pins: rgmii-pins {
  811. rockchip,pins = <3 22 RK_FUNC_1 &pcfg_pull_none>,
  812. <3 24 RK_FUNC_1 &pcfg_pull_none>,
  813. <3 19 RK_FUNC_1 &pcfg_pull_none>,
  814. <3 8 RK_FUNC_1 &pcfg_pull_none_12ma>,
  815. <3 9 RK_FUNC_1 &pcfg_pull_none_12ma>,
  816. <3 10 RK_FUNC_1 &pcfg_pull_none_12ma>,
  817. <3 14 RK_FUNC_1 &pcfg_pull_none_12ma>,
  818. <3 28 RK_FUNC_1 &pcfg_pull_none_12ma>,
  819. <3 13 RK_FUNC_1 &pcfg_pull_none_12ma>,
  820. <3 15 RK_FUNC_1 &pcfg_pull_none>,
  821. <3 16 RK_FUNC_1 &pcfg_pull_none>,
  822. <3 17 RK_FUNC_1 &pcfg_pull_none>,
  823. <3 18 RK_FUNC_1 &pcfg_pull_none>,
  824. <3 25 RK_FUNC_1 &pcfg_pull_none>,
  825. <3 20 RK_FUNC_1 &pcfg_pull_none>;
  826. };
  827. rmii_pins: rmii-pins {
  828. rockchip,pins = <3 22 RK_FUNC_1 &pcfg_pull_none>,
  829. <3 24 RK_FUNC_1 &pcfg_pull_none>,
  830. <3 19 RK_FUNC_1 &pcfg_pull_none>,
  831. <3 8 RK_FUNC_1 &pcfg_pull_none_12ma>,
  832. <3 9 RK_FUNC_1 &pcfg_pull_none_12ma>,
  833. <3 13 RK_FUNC_1 &pcfg_pull_none_12ma>,
  834. <3 15 RK_FUNC_1 &pcfg_pull_none>,
  835. <3 16 RK_FUNC_1 &pcfg_pull_none>,
  836. <3 20 RK_FUNC_1 &pcfg_pull_none>,
  837. <3 21 RK_FUNC_1 &pcfg_pull_none>;
  838. };
  839. };
  840. i2c0 {
  841. i2c0_xfer: i2c0-xfer {
  842. rockchip,pins = <0 6 RK_FUNC_1 &pcfg_pull_none>,
  843. <0 7 RK_FUNC_1 &pcfg_pull_none>;
  844. };
  845. };
  846. i2c1 {
  847. i2c1_xfer: i2c1-xfer {
  848. rockchip,pins = <2 21 RK_FUNC_1 &pcfg_pull_none>,
  849. <2 22 RK_FUNC_1 &pcfg_pull_none>;
  850. };
  851. };
  852. i2c2 {
  853. i2c2_xfer: i2c2-xfer {
  854. rockchip,pins = <0 9 RK_FUNC_2 &pcfg_pull_none>,
  855. <3 31 RK_FUNC_2 &pcfg_pull_none>;
  856. };
  857. };
  858. i2c3 {
  859. i2c3_xfer: i2c3-xfer {
  860. rockchip,pins = <1 16 RK_FUNC_1 &pcfg_pull_none>,
  861. <1 17 RK_FUNC_1 &pcfg_pull_none>;
  862. };
  863. };
  864. i2c4 {
  865. i2c4_xfer: i2c4-xfer {
  866. rockchip,pins = <3 24 RK_FUNC_2 &pcfg_pull_none>,
  867. <3 25 RK_FUNC_2 &pcfg_pull_none>;
  868. };
  869. };
  870. i2c5 {
  871. i2c5_xfer: i2c5-xfer {
  872. rockchip,pins = <3 26 RK_FUNC_2 &pcfg_pull_none>,
  873. <3 27 RK_FUNC_2 &pcfg_pull_none>;
  874. };
  875. };
  876. i2s {
  877. i2s_8ch_bus: i2s-8ch-bus {
  878. rockchip,pins = <2 12 RK_FUNC_1 &pcfg_pull_none>,
  879. <2 13 RK_FUNC_1 &pcfg_pull_none>,
  880. <2 14 RK_FUNC_1 &pcfg_pull_none>,
  881. <2 15 RK_FUNC_1 &pcfg_pull_none>,
  882. <2 16 RK_FUNC_1 &pcfg_pull_none>,
  883. <2 17 RK_FUNC_1 &pcfg_pull_none>,
  884. <2 18 RK_FUNC_1 &pcfg_pull_none>,
  885. <2 19 RK_FUNC_1 &pcfg_pull_none>,
  886. <2 20 RK_FUNC_1 &pcfg_pull_none>;
  887. };
  888. };
  889. pwm0 {
  890. pwm0_pin: pwm0-pin {
  891. rockchip,pins = <3 8 RK_FUNC_2 &pcfg_pull_none>;
  892. };
  893. };
  894. pwm1 {
  895. pwm1_pin: pwm1-pin {
  896. rockchip,pins = <0 8 RK_FUNC_2 &pcfg_pull_none>;
  897. };
  898. };
  899. pwm3 {
  900. pwm3_pin: pwm3-pin {
  901. rockchip,pins = <3 29 RK_FUNC_3 &pcfg_pull_none>;
  902. };
  903. };
  904. sdio0 {
  905. sdio0_bus1: sdio0-bus1 {
  906. rockchip,pins = <2 28 RK_FUNC_1 &pcfg_pull_up>;
  907. };
  908. sdio0_bus4: sdio0-bus4 {
  909. rockchip,pins = <2 28 RK_FUNC_1 &pcfg_pull_up>,
  910. <2 29 RK_FUNC_1 &pcfg_pull_up>,
  911. <2 30 RK_FUNC_1 &pcfg_pull_up>,
  912. <2 31 RK_FUNC_1 &pcfg_pull_up>;
  913. };
  914. sdio0_cmd: sdio0-cmd {
  915. rockchip,pins = <3 0 RK_FUNC_1 &pcfg_pull_up>;
  916. };
  917. sdio0_clk: sdio0-clk {
  918. rockchip,pins = <3 1 RK_FUNC_1 &pcfg_pull_none>;
  919. };
  920. sdio0_cd: sdio0-cd {
  921. rockchip,pins = <3 2 RK_FUNC_1 &pcfg_pull_up>;
  922. };
  923. sdio0_wp: sdio0-wp {
  924. rockchip,pins = <3 3 RK_FUNC_1 &pcfg_pull_up>;
  925. };
  926. sdio0_pwr: sdio0-pwr {
  927. rockchip,pins = <3 4 RK_FUNC_1 &pcfg_pull_up>;
  928. };
  929. sdio0_bkpwr: sdio0-bkpwr {
  930. rockchip,pins = <3 5 RK_FUNC_1 &pcfg_pull_up>;
  931. };
  932. sdio0_int: sdio0-int {
  933. rockchip,pins = <3 6 RK_FUNC_1 &pcfg_pull_up>;
  934. };
  935. };
  936. sdmmc {
  937. sdmmc_clk: sdmmc-clk {
  938. rockchip,pins = <2 9 RK_FUNC_1 &pcfg_pull_none>;
  939. };
  940. sdmmc_cmd: sdmmc-cmd {
  941. rockchip,pins = <2 10 RK_FUNC_1 &pcfg_pull_up>;
  942. };
  943. sdmmc_cd: sdmmc-cd {
  944. rockchip,pins = <2 11 RK_FUNC_1 &pcfg_pull_up>;
  945. };
  946. sdmmc_bus1: sdmmc-bus1 {
  947. rockchip,pins = <2 5 RK_FUNC_1 &pcfg_pull_up>;
  948. };
  949. sdmmc_bus4: sdmmc-bus4 {
  950. rockchip,pins = <2 5 RK_FUNC_1 &pcfg_pull_up>,
  951. <2 6 RK_FUNC_1 &pcfg_pull_up>,
  952. <2 7 RK_FUNC_1 &pcfg_pull_up>,
  953. <2 8 RK_FUNC_1 &pcfg_pull_up>;
  954. };
  955. };
  956. spdif {
  957. spdif_tx: spdif-tx {
  958. rockchip,pins = <2 RK_PC7 RK_FUNC_1 &pcfg_pull_none>;
  959. };
  960. };
  961. spi0 {
  962. spi0_clk: spi0-clk {
  963. rockchip,pins = <1 29 RK_FUNC_2 &pcfg_pull_up>;
  964. };
  965. spi0_cs0: spi0-cs0 {
  966. rockchip,pins = <1 24 RK_FUNC_3 &pcfg_pull_up>;
  967. };
  968. spi0_cs1: spi0-cs1 {
  969. rockchip,pins = <1 25 RK_FUNC_3 &pcfg_pull_up>;
  970. };
  971. spi0_tx: spi0-tx {
  972. rockchip,pins = <1 23 RK_FUNC_3 &pcfg_pull_up>;
  973. };
  974. spi0_rx: spi0-rx {
  975. rockchip,pins = <1 22 RK_FUNC_3 &pcfg_pull_up>;
  976. };
  977. };
  978. spi1 {
  979. spi1_clk: spi1-clk {
  980. rockchip,pins = <1 14 RK_FUNC_2 &pcfg_pull_up>;
  981. };
  982. spi1_cs0: spi1-cs0 {
  983. rockchip,pins = <1 15 RK_FUNC_2 &pcfg_pull_up>;
  984. };
  985. spi1_cs1: spi1-cs1 {
  986. rockchip,pins = <3 28 RK_FUNC_2 &pcfg_pull_up>;
  987. };
  988. spi1_rx: spi1-rx {
  989. rockchip,pins = <1 16 RK_FUNC_2 &pcfg_pull_up>;
  990. };
  991. spi1_tx: spi1-tx {
  992. rockchip,pins = <1 17 RK_FUNC_2 &pcfg_pull_up>;
  993. };
  994. };
  995. spi2 {
  996. spi2_clk: spi2-clk {
  997. rockchip,pins = <0 12 RK_FUNC_2 &pcfg_pull_up>;
  998. };
  999. spi2_cs0: spi2-cs0 {
  1000. rockchip,pins = <0 13 RK_FUNC_2 &pcfg_pull_up>;
  1001. };
  1002. spi2_rx: spi2-rx {
  1003. rockchip,pins = <0 10 RK_FUNC_2 &pcfg_pull_up>;
  1004. };
  1005. spi2_tx: spi2-tx {
  1006. rockchip,pins = <0 11 RK_FUNC_2 &pcfg_pull_up>;
  1007. };
  1008. };
  1009. tsadc {
  1010. otp_gpio: otp-gpio {
  1011. rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_none>;
  1012. };
  1013. otp_out: otp-out {
  1014. rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_none>;
  1015. };
  1016. };
  1017. uart0 {
  1018. uart0_xfer: uart0-xfer {
  1019. rockchip,pins = <2 24 RK_FUNC_1 &pcfg_pull_up>,
  1020. <2 25 RK_FUNC_1 &pcfg_pull_none>;
  1021. };
  1022. uart0_cts: uart0-cts {
  1023. rockchip,pins = <2 26 RK_FUNC_1 &pcfg_pull_none>;
  1024. };
  1025. uart0_rts: uart0-rts {
  1026. rockchip,pins = <2 27 RK_FUNC_1 &pcfg_pull_none>;
  1027. };
  1028. };
  1029. uart1 {
  1030. uart1_xfer: uart1-xfer {
  1031. rockchip,pins = <0 20 RK_FUNC_3 &pcfg_pull_up>,
  1032. <0 21 RK_FUNC_3 &pcfg_pull_none>;
  1033. };
  1034. uart1_cts: uart1-cts {
  1035. rockchip,pins = <0 22 RK_FUNC_3 &pcfg_pull_none>;
  1036. };
  1037. uart1_rts: uart1-rts {
  1038. rockchip,pins = <0 23 RK_FUNC_3 &pcfg_pull_none>;
  1039. };
  1040. };
  1041. uart2 {
  1042. uart2_xfer: uart2-xfer {
  1043. rockchip,pins = <2 6 RK_FUNC_2 &pcfg_pull_up>,
  1044. <2 5 RK_FUNC_2 &pcfg_pull_none>;
  1045. };
  1046. /* no rts / cts for uart2 */
  1047. };
  1048. uart3 {
  1049. uart3_xfer: uart3-xfer {
  1050. rockchip,pins = <3 29 RK_FUNC_2 &pcfg_pull_up>,
  1051. <3 30 RK_FUNC_3 &pcfg_pull_none>;
  1052. };
  1053. uart3_cts: uart3-cts {
  1054. rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none>;
  1055. };
  1056. uart3_rts: uart3-rts {
  1057. rockchip,pins = <3 17 RK_FUNC_2 &pcfg_pull_none>;
  1058. };
  1059. };
  1060. uart4 {
  1061. uart4_xfer: uart4-xfer {
  1062. rockchip,pins = <0 27 RK_FUNC_3 &pcfg_pull_up>,
  1063. <0 26 RK_FUNC_3 &pcfg_pull_none>;
  1064. };
  1065. uart4_cts: uart4-cts {
  1066. rockchip,pins = <0 24 RK_FUNC_3 &pcfg_pull_none>;
  1067. };
  1068. uart4_rts: uart4-rts {
  1069. rockchip,pins = <0 25 RK_FUNC_3 &pcfg_pull_none>;
  1070. };
  1071. };
  1072. };
  1073. };