rk3288.dtsi 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975
  1. /*
  2. * This program is free software; you can redistribute it and/or modify
  3. * it under the terms of the GNU General Public License as published by
  4. * the Free Software Foundation; either version 2 of the License, or
  5. * (at your option) any later version.
  6. *
  7. * This program is distributed in the hope that it will be useful,
  8. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. * GNU General Public License for more details.
  11. */
  12. #include <dt-bindings/gpio/gpio.h>
  13. #include <dt-bindings/interrupt-controller/irq.h>
  14. #include <dt-bindings/interrupt-controller/arm-gic.h>
  15. #include <dt-bindings/pinctrl/rockchip.h>
  16. #include <dt-bindings/clock/rk3288-cru.h>
  17. #include "skeleton.dtsi"
  18. / {
  19. compatible = "rockchip,rk3288";
  20. interrupt-parent = <&gic>;
  21. aliases {
  22. i2c0 = &i2c0;
  23. i2c1 = &i2c1;
  24. i2c2 = &i2c2;
  25. i2c3 = &i2c3;
  26. i2c4 = &i2c4;
  27. i2c5 = &i2c5;
  28. mshc0 = &emmc;
  29. mshc1 = &sdmmc;
  30. mshc2 = &sdio0;
  31. mshc3 = &sdio1;
  32. serial0 = &uart0;
  33. serial1 = &uart1;
  34. serial2 = &uart2;
  35. serial3 = &uart3;
  36. serial4 = &uart4;
  37. spi0 = &spi0;
  38. spi1 = &spi1;
  39. spi2 = &spi2;
  40. };
  41. cpus {
  42. #address-cells = <1>;
  43. #size-cells = <0>;
  44. cpu@500 {
  45. device_type = "cpu";
  46. compatible = "arm,cortex-a12";
  47. reg = <0x500>;
  48. };
  49. cpu@501 {
  50. device_type = "cpu";
  51. compatible = "arm,cortex-a12";
  52. reg = <0x501>;
  53. };
  54. cpu@502 {
  55. device_type = "cpu";
  56. compatible = "arm,cortex-a12";
  57. reg = <0x502>;
  58. };
  59. cpu@503 {
  60. device_type = "cpu";
  61. compatible = "arm,cortex-a12";
  62. reg = <0x503>;
  63. };
  64. };
  65. amba {
  66. compatible = "arm,amba-bus";
  67. #address-cells = <1>;
  68. #size-cells = <1>;
  69. ranges;
  70. dmac_peri: dma-controller@ff250000 {
  71. compatible = "arm,pl330", "arm,primecell";
  72. reg = <0xff250000 0x4000>;
  73. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
  74. <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
  75. #dma-cells = <1>;
  76. clocks = <&cru ACLK_DMAC2>;
  77. clock-names = "apb_pclk";
  78. };
  79. dmac_bus_ns: dma-controller@ff600000 {
  80. compatible = "arm,pl330", "arm,primecell";
  81. reg = <0xff600000 0x4000>;
  82. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  83. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
  84. #dma-cells = <1>;
  85. clocks = <&cru ACLK_DMAC1>;
  86. clock-names = "apb_pclk";
  87. status = "disabled";
  88. };
  89. dmac_bus_s: dma-controller@ffb20000 {
  90. compatible = "arm,pl330", "arm,primecell";
  91. reg = <0xffb20000 0x4000>;
  92. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  93. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
  94. #dma-cells = <1>;
  95. clocks = <&cru ACLK_DMAC1>;
  96. clock-names = "apb_pclk";
  97. };
  98. };
  99. xin24m: oscillator {
  100. compatible = "fixed-clock";
  101. clock-frequency = <24000000>;
  102. clock-output-names = "xin24m";
  103. #clock-cells = <0>;
  104. };
  105. timer {
  106. compatible = "arm,armv7-timer";
  107. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  108. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  109. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  110. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  111. clock-frequency = <24000000>;
  112. };
  113. sdmmc: dwmmc@ff0c0000 {
  114. compatible = "rockchip,rk3288-dw-mshc";
  115. clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
  116. clock-names = "biu", "ciu";
  117. fifo-depth = <0x100>;
  118. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  119. reg = <0xff0c0000 0x4000>;
  120. status = "disabled";
  121. };
  122. sdio0: dwmmc@ff0d0000 {
  123. compatible = "rockchip,rk3288-dw-mshc";
  124. clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>;
  125. clock-names = "biu", "ciu";
  126. fifo-depth = <0x100>;
  127. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  128. reg = <0xff0d0000 0x4000>;
  129. status = "disabled";
  130. };
  131. sdio1: dwmmc@ff0e0000 {
  132. compatible = "rockchip,rk3288-dw-mshc";
  133. clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>;
  134. clock-names = "biu", "ciu";
  135. fifo-depth = <0x100>;
  136. interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
  137. reg = <0xff0e0000 0x4000>;
  138. status = "disabled";
  139. };
  140. emmc: dwmmc@ff0f0000 {
  141. compatible = "rockchip,rk3288-dw-mshc";
  142. clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>;
  143. clock-names = "biu", "ciu";
  144. fifo-depth = <0x100>;
  145. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  146. reg = <0xff0f0000 0x4000>;
  147. status = "disabled";
  148. };
  149. saradc: saradc@ff100000 {
  150. compatible = "rockchip,saradc";
  151. reg = <0xff100000 0x100>;
  152. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  153. #io-channel-cells = <1>;
  154. clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
  155. clock-names = "saradc", "apb_pclk";
  156. status = "disabled";
  157. };
  158. spi0: spi@ff110000 {
  159. compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
  160. clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
  161. clock-names = "spiclk", "apb_pclk";
  162. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  163. pinctrl-names = "default";
  164. pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
  165. reg = <0xff110000 0x1000>;
  166. #address-cells = <1>;
  167. #size-cells = <0>;
  168. status = "disabled";
  169. };
  170. spi1: spi@ff120000 {
  171. compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
  172. clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
  173. clock-names = "spiclk", "apb_pclk";
  174. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  175. pinctrl-names = "default";
  176. pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
  177. reg = <0xff120000 0x1000>;
  178. #address-cells = <1>;
  179. #size-cells = <0>;
  180. status = "disabled";
  181. };
  182. spi2: spi@ff130000 {
  183. compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
  184. clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
  185. clock-names = "spiclk", "apb_pclk";
  186. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  187. pinctrl-names = "default";
  188. pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
  189. reg = <0xff130000 0x1000>;
  190. #address-cells = <1>;
  191. #size-cells = <0>;
  192. status = "disabled";
  193. };
  194. i2c1: i2c@ff140000 {
  195. compatible = "rockchip,rk3288-i2c";
  196. reg = <0xff140000 0x1000>;
  197. interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
  198. #address-cells = <1>;
  199. #size-cells = <0>;
  200. clock-names = "i2c";
  201. clocks = <&cru PCLK_I2C1>;
  202. pinctrl-names = "default";
  203. pinctrl-0 = <&i2c1_xfer>;
  204. status = "disabled";
  205. };
  206. i2c3: i2c@ff150000 {
  207. compatible = "rockchip,rk3288-i2c";
  208. reg = <0xff150000 0x1000>;
  209. interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
  210. #address-cells = <1>;
  211. #size-cells = <0>;
  212. clock-names = "i2c";
  213. clocks = <&cru PCLK_I2C3>;
  214. pinctrl-names = "default";
  215. pinctrl-0 = <&i2c3_xfer>;
  216. status = "disabled";
  217. };
  218. i2c4: i2c@ff160000 {
  219. compatible = "rockchip,rk3288-i2c";
  220. reg = <0xff160000 0x1000>;
  221. interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
  222. #address-cells = <1>;
  223. #size-cells = <0>;
  224. clock-names = "i2c";
  225. clocks = <&cru PCLK_I2C4>;
  226. pinctrl-names = "default";
  227. pinctrl-0 = <&i2c4_xfer>;
  228. status = "disabled";
  229. };
  230. i2c5: i2c@ff170000 {
  231. compatible = "rockchip,rk3288-i2c";
  232. reg = <0xff170000 0x1000>;
  233. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
  234. #address-cells = <1>;
  235. #size-cells = <0>;
  236. clock-names = "i2c";
  237. clocks = <&cru PCLK_I2C5>;
  238. pinctrl-names = "default";
  239. pinctrl-0 = <&i2c5_xfer>;
  240. status = "disabled";
  241. };
  242. uart0: serial@ff180000 {
  243. compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
  244. reg = <0xff180000 0x100>;
  245. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  246. reg-shift = <2>;
  247. reg-io-width = <4>;
  248. clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
  249. clock-names = "baudclk", "apb_pclk";
  250. pinctrl-names = "default";
  251. pinctrl-0 = <&uart0_xfer>;
  252. status = "disabled";
  253. };
  254. uart1: serial@ff190000 {
  255. compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
  256. reg = <0xff190000 0x100>;
  257. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  258. reg-shift = <2>;
  259. reg-io-width = <4>;
  260. clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
  261. clock-names = "baudclk", "apb_pclk";
  262. pinctrl-names = "default";
  263. pinctrl-0 = <&uart1_xfer>;
  264. status = "disabled";
  265. };
  266. uart2: serial@ff690000 {
  267. compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
  268. reg = <0xff690000 0x100>;
  269. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  270. reg-shift = <2>;
  271. reg-io-width = <4>;
  272. clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
  273. clock-names = "baudclk", "apb_pclk";
  274. pinctrl-names = "default";
  275. pinctrl-0 = <&uart2_xfer>;
  276. status = "disabled";
  277. };
  278. uart3: serial@ff1b0000 {
  279. compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
  280. reg = <0xff1b0000 0x100>;
  281. interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
  282. reg-shift = <2>;
  283. reg-io-width = <4>;
  284. clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
  285. clock-names = "baudclk", "apb_pclk";
  286. pinctrl-names = "default";
  287. pinctrl-0 = <&uart3_xfer>;
  288. status = "disabled";
  289. };
  290. uart4: serial@ff1c0000 {
  291. compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
  292. reg = <0xff1c0000 0x100>;
  293. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
  294. reg-shift = <2>;
  295. reg-io-width = <4>;
  296. clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
  297. clock-names = "baudclk", "apb_pclk";
  298. pinctrl-names = "default";
  299. pinctrl-0 = <&uart4_xfer>;
  300. status = "disabled";
  301. };
  302. usb_host0_ehci: usb@ff500000 {
  303. compatible = "generic-ehci";
  304. reg = <0xff500000 0x100>;
  305. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
  306. clocks = <&cru HCLK_USBHOST0>;
  307. clock-names = "usbhost";
  308. status = "disabled";
  309. };
  310. /* NOTE: ohci@ff520000 doesn't actually work on hardware */
  311. usb_host1: usb@ff540000 {
  312. compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
  313. "snps,dwc2";
  314. reg = <0xff540000 0x40000>;
  315. interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
  316. clocks = <&cru HCLK_USBHOST1>;
  317. clock-names = "otg";
  318. status = "disabled";
  319. };
  320. usb_otg: usb@ff580000 {
  321. compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
  322. "snps,dwc2";
  323. reg = <0xff580000 0x40000>;
  324. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  325. clocks = <&cru HCLK_OTG0>;
  326. clock-names = "otg";
  327. status = "disabled";
  328. };
  329. usb_hsic: usb@ff5c0000 {
  330. compatible = "generic-ehci";
  331. reg = <0xff5c0000 0x100>;
  332. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  333. clocks = <&cru HCLK_HSIC>;
  334. clock-names = "usbhost";
  335. status = "disabled";
  336. };
  337. i2c0: i2c@ff650000 {
  338. compatible = "rockchip,rk3288-i2c";
  339. reg = <0xff650000 0x1000>;
  340. interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
  341. #address-cells = <1>;
  342. #size-cells = <0>;
  343. clock-names = "i2c";
  344. clocks = <&cru PCLK_I2C0>;
  345. pinctrl-names = "default";
  346. pinctrl-0 = <&i2c0_xfer>;
  347. status = "disabled";
  348. };
  349. i2c2: i2c@ff660000 {
  350. compatible = "rockchip,rk3288-i2c";
  351. reg = <0xff660000 0x1000>;
  352. interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
  353. #address-cells = <1>;
  354. #size-cells = <0>;
  355. clock-names = "i2c";
  356. clocks = <&cru PCLK_I2C2>;
  357. pinctrl-names = "default";
  358. pinctrl-0 = <&i2c2_xfer>;
  359. status = "disabled";
  360. };
  361. pwm0: pwm@ff680000 {
  362. compatible = "rockchip,rk3288-pwm";
  363. reg = <0xff680000 0x10>;
  364. #pwm-cells = <3>;
  365. pinctrl-names = "default";
  366. pinctrl-0 = <&pwm0_pin>;
  367. clocks = <&cru PCLK_PWM>;
  368. clock-names = "pwm";
  369. status = "disabled";
  370. };
  371. pwm1: pwm@ff680010 {
  372. compatible = "rockchip,rk3288-pwm";
  373. reg = <0xff680010 0x10>;
  374. #pwm-cells = <3>;
  375. pinctrl-names = "default";
  376. pinctrl-0 = <&pwm1_pin>;
  377. clocks = <&cru PCLK_PWM>;
  378. clock-names = "pwm";
  379. status = "disabled";
  380. };
  381. pwm2: pwm@ff680020 {
  382. compatible = "rockchip,rk3288-pwm";
  383. reg = <0xff680020 0x10>;
  384. #pwm-cells = <3>;
  385. pinctrl-names = "default";
  386. pinctrl-0 = <&pwm2_pin>;
  387. clocks = <&cru PCLK_PWM>;
  388. clock-names = "pwm";
  389. status = "disabled";
  390. };
  391. pwm3: pwm@ff680030 {
  392. compatible = "rockchip,rk3288-pwm";
  393. reg = <0xff680030 0x10>;
  394. #pwm-cells = <2>;
  395. pinctrl-names = "default";
  396. pinctrl-0 = <&pwm3_pin>;
  397. clocks = <&cru PCLK_PWM>;
  398. clock-names = "pwm";
  399. status = "disabled";
  400. };
  401. pmu: power-management@ff730000 {
  402. compatible = "rockchip,rk3288-pmu", "syscon";
  403. reg = <0xff730000 0x100>;
  404. };
  405. sgrf: syscon@ff740000 {
  406. compatible = "rockchip,rk3288-sgrf", "syscon";
  407. reg = <0xff740000 0x1000>;
  408. };
  409. cru: clock-controller@ff760000 {
  410. compatible = "rockchip,rk3288-cru";
  411. reg = <0xff760000 0x1000>;
  412. rockchip,grf = <&grf>;
  413. #clock-cells = <1>;
  414. #reset-cells = <1>;
  415. };
  416. grf: syscon@ff770000 {
  417. compatible = "rockchip,rk3288-grf", "syscon";
  418. reg = <0xff770000 0x1000>;
  419. };
  420. wdt: watchdog@ff800000 {
  421. compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
  422. reg = <0xff800000 0x100>;
  423. interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
  424. status = "disabled";
  425. };
  426. i2s: i2s@ff890000 {
  427. compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
  428. reg = <0xff890000 0x10000>;
  429. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  430. #address-cells = <1>;
  431. #size-cells = <0>;
  432. dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
  433. dma-names = "tx", "rx";
  434. clock-names = "i2s_hclk", "i2s_clk";
  435. clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
  436. pinctrl-names = "default";
  437. pinctrl-0 = <&i2s0_bus>;
  438. status = "disabled";
  439. };
  440. gic: interrupt-controller@ffc01000 {
  441. compatible = "arm,gic-400";
  442. interrupt-controller;
  443. #interrupt-cells = <3>;
  444. #address-cells = <0>;
  445. reg = <0xffc01000 0x1000>,
  446. <0xffc02000 0x1000>,
  447. <0xffc04000 0x2000>,
  448. <0xffc06000 0x2000>;
  449. interrupts = <GIC_PPI 9 0xf04>;
  450. };
  451. pinctrl: pinctrl {
  452. compatible = "rockchip,rk3288-pinctrl";
  453. rockchip,grf = <&grf>;
  454. rockchip,pmu = <&pmu>;
  455. #address-cells = <1>;
  456. #size-cells = <1>;
  457. ranges;
  458. gpio0: gpio0@ff750000 {
  459. compatible = "rockchip,gpio-bank";
  460. reg = <0xff750000 0x100>;
  461. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  462. clocks = <&cru PCLK_GPIO0>;
  463. gpio-controller;
  464. #gpio-cells = <2>;
  465. interrupt-controller;
  466. #interrupt-cells = <2>;
  467. };
  468. gpio1: gpio1@ff780000 {
  469. compatible = "rockchip,gpio-bank";
  470. reg = <0xff780000 0x100>;
  471. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  472. clocks = <&cru PCLK_GPIO1>;
  473. gpio-controller;
  474. #gpio-cells = <2>;
  475. interrupt-controller;
  476. #interrupt-cells = <2>;
  477. };
  478. gpio2: gpio2@ff790000 {
  479. compatible = "rockchip,gpio-bank";
  480. reg = <0xff790000 0x100>;
  481. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  482. clocks = <&cru PCLK_GPIO2>;
  483. gpio-controller;
  484. #gpio-cells = <2>;
  485. interrupt-controller;
  486. #interrupt-cells = <2>;
  487. };
  488. gpio3: gpio3@ff7a0000 {
  489. compatible = "rockchip,gpio-bank";
  490. reg = <0xff7a0000 0x100>;
  491. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  492. clocks = <&cru PCLK_GPIO3>;
  493. gpio-controller;
  494. #gpio-cells = <2>;
  495. interrupt-controller;
  496. #interrupt-cells = <2>;
  497. };
  498. gpio4: gpio4@ff7b0000 {
  499. compatible = "rockchip,gpio-bank";
  500. reg = <0xff7b0000 0x100>;
  501. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  502. clocks = <&cru PCLK_GPIO4>;
  503. gpio-controller;
  504. #gpio-cells = <2>;
  505. interrupt-controller;
  506. #interrupt-cells = <2>;
  507. };
  508. gpio5: gpio5@ff7c0000 {
  509. compatible = "rockchip,gpio-bank";
  510. reg = <0xff7c0000 0x100>;
  511. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
  512. clocks = <&cru PCLK_GPIO5>;
  513. gpio-controller;
  514. #gpio-cells = <2>;
  515. interrupt-controller;
  516. #interrupt-cells = <2>;
  517. };
  518. gpio6: gpio6@ff7d0000 {
  519. compatible = "rockchip,gpio-bank";
  520. reg = <0xff7d0000 0x100>;
  521. interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
  522. clocks = <&cru PCLK_GPIO6>;
  523. gpio-controller;
  524. #gpio-cells = <2>;
  525. interrupt-controller;
  526. #interrupt-cells = <2>;
  527. };
  528. gpio7: gpio7@ff7e0000 {
  529. compatible = "rockchip,gpio-bank";
  530. reg = <0xff7e0000 0x100>;
  531. interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
  532. clocks = <&cru PCLK_GPIO7>;
  533. gpio-controller;
  534. #gpio-cells = <2>;
  535. interrupt-controller;
  536. #interrupt-cells = <2>;
  537. };
  538. gpio8: gpio8@ff7f0000 {
  539. compatible = "rockchip,gpio-bank";
  540. reg = <0xff7f0000 0x100>;
  541. interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
  542. clocks = <&cru PCLK_GPIO8>;
  543. gpio-controller;
  544. #gpio-cells = <2>;
  545. interrupt-controller;
  546. #interrupt-cells = <2>;
  547. };
  548. pcfg_pull_up: pcfg-pull-up {
  549. bias-pull-up;
  550. };
  551. pcfg_pull_down: pcfg-pull-down {
  552. bias-pull-down;
  553. };
  554. pcfg_pull_none: pcfg-pull-none {
  555. bias-disable;
  556. };
  557. i2c0 {
  558. i2c0_xfer: i2c0-xfer {
  559. rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
  560. <0 16 RK_FUNC_1 &pcfg_pull_none>;
  561. };
  562. };
  563. i2c1 {
  564. i2c1_xfer: i2c1-xfer {
  565. rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
  566. <8 5 RK_FUNC_1 &pcfg_pull_none>;
  567. };
  568. };
  569. i2c2 {
  570. i2c2_xfer: i2c2-xfer {
  571. rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
  572. <6 10 RK_FUNC_1 &pcfg_pull_none>;
  573. };
  574. };
  575. i2c3 {
  576. i2c3_xfer: i2c3-xfer {
  577. rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
  578. <2 17 RK_FUNC_1 &pcfg_pull_none>;
  579. };
  580. };
  581. i2c4 {
  582. i2c4_xfer: i2c4-xfer {
  583. rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
  584. <7 18 RK_FUNC_1 &pcfg_pull_none>;
  585. };
  586. };
  587. i2c5 {
  588. i2c5_xfer: i2c5-xfer {
  589. rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
  590. <7 20 RK_FUNC_1 &pcfg_pull_none>;
  591. };
  592. };
  593. i2s0 {
  594. i2s0_bus: i2s0-bus {
  595. rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
  596. <6 1 RK_FUNC_1 &pcfg_pull_none>,
  597. <6 2 RK_FUNC_1 &pcfg_pull_none>,
  598. <6 3 RK_FUNC_1 &pcfg_pull_none>,
  599. <6 4 RK_FUNC_1 &pcfg_pull_none>,
  600. <6 8 RK_FUNC_1 &pcfg_pull_none>;
  601. };
  602. };
  603. sdmmc {
  604. sdmmc_clk: sdmmc-clk {
  605. rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
  606. };
  607. sdmmc_cmd: sdmmc-cmd {
  608. rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
  609. };
  610. sdmmc_cd: sdmcc-cd {
  611. rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
  612. };
  613. sdmmc_bus1: sdmmc-bus1 {
  614. rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
  615. };
  616. sdmmc_bus4: sdmmc-bus4 {
  617. rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
  618. <6 17 RK_FUNC_1 &pcfg_pull_up>,
  619. <6 18 RK_FUNC_1 &pcfg_pull_up>,
  620. <6 19 RK_FUNC_1 &pcfg_pull_up>;
  621. };
  622. };
  623. sdio0 {
  624. sdio0_bus1: sdio0-bus1 {
  625. rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
  626. };
  627. sdio0_bus4: sdio0-bus4 {
  628. rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
  629. <4 21 RK_FUNC_1 &pcfg_pull_up>,
  630. <4 22 RK_FUNC_1 &pcfg_pull_up>,
  631. <4 23 RK_FUNC_1 &pcfg_pull_up>;
  632. };
  633. sdio0_cmd: sdio0-cmd {
  634. rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
  635. };
  636. sdio0_clk: sdio0-clk {
  637. rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
  638. };
  639. sdio0_cd: sdio0-cd {
  640. rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
  641. };
  642. sdio0_wp: sdio0-wp {
  643. rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
  644. };
  645. sdio0_pwr: sdio0-pwr {
  646. rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
  647. };
  648. sdio0_bkpwr: sdio0-bkpwr {
  649. rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
  650. };
  651. sdio0_int: sdio0-int {
  652. rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
  653. };
  654. };
  655. sdio1 {
  656. sdio1_bus1: sdio1-bus1 {
  657. rockchip,pins = <3 24 4 &pcfg_pull_up>;
  658. };
  659. sdio1_bus4: sdio1-bus4 {
  660. rockchip,pins = <3 24 4 &pcfg_pull_up>,
  661. <3 25 4 &pcfg_pull_up>,
  662. <3 26 4 &pcfg_pull_up>,
  663. <3 27 4 &pcfg_pull_up>;
  664. };
  665. sdio1_cd: sdio1-cd {
  666. rockchip,pins = <3 28 4 &pcfg_pull_up>;
  667. };
  668. sdio1_wp: sdio1-wp {
  669. rockchip,pins = <3 29 4 &pcfg_pull_up>;
  670. };
  671. sdio1_bkpwr: sdio1-bkpwr {
  672. rockchip,pins = <3 30 4 &pcfg_pull_up>;
  673. };
  674. sdio1_int: sdio1-int {
  675. rockchip,pins = <3 31 4 &pcfg_pull_up>;
  676. };
  677. sdio1_cmd: sdio1-cmd {
  678. rockchip,pins = <4 6 4 &pcfg_pull_up>;
  679. };
  680. sdio1_clk: sdio1-clk {
  681. rockchip,pins = <4 7 4 &pcfg_pull_none>;
  682. };
  683. sdio1_pwr: sdio1-pwr {
  684. rockchip,pins = <4 9 4 &pcfg_pull_up>;
  685. };
  686. };
  687. emmc {
  688. emmc_clk: emmc-clk {
  689. rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
  690. };
  691. emmc_cmd: emmc-cmd {
  692. rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
  693. };
  694. emmc_pwr: emmc-pwr {
  695. rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
  696. };
  697. emmc_bus1: emmc-bus1 {
  698. rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
  699. };
  700. emmc_bus4: emmc-bus4 {
  701. rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
  702. <3 1 RK_FUNC_2 &pcfg_pull_up>,
  703. <3 2 RK_FUNC_2 &pcfg_pull_up>,
  704. <3 3 RK_FUNC_2 &pcfg_pull_up>;
  705. };
  706. emmc_bus8: emmc-bus8 {
  707. rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
  708. <3 1 RK_FUNC_2 &pcfg_pull_up>,
  709. <3 2 RK_FUNC_2 &pcfg_pull_up>,
  710. <3 3 RK_FUNC_2 &pcfg_pull_up>,
  711. <3 4 RK_FUNC_2 &pcfg_pull_up>,
  712. <3 5 RK_FUNC_2 &pcfg_pull_up>,
  713. <3 6 RK_FUNC_2 &pcfg_pull_up>,
  714. <3 7 RK_FUNC_2 &pcfg_pull_up>;
  715. };
  716. };
  717. spi0 {
  718. spi0_clk: spi0-clk {
  719. rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
  720. };
  721. spi0_cs0: spi0-cs0 {
  722. rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
  723. };
  724. spi0_tx: spi0-tx {
  725. rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
  726. };
  727. spi0_rx: spi0-rx {
  728. rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
  729. };
  730. spi0_cs1: spi0-cs1 {
  731. rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
  732. };
  733. };
  734. spi1 {
  735. spi1_clk: spi1-clk {
  736. rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
  737. };
  738. spi1_cs0: spi1-cs0 {
  739. rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
  740. };
  741. spi1_rx: spi1-rx {
  742. rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
  743. };
  744. spi1_tx: spi1-tx {
  745. rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
  746. };
  747. };
  748. spi2 {
  749. spi2_cs1: spi2-cs1 {
  750. rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
  751. };
  752. spi2_clk: spi2-clk {
  753. rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
  754. };
  755. spi2_cs0: spi2-cs0 {
  756. rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
  757. };
  758. spi2_rx: spi2-rx {
  759. rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
  760. };
  761. spi2_tx: spi2-tx {
  762. rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
  763. };
  764. };
  765. uart0 {
  766. uart0_xfer: uart0-xfer {
  767. rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
  768. <4 17 RK_FUNC_1 &pcfg_pull_none>;
  769. };
  770. uart0_cts: uart0-cts {
  771. rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_none>;
  772. };
  773. uart0_rts: uart0-rts {
  774. rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
  775. };
  776. };
  777. uart1 {
  778. uart1_xfer: uart1-xfer {
  779. rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
  780. <5 9 RK_FUNC_1 &pcfg_pull_none>;
  781. };
  782. uart1_cts: uart1-cts {
  783. rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_none>;
  784. };
  785. uart1_rts: uart1-rts {
  786. rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
  787. };
  788. };
  789. uart2 {
  790. uart2_xfer: uart2-xfer {
  791. rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
  792. <7 23 RK_FUNC_1 &pcfg_pull_none>;
  793. };
  794. /* no rts / cts for uart2 */
  795. };
  796. uart3 {
  797. uart3_xfer: uart3-xfer {
  798. rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
  799. <7 8 RK_FUNC_1 &pcfg_pull_none>;
  800. };
  801. uart3_cts: uart3-cts {
  802. rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_none>;
  803. };
  804. uart3_rts: uart3-rts {
  805. rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
  806. };
  807. };
  808. uart4 {
  809. uart4_xfer: uart4-xfer {
  810. rockchip,pins = <5 12 3 &pcfg_pull_up>,
  811. <5 13 3 &pcfg_pull_none>;
  812. };
  813. uart4_cts: uart4-cts {
  814. rockchip,pins = <5 14 3 &pcfg_pull_none>;
  815. };
  816. uart4_rts: uart4-rts {
  817. rockchip,pins = <5 15 3 &pcfg_pull_none>;
  818. };
  819. };
  820. pwm0 {
  821. pwm0_pin: pwm0-pin {
  822. rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
  823. };
  824. };
  825. pwm1 {
  826. pwm1_pin: pwm1-pin {
  827. rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
  828. };
  829. };
  830. pwm2 {
  831. pwm2_pin: pwm2-pin {
  832. rockchip,pins = <7 22 3 &pcfg_pull_none>;
  833. };
  834. };
  835. pwm3 {
  836. pwm3_pin: pwm3-pin {
  837. rockchip,pins = <7 23 3 &pcfg_pull_none>;
  838. };
  839. };
  840. };
  841. };