rk3128.dtsi 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804
  1. /*
  2. * (C) Copyright 2017 Rockchip Electronics Co., Ltd
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  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/clock/rk3128-cru.h>
  11. #include "skeleton.dtsi"
  12. / {
  13. compatible = "rockchip,rk3128";
  14. rockchip,sram = <&sram>;
  15. interrupt-parent = <&gic>;
  16. #address-cells = <1>;
  17. #size-cells = <1>;
  18. aliases {
  19. gpio0 = &gpio0;
  20. gpio1 = &gpio1;
  21. gpio2 = &gpio2;
  22. gpio3 = &gpio3;
  23. i2c0 = &i2c0;
  24. i2c1 = &i2c1;
  25. i2c2 = &i2c2;
  26. i2c3 = &i2c3;
  27. spi0 = &spi0;
  28. serial0 = &uart0;
  29. serial1 = &uart1;
  30. serial2 = &uart2;
  31. mmc0 = &emmc;
  32. mmc1 = &sdmmc;
  33. };
  34. memory {
  35. device_type = "memory";
  36. reg = <0x60000000 0x40000000>;
  37. };
  38. arm-pmu {
  39. compatible = "arm,cortex-a7-pmu";
  40. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
  41. <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
  42. <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
  43. <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  44. };
  45. cpus {
  46. #address-cells = <1>;
  47. #size-cells = <0>;
  48. enable-method = "rockchip,rk3128-smp";
  49. cpu0:cpu@0x000 {
  50. device_type = "cpu";
  51. compatible = "arm,cortex-a7";
  52. reg = <0x000>;
  53. operating-points = <
  54. /* KHz uV */
  55. 816000 1000000
  56. >;
  57. #cooling-cells = <2>; /* min followed by max */
  58. clock-latency = <40000>;
  59. clocks = <&cru ARMCLK>;
  60. };
  61. cpu1:cpu@0x001 {
  62. device_type = "cpu";
  63. compatible = "arm,cortex-a7";
  64. reg = <0x001>;
  65. };
  66. cpu2:cpu@0x002 {
  67. device_type = "cpu";
  68. compatible = "arm,cortex-a7";
  69. reg = <0x002>;
  70. };
  71. cpu3:cpu@0x003 {
  72. device_type = "cpu";
  73. compatible = "arm,cortex-a7";
  74. reg = <0x003>;
  75. };
  76. };
  77. cpu_axi_bus: cpu_axi_bus {
  78. compatible = "rockchip,cpu_axi_bus";
  79. #address-cells = <1>;
  80. #size-cells = <1>;
  81. ranges;
  82. qos {
  83. #address-cells = <1>;
  84. #size-cells = <1>;
  85. ranges;
  86. crypto {
  87. reg = <0x10128080 0x20>;
  88. };
  89. core {
  90. reg = <0x1012a000 0x20>;
  91. };
  92. peri {
  93. reg = <0x1012c000 0x20>;
  94. };
  95. gpu {
  96. reg = <0x1012d000 0x20>;
  97. };
  98. vpu {
  99. reg = <0x1012e000 0x20>;
  100. };
  101. rga {
  102. reg = <0x1012f000 0x20>;
  103. };
  104. ebc {
  105. reg = <0x1012f080 0x20>;
  106. };
  107. iep {
  108. reg = <0x1012f100 0x20>;
  109. };
  110. lcdc {
  111. reg = <0x1012f180 0x20>;
  112. rockchip,priority = <3 3>;
  113. };
  114. vip {
  115. reg = <0x1012f200 0x20>;
  116. rockchip,priority = <3 3>;
  117. };
  118. };
  119. msch {
  120. #address-cells = <1>;
  121. #size-cells = <1>;
  122. ranges;
  123. msch@10128000 {
  124. reg = <0x10128000 0x20>;
  125. rockchip,read-latency = <0x3f>;
  126. };
  127. };
  128. };
  129. psci {
  130. compatible = "arm,psci";
  131. method = "smc";
  132. cpu_suspend = <0x84000001>;
  133. cpu_off = <0x84000002>;
  134. cpu_on = <0x84000003>;
  135. migrate = <0x84000005>;
  136. };
  137. amba {
  138. compatible = "arm,amba-bus";
  139. #address-cells = <1>;
  140. #size-cells = <1>;
  141. interrupt-parent = <&gic>;
  142. ranges;
  143. pdma: pdma@20078000 {
  144. compatible = "arm,pl330", "arm,primecell";
  145. reg = <0x20078000 0x4000>;
  146. arm,pl330-broken-no-flushp;//2
  147. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  148. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
  149. #dma-cells = <1>;
  150. clocks = <&cru ACLK_DMAC2>;
  151. clock-names = "apb_pclk";
  152. };
  153. };
  154. xin24m: xin24m {
  155. compatible = "fixed-clock";
  156. clock-frequency = <24000000>;
  157. clock-output-names = "xin24m";
  158. #clock-cells = <0>;
  159. };
  160. xin12m: xin12m {
  161. compatible = "fixed-clock";
  162. clocks = <&xin24m>;
  163. clock-frequency = <12000000>;
  164. clock-output-names = "xin12m";
  165. #clock-cells = <0>;
  166. };
  167. timer {
  168. compatible = "arm,armv7-timer";
  169. arm,cpu-registers-not-fw-configured;
  170. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  171. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  172. clock-frequency = <24000000>;
  173. };
  174. timer@20044000 {
  175. compatible = "arm,armv7-timer";
  176. reg = <0x20044000 0xb8>;
  177. interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
  178. rockchip,broadcast = <1>;
  179. };
  180. watchdog: wdt@2004c000 {
  181. compatible = "rockchip,watch dog";
  182. reg = <0x2004c000 0x100>;
  183. clock-names = "pclk_wdt";
  184. interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
  185. rockchip,irq = <1>;
  186. rockchip,timeout = <60>;
  187. rockchip,atboot = <1>;
  188. rockchip,debug = <0>;
  189. };
  190. reset: reset@20000110 {
  191. compatible = "rockchip,reset";
  192. reg = <0x20000110 0x24>;
  193. #reset-cells = <1>;
  194. };
  195. nandc: nandc@10500000 {
  196. compatible = "rockchip,rk-nandc";
  197. reg = <0x10500000 0x4000>;
  198. interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
  199. pinctrl-names = "default";
  200. pinctrl-0 = <&nandc_ale &nandc_cle &nandc_wrn &nandc_rdn &nandc_rdy &nandc_cs0 &nandc_data>;
  201. nandc_id = <0>;
  202. clocks = <&cru SCLK_NANDC>,
  203. <&cru HCLK_NANDC>,
  204. <&cru SRST_NANDC>;
  205. clock-names = "clk_nandc", "g_clk_nandc", "hclk_nandc";
  206. };
  207. dmc: dmc@20004000 {
  208. u-boot,dm-pre-reloc;
  209. compatible = "rockchip,rk3128-dmc", "syscon";
  210. reg = <0x0 0x20004000 0x0 0x1000>;
  211. };
  212. cru: clock-controller@20000000 {
  213. u-boot,dm-pre-reloc;
  214. compatible = "rockchip,rk3128-cru";
  215. reg = <0x20000000 0x1000>;
  216. rockchip,grf = <&grf>;
  217. #clock-cells = <1>;
  218. #reset-cells = <1>;
  219. assigned-clocks = <&cru PLL_GPLL>;
  220. assigned-clock-rates = <594000000>;
  221. };
  222. uart0: serial0@20060000 {
  223. compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart";
  224. reg = <0x20060000 0x100>;
  225. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  226. reg-shift = <2>;
  227. reg-io-width = <4>;
  228. clock-frequency = <24000000>;
  229. clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
  230. clock-names = "baudclk", "apb_pclk";
  231. pinctrl-names = "default";
  232. pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
  233. dmas = <&pdma 2>, <&pdma 3>;
  234. #dma-cells = <2>;
  235. };
  236. uart1: serial1@20064000 {
  237. compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart";
  238. reg = <0x20064000 0x100>;
  239. interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  240. reg-shift = <2>;
  241. reg-io-width = <4>;
  242. clock-frequency = <24000000>;
  243. clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
  244. clock-names = "baudclk", "apb_pclk";
  245. pinctrl-names = "default";
  246. pinctrl-0 = <&uart1_xfer>;
  247. dmas = <&pdma 4>, <&pdma 5>;
  248. #dma-cells = <2>;
  249. };
  250. uart2: serial2@20068000 {
  251. compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart";
  252. reg = <0x20068000 0x100>;
  253. interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
  254. reg-shift = <2>;
  255. reg-io-width = <4>;
  256. clock-frequency = <24000000>;
  257. clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
  258. clock-names = "baudclk", "apb_pclk";
  259. pinctrl-names = "default";
  260. pinctrl-0 = <&uart2_xfer>;
  261. dmas = <&pdma 6>, <&pdma 7>;
  262. #dma-cells = <2>;
  263. };
  264. saradc: saradc@2006c000 {
  265. compatible = "rockchip,saradc";
  266. reg = <0x2006c000 0x100>;
  267. interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
  268. #io-channel-cells = <1>;
  269. clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
  270. clock-names = "saradc", "apb_pclk";
  271. resets = <&cru SRST_SARADC>;
  272. reset-names = "saradc-apb";
  273. status = "disabled";
  274. };
  275. pwm0: pwm0@20050000 {
  276. compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
  277. reg = <0x20050000 0x10>;
  278. #pwm-cells = <2>;
  279. pinctrl-names = "default";
  280. pinctrl-0 = <&pwm0_pin>;
  281. clocks = <&cru PCLK_PWM>;
  282. clock-names = "pwm";
  283. };
  284. pwm1: pwm1@20050010 {
  285. compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
  286. reg = <0x20050010 0x10>;
  287. #pwm-cells = <2>;
  288. pinctrl-names = "default";
  289. pinctrl-0 = <&pwm1_pin>;
  290. clocks = <&cru PCLK_PWM>;
  291. clock-names = "pwm";
  292. };
  293. pwm2: pwm2@20050020 {
  294. compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
  295. reg = <0x20050020 0x10>;
  296. #pwm-cells = <2>;
  297. pinctrl-names = "default";
  298. pinctrl-0 = <&pwm2_pin>;
  299. clocks = <&cru PCLK_PWM>;
  300. clock-names = "pwm";
  301. };
  302. pwm3: pwm3@20050030 {
  303. compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
  304. reg = <0x20050030 0x10>;
  305. #pwm-cells = <2>;
  306. pinctrl-names = "default";
  307. pinctrl-0 = <&pwm3_pin>;
  308. clocks = <&cru PCLK_PWM>;
  309. clock-names = "pwm";
  310. };
  311. sram: sram@10080400 {
  312. compatible = "rockchip,rk3128-smp-sram", "mmio-sram";
  313. reg = <0x10080400 0x1C00>;
  314. map-exec;
  315. map-cacheable;
  316. };
  317. pmu: syscon@100a0000 {
  318. compatible = "rockchip,rk3128-pmu", "syscon", "simple-mfd";
  319. reg = <0x100a0000 0x1000>;
  320. #address-cells = <1>;
  321. #size-cells = <1>;
  322. };
  323. gic: interrupt-controller@10139000 {
  324. compatible = "arm,gic-400";
  325. interrupt-controller;
  326. #interrupt-cells = <3>;
  327. #address-cells = <0>;
  328. reg = <0x10139000 0x1000>,
  329. <0x1013a000 0x1000>,
  330. <0x1013c000 0x2000>,
  331. <0x1013e000 0x2000>;
  332. interrupts = <GIC_PPI 9 0xf04>;
  333. };
  334. u2phy: usb2-phy {
  335. compatible = "rockchip,rk3128-usb2phy";
  336. reg = <0x017c 0x0c>;
  337. rockchip,grf = <&grf>;
  338. clocks = <&cru SCLK_OTGPHY0>;
  339. clock-names = "phyclk";
  340. #clock-cells = <0>;
  341. clock-output-names = "usb480m_phy";
  342. #phy-cells = <1>;
  343. status = "disabled";
  344. u2phy_otg: otg-port {
  345. #phy-cells = <0>;
  346. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
  347. <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
  348. <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  349. interrupt-names = "otg-bvalid", "otg-id",
  350. "linestate";
  351. status = "disabled";
  352. };
  353. u2phy_host: host-port {
  354. #phy-cells = <0>;
  355. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  356. interrupt-names = "linestate";
  357. status = "disabled";
  358. };
  359. };
  360. usb_otg: usb@10180000 {
  361. compatible = "rockchip,rk3128-usb", "rockchip,rk3288-usb",
  362. "snps,dwc2";
  363. reg = <0x10180000 0x40000>;
  364. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  365. dr_mode = "otg";
  366. g-use-dma;
  367. hnp-srp-disable;
  368. phys = <&u2phy 0>;
  369. phy-names = "usb";
  370. status = "disabled";
  371. };
  372. usb_host_ehci: usb@101c0000 {
  373. compatible = "generic-ehci";
  374. reg = <0x101c0000 0x20000>;
  375. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  376. phys = <&u2phy 1>;
  377. phy-names = "usb";
  378. status = "disabled";
  379. };
  380. usb_host_ohci: usb@101e0000 {
  381. compatible = "generic-ohci";
  382. reg = <0x101e0000 0x20000>;
  383. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  384. phys = <&u2phy 1>;
  385. phy-names = "usb";
  386. status = "disabled";
  387. };
  388. sdmmc: dwmmc@10214000 {
  389. compatible = "rockchip,rk312x-dw-mshc", "rockchip,rk3288-dw-mshc";
  390. reg = <0x10214000 0x4000>;
  391. max-frequency = <150000000>;
  392. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  393. clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
  394. <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
  395. clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
  396. fifo-depth = <0x100>;
  397. pinctrl-names = "default";
  398. pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
  399. bus-width = <4>;
  400. status = "disabled";
  401. };
  402. emmc: dwmmc@1021c000 {
  403. u-boot,dm-pre-reloc;
  404. compatible = "rockchip,rk3128-dw-mshc", "rockchip,rk3288-dw-mshc";
  405. reg = <0x1021c000 0x4000>;
  406. max-frequency = <150000000>;
  407. interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
  408. clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
  409. <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
  410. clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
  411. bus-width = <8>;
  412. default-sample-phase = <158>;
  413. num-slots = <1>;
  414. fifo-depth = <0x100>;
  415. pinctrl-names = "default";
  416. pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
  417. resets = <&cru SRST_EMMC>;
  418. reset-names = "reset";
  419. status = "disabled";
  420. };
  421. i2c0: i2c0@20072000 {
  422. compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
  423. reg = <20072000 0x1000>;
  424. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
  425. #address-cells = <1>;
  426. #size-cells = <0>;
  427. clock-names = "i2c";
  428. clocks = <&cru PCLK_I2C0>;
  429. pinctrl-names = "default";
  430. pinctrl-0 = <&i2c0_xfer>;
  431. };
  432. i2c1: i2c1@20056000 {
  433. compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
  434. reg = <0x20056000 0x1000>;
  435. interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
  436. #address-cells = <1>;
  437. #size-cells = <0>;
  438. clock-names = "i2c";
  439. clocks = <&cru PCLK_I2C1>;
  440. pinctrl-names = "default";
  441. pinctrl-0 = <&i2c1_xfer>;
  442. };
  443. i2c2: i2c2@2005a000 {
  444. compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
  445. reg = <0x2005a000 0x1000>;
  446. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  447. #address-cells = <1>;
  448. #size-cells = <0>;
  449. clock-names = "i2c";
  450. clocks = <&cru PCLK_I2C2>;
  451. pinctrl-names = "default";
  452. pinctrl-0 = <&i2c2_xfer>;
  453. };
  454. i2c3: i2c3@2005e000 {
  455. compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
  456. reg = <0x2005e000 0x1000>;
  457. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  458. #address-cells = <1>;
  459. #size-cells = <0>;
  460. clock-names = "i2c";
  461. clocks = <&cru PCLK_I2C3>;
  462. pinctrl-names = "default";
  463. pinctrl-0 = <&i2c3_xfer>;
  464. };
  465. spi0: spi@20074000 {
  466. compatible = "rockchip,rk3128-spi", "rockchip,rk3288-spi";
  467. reg = <0x20074000 0x1000>;
  468. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  469. #address-cells = <1>;
  470. #size-cells = <0>;
  471. pinctrl-names = "default";
  472. pinctrl-0 = <&spi0_txd_mux0 &spi0_rxd_mux0 &spi0_clk_mux0 &spi0_cs0_mux0 &spi0_cs1_mux0>;
  473. rockchip,spi-src-clk = <0>;
  474. num-cs = <2>;
  475. clocks =<&cru SCLK_SPI>, <&cru PCLK_SPI>;
  476. clock-names = "spi","pclk_spi0";
  477. dmas = <&pdma 8>, <&pdma 9>;
  478. #dma-cells = <2>;
  479. dma-names = "tx", "rx";
  480. };
  481. grf: syscon@20008000 {
  482. u-boot,dm-pre-reloc;
  483. compatible = "rockchip,rk3128-grf", "syscon";
  484. reg = <0x20008000 0x1000>;
  485. };
  486. pinctrl: pinctrl@20008000 {
  487. compatible = "rockchip,rk3128-pinctrl";
  488. reg = <0x20008000 0xA8>,
  489. <0x200080A8 0x4C>,
  490. <0x20008118 0x20>,
  491. <0x20008100 0x04>;
  492. reg-names = "base", "mux", "pull", "drv";
  493. rockchip,grf = <&grf>;
  494. #address-cells = <1>;
  495. #size-cells = <1>;
  496. ranges;
  497. gpio0: gpio0@2007c000 {
  498. compatible = "rockchip,gpio-bank";
  499. reg = <0x2007c000 0x100>;
  500. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  501. clocks = <&cru PCLK_GPIO0>;
  502. gpio-controller;
  503. #gpio-cells = <2>;
  504. interrupt-controller;
  505. #interrupt-cells = <2>;
  506. };
  507. gpio1: gpio1@20080000 {
  508. compatible = "rockchip,gpio-bank";
  509. reg = <0x20080000 0x100>;
  510. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  511. clocks = <&cru PCLK_GPIO1>;
  512. gpio-controller;
  513. #gpio-cells = <2>;
  514. interrupt-controller;
  515. #interrupt-cells = <2>;
  516. };
  517. gpio2: gpio2@20084000 {
  518. compatible = "rockchip,gpio-bank";
  519. reg = <0x20084000 0x100>;
  520. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  521. clocks = <&cru PCLK_GPIO2>;
  522. gpio-controller;
  523. #gpio-cells = <2>;
  524. interrupt-controller;
  525. #interrupt-cells = <2>;
  526. };
  527. gpio3: gpio2@20088000 {
  528. compatible = "rockchip,gpio-bank";
  529. reg = <0x20088000 0x100>;
  530. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  531. clocks = <&cru PCLK_GPIO3>;
  532. gpio-controller;
  533. #gpio-cells = <2>;
  534. interrupt-controller;
  535. #interrupt-cells = <2>;
  536. };
  537. pcfg_pull_up: pcfg-pull-up {
  538. bias-pull-up;
  539. };
  540. pcfg_pull_down: pcfg-pull-down {
  541. bias-pull-down;
  542. };
  543. pcfg_pull_none: pcfg-pull-none {
  544. bias-disable;
  545. };
  546. emmc {
  547. /*
  548. * We run eMMC at max speed; bump up drive strength.
  549. * We also have external pulls, so disable the internal ones.
  550. */
  551. emmc_clk: emmc-clk {
  552. rockchip,pins = <2 7 RK_FUNC_2 &pcfg_pull_none>;
  553. };
  554. emmc_cmd: emmc-cmd {
  555. rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
  556. };
  557. emmc_pwren: emmc-pwren {
  558. rockchip,pins = <2 5 RK_FUNC_2 &pcfg_pull_none>;
  559. };
  560. emmc_bus8: emmc-bus8 {
  561. rockchip,pins = <1 24 RK_FUNC_2 &pcfg_pull_none>,
  562. <1 25 RK_FUNC_2 &pcfg_pull_none>,
  563. <1 26 RK_FUNC_2 &pcfg_pull_none>,
  564. <1 27 RK_FUNC_2 &pcfg_pull_none>,
  565. <1 28 RK_FUNC_2 &pcfg_pull_none>,
  566. <1 29 RK_FUNC_2 &pcfg_pull_none>,
  567. <1 30 RK_FUNC_2 &pcfg_pull_none>,
  568. <1 31 RK_FUNC_2 &pcfg_pull_none>;
  569. };
  570. };
  571. nandc{
  572. nandc_ale:nandc-ale {
  573. rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_none>;
  574. };
  575. nandc_cle:nandc-cle {
  576. rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_none>;
  577. };
  578. nandc_wrn:nandc-wrn {
  579. rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_none>;
  580. };
  581. nandc_rdn:nandc-rdn {
  582. rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_none>;
  583. };
  584. nandc_rdy:nandc-rdy {
  585. rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_none>;
  586. };
  587. nandc_cs0:nandc-cs0 {
  588. rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_none>;
  589. };
  590. nandc_data: nandc-data {
  591. rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_none>;
  592. };
  593. };
  594. uart0 {
  595. uart0_xfer: uart0-xfer {
  596. rockchip,pins = <0 16 RK_FUNC_1 &pcfg_pull_none>,
  597. <0 17 RK_FUNC_1 &pcfg_pull_none>;
  598. };
  599. uart0_cts: uart0-cts {
  600. rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_none>;
  601. };
  602. uart0_rts: uart0-rts {
  603. rockchip,pins = <0 19 RK_FUNC_1 &pcfg_pull_none>;
  604. };
  605. };
  606. uart1 {
  607. uart1_xfer: uart1-xfer {
  608. rockchip,pins = <2 22 RK_FUNC_1 &pcfg_pull_none>,
  609. <2 23 RK_FUNC_1 &pcfg_pull_none>;
  610. };
  611. };
  612. uart2 {
  613. uart2_xfer: uart2-xfer {
  614. rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_none>,
  615. <1 19 RK_FUNC_2 &pcfg_pull_none>;
  616. };
  617. };
  618. sdmmc {
  619. sdmmc_clk: sdmmc-clk {
  620. rockchip,pins = <1 RK_PC0 1 &pcfg_pull_none>;
  621. };
  622. sdmmc_cmd: sdmmc-cmd {
  623. rockchip,pins = <1 RK_PC1 1 &pcfg_pull_up>;
  624. };
  625. sdmmc_wp: sdmmc-wp {
  626. rockchip,pins = <1 RK_PA7 1 &pcfg_pull_up>;
  627. };
  628. sdmmc_pwren: sdmmc-pwren {
  629. rockchip,pins = <1 RK_PB6 1 &pcfg_pull_up>;
  630. };
  631. sdmmc_bus4: sdmmc-bus4 {
  632. rockchip,pins = <1 RK_PC2 1 &pcfg_pull_up>,
  633. <1 RK_PC3 1 &pcfg_pull_up>,
  634. <1 RK_PC4 1 &pcfg_pull_up>,
  635. <1 RK_PC5 1 &pcfg_pull_up>;
  636. };
  637. };
  638. pwm0 {
  639. pwm0_pin: pwm0-pin {
  640. rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
  641. };
  642. };
  643. pwm1 {
  644. pwm1_pin: pwm1-pin {
  645. rockchip,pins = <0 1 RK_FUNC_2 &pcfg_pull_none>;
  646. };
  647. };
  648. pwm2 {
  649. pwm2_pin: pwm2-pin {
  650. rockchip,pins = <0 1 2 &pcfg_pull_none>;
  651. };
  652. };
  653. pwm3 {
  654. pwm3_pin: pwm3-pin {
  655. rockchip,pins = <0 27 1 &pcfg_pull_none>;
  656. };
  657. };
  658. i2c0 {
  659. i2c0_xfer: i2c0-xfer {
  660. rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>,
  661. <0 1 RK_FUNC_1 &pcfg_pull_none>;
  662. };
  663. };
  664. i2c1 {
  665. i2c1_xfer: i2c1-xfer {
  666. rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_none>,
  667. <0 3 RK_FUNC_1 &pcfg_pull_none>;
  668. };
  669. };
  670. i2c2 {
  671. i2c2_xfer: i2c2-xfer {
  672. rockchip,pins = <2 20 3 &pcfg_pull_none>,
  673. <2 21 3 &pcfg_pull_none>;
  674. };
  675. };
  676. i2c3 {
  677. i2c3_xfer: i2c3-xfer {
  678. rockchip,pins = <0 6 RK_FUNC_1 &pcfg_pull_none>,
  679. <0 7 RK_FUNC_1 &pcfg_pull_none>;
  680. };
  681. };
  682. spi0 {
  683. spi0_txd_mux0:spi0-txd-mux0 {
  684. rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
  685. };
  686. spi0_rxd_mux0:spi0-rxd-mux0 {
  687. rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
  688. };
  689. spi0_clk_mux0:spi0-clk-mux0 {
  690. rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
  691. };
  692. spi0_cs0_mux0:spi0-cs0-mux0 {
  693. rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
  694. };
  695. spi0_cs1_mux0:spi0-cs1-mux0 {
  696. rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
  697. };
  698. };
  699. };
  700. };