rv1108.dtsi 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986
  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/clock/rv1108-cru.h>
  6. #include <dt-bindings/pinctrl/rockchip.h>
  7. #include <dt-bindings/thermal/thermal.h>
  8. / {
  9. #address-cells = <1>;
  10. #size-cells = <1>;
  11. compatible = "rockchip,rv1108";
  12. interrupt-parent = <&gic>;
  13. aliases {
  14. i2c0 = &i2c0;
  15. i2c1 = &i2c1;
  16. i2c2 = &i2c2;
  17. i2c3 = &i2c3;
  18. serial0 = &uart0;
  19. serial1 = &uart1;
  20. serial2 = &uart2;
  21. };
  22. cpus {
  23. #address-cells = <1>;
  24. #size-cells = <0>;
  25. cpu0: cpu@f00 {
  26. device_type = "cpu";
  27. compatible = "arm,cortex-a7";
  28. reg = <0xf00>;
  29. clock-latency = <40000>;
  30. clocks = <&cru ARMCLK>;
  31. #cooling-cells = <2>; /* min followed by max */
  32. dynamic-power-coefficient = <75>;
  33. operating-points-v2 = <&cpu_opp_table>;
  34. };
  35. };
  36. cpu_opp_table: opp-table-0 {
  37. compatible = "operating-points-v2";
  38. opp-408000000 {
  39. opp-hz = /bits/ 64 <408000000>;
  40. opp-microvolt = <975000>;
  41. clock-latency-ns = <40000>;
  42. };
  43. opp-600000000 {
  44. opp-hz = /bits/ 64 <600000000>;
  45. opp-microvolt = <975000>;
  46. clock-latency-ns = <40000>;
  47. };
  48. opp-816000000 {
  49. opp-hz = /bits/ 64 <816000000>;
  50. opp-microvolt = <1025000>;
  51. clock-latency-ns = <40000>;
  52. };
  53. opp-1008000000 {
  54. opp-hz = /bits/ 64 <1008000000>;
  55. opp-microvolt = <1150000>;
  56. clock-latency-ns = <40000>;
  57. };
  58. };
  59. arm-pmu {
  60. compatible = "arm,cortex-a7-pmu";
  61. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
  62. };
  63. timer {
  64. compatible = "arm,armv7-timer";
  65. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>,
  66. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
  67. arm,cpu-registers-not-fw-configured;
  68. clock-frequency = <24000000>;
  69. };
  70. xin24m: oscillator {
  71. compatible = "fixed-clock";
  72. clock-frequency = <24000000>;
  73. clock-output-names = "xin24m";
  74. #clock-cells = <0>;
  75. };
  76. bus_intmem: sram@10080000 {
  77. compatible = "mmio-sram";
  78. reg = <0x10080000 0x2000>;
  79. #address-cells = <1>;
  80. #size-cells = <1>;
  81. ranges = <0 0x10080000 0x2000>;
  82. };
  83. uart2: serial@10210000 {
  84. compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
  85. reg = <0x10210000 0x100>;
  86. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  87. reg-shift = <2>;
  88. reg-io-width = <4>;
  89. clock-frequency = <24000000>;
  90. clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
  91. clock-names = "baudclk", "apb_pclk";
  92. dmas = <&pdma 6>, <&pdma 7>;
  93. pinctrl-names = "default";
  94. pinctrl-0 = <&uart2m0_xfer>;
  95. status = "disabled";
  96. };
  97. uart1: serial@10220000 {
  98. compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
  99. reg = <0x10220000 0x100>;
  100. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  101. reg-shift = <2>;
  102. reg-io-width = <4>;
  103. clock-frequency = <24000000>;
  104. clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
  105. clock-names = "baudclk", "apb_pclk";
  106. dmas = <&pdma 4>, <&pdma 5>;
  107. pinctrl-names = "default";
  108. pinctrl-0 = <&uart1_xfer>;
  109. status = "disabled";
  110. };
  111. uart0: serial@10230000 {
  112. compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
  113. reg = <0x10230000 0x100>;
  114. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  115. reg-shift = <2>;
  116. reg-io-width = <4>;
  117. clock-frequency = <24000000>;
  118. clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
  119. clock-names = "baudclk", "apb_pclk";
  120. dmas = <&pdma 2>, <&pdma 3>;
  121. pinctrl-names = "default";
  122. pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
  123. status = "disabled";
  124. };
  125. i2c1: i2c@10240000 {
  126. compatible = "rockchip,rv1108-i2c";
  127. reg = <0x10240000 0x1000>;
  128. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  129. #address-cells = <1>;
  130. #size-cells = <0>;
  131. clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
  132. clock-names = "i2c", "pclk";
  133. pinctrl-names = "default";
  134. pinctrl-0 = <&i2c1_xfer>;
  135. rockchip,grf = <&grf>;
  136. status = "disabled";
  137. };
  138. i2c2: i2c@10250000 {
  139. compatible = "rockchip,rv1108-i2c";
  140. reg = <0x10250000 0x1000>;
  141. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  142. #address-cells = <1>;
  143. #size-cells = <0>;
  144. clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
  145. clock-names = "i2c", "pclk";
  146. pinctrl-names = "default";
  147. pinctrl-0 = <&i2c2m1_xfer>;
  148. rockchip,grf = <&grf>;
  149. status = "disabled";
  150. };
  151. i2c3: i2c@10260000 {
  152. compatible = "rockchip,rv1108-i2c";
  153. reg = <0x10260000 0x1000>;
  154. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  155. #address-cells = <1>;
  156. #size-cells = <0>;
  157. clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
  158. clock-names = "i2c", "pclk";
  159. pinctrl-names = "default";
  160. pinctrl-0 = <&i2c3_xfer>;
  161. rockchip,grf = <&grf>;
  162. status = "disabled";
  163. };
  164. spi: spi@10270000 {
  165. compatible = "rockchip,rv1108-spi";
  166. reg = <0x10270000 0x1000>;
  167. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  168. clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>;
  169. clock-names = "spiclk", "apb_pclk";
  170. dmas = <&pdma 8>, <&pdma 9>;
  171. dma-names = "tx", "rx";
  172. #address-cells = <1>;
  173. #size-cells = <0>;
  174. status = "disabled";
  175. };
  176. pwm4: pwm@10280000 {
  177. compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
  178. reg = <0x10280000 0x10>;
  179. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  180. clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
  181. clock-names = "pwm", "pclk";
  182. pinctrl-names = "default";
  183. pinctrl-0 = <&pwm4_pin>;
  184. #pwm-cells = <3>;
  185. status = "disabled";
  186. };
  187. pwm5: pwm@10280010 {
  188. compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
  189. reg = <0x10280010 0x10>;
  190. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  191. clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
  192. clock-names = "pwm", "pclk";
  193. pinctrl-names = "default";
  194. pinctrl-0 = <&pwm5_pin>;
  195. #pwm-cells = <3>;
  196. status = "disabled";
  197. };
  198. pwm6: pwm@10280020 {
  199. compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
  200. reg = <0x10280020 0x10>;
  201. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  202. clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
  203. clock-names = "pwm", "pclk";
  204. pinctrl-names = "default";
  205. pinctrl-0 = <&pwm6_pin>;
  206. #pwm-cells = <3>;
  207. status = "disabled";
  208. };
  209. pwm7: pwm@10280030 {
  210. compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
  211. reg = <0x10280030 0x10>;
  212. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  213. clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
  214. clock-names = "pwm", "pclk";
  215. pinctrl-names = "default";
  216. pinctrl-0 = <&pwm7_pin>;
  217. #pwm-cells = <3>;
  218. status = "disabled";
  219. };
  220. pdma: dma-controller@102a0000 {
  221. compatible = "arm,pl330", "arm,primecell";
  222. reg = <0x102a0000 0x4000>;
  223. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
  224. #dma-cells = <1>;
  225. arm,pl330-broken-no-flushp;
  226. arm,pl330-periph-burst;
  227. clocks = <&cru ACLK_DMAC>;
  228. clock-names = "apb_pclk";
  229. };
  230. grf: syscon@10300000 {
  231. compatible = "rockchip,rv1108-grf", "syscon", "simple-mfd";
  232. reg = <0x10300000 0x1000>;
  233. #address-cells = <1>;
  234. #size-cells = <1>;
  235. io_domains: io-domains {
  236. compatible = "rockchip,rv1108-io-voltage-domain";
  237. status = "disabled";
  238. };
  239. u2phy: usb2phy@100 {
  240. compatible = "rockchip,rv1108-usb2phy";
  241. reg = <0x100 0x0c>;
  242. clocks = <&cru SCLK_USBPHY>;
  243. clock-names = "phyclk";
  244. #clock-cells = <0>;
  245. clock-output-names = "usbphy";
  246. rockchip,usbgrf = <&usbgrf>;
  247. status = "disabled";
  248. u2phy_otg: otg-port {
  249. interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
  250. interrupt-names = "otg-mux";
  251. #phy-cells = <0>;
  252. status = "disabled";
  253. };
  254. u2phy_host: host-port {
  255. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
  256. interrupt-names = "linestate";
  257. #phy-cells = <0>;
  258. status = "disabled";
  259. };
  260. };
  261. };
  262. timer: timer@10350000 {
  263. compatible = "rockchip,rv1108-timer", "rockchip,rk3288-timer";
  264. reg = <0x10350000 0x20>;
  265. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  266. clocks = <&cru PCLK_TIMER>, <&xin24m>;
  267. clock-names = "pclk", "timer";
  268. };
  269. watchdog: watchdog@10360000 {
  270. compatible = "rockchip,rv1108-wdt", "snps,dw-wdt";
  271. reg = <0x10360000 0x100>;
  272. interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
  273. clocks = <&cru PCLK_WDT>;
  274. status = "disabled";
  275. };
  276. thermal-zones {
  277. soc_thermal: soc-thermal {
  278. polling-delay-passive = <20>;
  279. polling-delay = <1000>;
  280. sustainable-power = <50>;
  281. thermal-sensors = <&tsadc 0>;
  282. trips {
  283. threshold: trip-point0 {
  284. temperature = <70000>;
  285. hysteresis = <2000>;
  286. type = "passive";
  287. };
  288. target: trip-point1 {
  289. temperature = <85000>;
  290. hysteresis = <2000>;
  291. type = "passive";
  292. };
  293. soc_crit: soc-crit {
  294. temperature = <95000>;
  295. hysteresis = <2000>;
  296. type = "critical";
  297. };
  298. };
  299. cooling-maps {
  300. map0 {
  301. trip = <&target>;
  302. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  303. contribution = <4096>;
  304. };
  305. };
  306. };
  307. };
  308. tsadc: tsadc@10370000 {
  309. compatible = "rockchip,rv1108-tsadc";
  310. reg = <0x10370000 0x100>;
  311. interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
  312. assigned-clocks = <&cru SCLK_TSADC>;
  313. assigned-clock-rates = <750000>;
  314. clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
  315. clock-names = "tsadc", "apb_pclk";
  316. pinctrl-names = "init", "default", "sleep";
  317. pinctrl-0 = <&otp_pin>;
  318. pinctrl-1 = <&otp_out>;
  319. pinctrl-2 = <&otp_pin>;
  320. resets = <&cru SRST_TSADC>;
  321. reset-names = "tsadc-apb";
  322. rockchip,hw-tshut-temp = <120000>;
  323. #thermal-sensor-cells = <1>;
  324. status = "disabled";
  325. };
  326. adc: adc@1038c000 {
  327. compatible = "rockchip,rv1108-saradc", "rockchip,rk3399-saradc";
  328. reg = <0x1038c000 0x100>;
  329. interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
  330. #io-channel-cells = <1>;
  331. clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
  332. clock-names = "saradc", "apb_pclk";
  333. status = "disabled";
  334. };
  335. i2c0: i2c@20000000 {
  336. compatible = "rockchip,rv1108-i2c";
  337. reg = <0x20000000 0x1000>;
  338. interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
  339. #address-cells = <1>;
  340. #size-cells = <0>;
  341. clocks = <&cru SCLK_I2C0_PMU>, <&cru PCLK_I2C0_PMU>;
  342. clock-names = "i2c", "pclk";
  343. pinctrl-names = "default";
  344. pinctrl-0 = <&i2c0_xfer>;
  345. rockchip,grf = <&grf>;
  346. status = "disabled";
  347. };
  348. pwm0: pwm@20040000 {
  349. compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
  350. reg = <0x20040000 0x10>;
  351. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  352. clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
  353. clock-names = "pwm", "pclk";
  354. pinctrl-names = "default";
  355. pinctrl-0 = <&pwm0_pin>;
  356. #pwm-cells = <3>;
  357. status = "disabled";
  358. };
  359. pwm1: pwm@20040010 {
  360. compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
  361. reg = <0x20040010 0x10>;
  362. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  363. clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
  364. clock-names = "pwm", "pclk";
  365. pinctrl-names = "default";
  366. pinctrl-0 = <&pwm1_pin>;
  367. #pwm-cells = <3>;
  368. status = "disabled";
  369. };
  370. pwm2: pwm@20040020 {
  371. compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
  372. reg = <0x20040020 0x10>;
  373. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  374. clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
  375. clock-names = "pwm", "pclk";
  376. pinctrl-names = "default";
  377. pinctrl-0 = <&pwm2_pin>;
  378. #pwm-cells = <3>;
  379. status = "disabled";
  380. };
  381. pwm3: pwm@20040030 {
  382. compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
  383. reg = <0x20040030 0x10>;
  384. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  385. clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
  386. clock-names = "pwm", "pclk";
  387. pinctrl-names = "default";
  388. pinctrl-0 = <&pwm3_pin>;
  389. #pwm-cells = <3>;
  390. status = "disabled";
  391. };
  392. pmugrf: syscon@20060000 {
  393. compatible = "rockchip,rv1108-pmugrf", "syscon", "simple-mfd";
  394. reg = <0x20060000 0x1000>;
  395. pmu_io_domains: io-domains {
  396. compatible = "rockchip,rv1108-pmu-io-voltage-domain";
  397. status = "disabled";
  398. };
  399. };
  400. usbgrf: syscon@202a0000 {
  401. compatible = "rockchip,rv1108-usbgrf", "syscon";
  402. reg = <0x202a0000 0x1000>;
  403. };
  404. cru: clock-controller@20200000 {
  405. compatible = "rockchip,rv1108-cru";
  406. reg = <0x20200000 0x1000>;
  407. clocks = <&xin24m>;
  408. clock-names = "xin24m";
  409. rockchip,grf = <&grf>;
  410. #clock-cells = <1>;
  411. #reset-cells = <1>;
  412. };
  413. nfc: nand-controller@30100000 {
  414. compatible = "rockchip,rv1108-nfc";
  415. reg = <0x30100000 0x1000>;
  416. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  417. clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>;
  418. clock-names = "ahb", "nfc";
  419. assigned-clocks = <&cru SCLK_NANDC>;
  420. assigned-clock-rates = <150000000>;
  421. status = "disabled";
  422. };
  423. emmc: mmc@30110000 {
  424. compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
  425. reg = <0x30110000 0x4000>;
  426. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  427. clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
  428. <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
  429. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  430. fifo-depth = <0x100>;
  431. max-frequency = <150000000>;
  432. status = "disabled";
  433. };
  434. sdio: mmc@30120000 {
  435. compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
  436. reg = <0x30120000 0x4000>;
  437. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  438. clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
  439. <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
  440. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  441. fifo-depth = <0x100>;
  442. max-frequency = <150000000>;
  443. status = "disabled";
  444. };
  445. sdmmc: mmc@30130000 {
  446. compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
  447. reg = <0x30130000 0x4000>;
  448. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  449. clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
  450. <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
  451. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  452. fifo-depth = <0x100>;
  453. max-frequency = <100000000>;
  454. pinctrl-names = "default";
  455. pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
  456. status = "disabled";
  457. };
  458. usb_host_ehci: usb@30140000 {
  459. compatible = "generic-ehci";
  460. reg = <0x30140000 0x20000>;
  461. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  462. clocks = <&cru HCLK_HOST0>, <&u2phy>;
  463. phys = <&u2phy_host>;
  464. phy-names = "usb";
  465. status = "disabled";
  466. };
  467. usb_host_ohci: usb@30160000 {
  468. compatible = "generic-ohci";
  469. reg = <0x30160000 0x20000>;
  470. interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
  471. clocks = <&cru HCLK_HOST0>, <&u2phy>;
  472. phys = <&u2phy_host>;
  473. phy-names = "usb";
  474. status = "disabled";
  475. };
  476. usb_otg: usb@30180000 {
  477. compatible = "rockchip,rv1108-usb", "rockchip,rk3066-usb",
  478. "snps,dwc2";
  479. reg = <0x30180000 0x40000>;
  480. interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
  481. clocks = <&cru HCLK_OTG>;
  482. clock-names = "otg";
  483. dr_mode = "otg";
  484. g-np-tx-fifo-size = <16>;
  485. g-rx-fifo-size = <280>;
  486. g-tx-fifo-size = <256 128 128 64 32 16>;
  487. phys = <&u2phy_otg>;
  488. phy-names = "usb2-phy";
  489. status = "disabled";
  490. };
  491. sfc: spi@301c0000 {
  492. compatible = "rockchip,sfc";
  493. reg = <0x301c0000 0x4000>;
  494. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  495. clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
  496. clock-names = "clk_sfc", "hclk_sfc";
  497. pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus4>;
  498. pinctrl-names = "default";
  499. status = "disabled";
  500. };
  501. gmac: ethernet@30200000 {
  502. compatible = "rockchip,rv1108-gmac";
  503. reg = <0x30200000 0x10000>;
  504. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
  505. <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  506. interrupt-names = "macirq", "eth_wake_irq";
  507. clocks = <&cru SCLK_MAC>,
  508. <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_RX>,
  509. <&cru SCLK_MAC_REF>, <&cru SCLK_MAC_REFOUT>,
  510. <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
  511. clock-names = "stmmaceth",
  512. "mac_clk_rx", "mac_clk_tx",
  513. "clk_mac_ref", "clk_mac_refout",
  514. "aclk_mac", "pclk_mac";
  515. /* rv1108 only supports an rmii interface */
  516. phy-mode = "rmii";
  517. pinctrl-names = "default";
  518. pinctrl-0 = <&rmii_pins>;
  519. rockchip,grf = <&grf>;
  520. status = "disabled";
  521. };
  522. gic: interrupt-controller@32010000 {
  523. compatible = "arm,gic-400";
  524. interrupt-controller;
  525. #interrupt-cells = <3>;
  526. #address-cells = <0>;
  527. reg = <0x32011000 0x1000>,
  528. <0x32012000 0x2000>,
  529. <0x32014000 0x2000>,
  530. <0x32016000 0x2000>;
  531. interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
  532. };
  533. pinctrl: pinctrl {
  534. compatible = "rockchip,rv1108-pinctrl";
  535. rockchip,grf = <&grf>;
  536. rockchip,pmu = <&pmugrf>;
  537. #address-cells = <1>;
  538. #size-cells = <1>;
  539. ranges;
  540. gpio0: gpio@20030000 {
  541. compatible = "rockchip,gpio-bank";
  542. reg = <0x20030000 0x100>;
  543. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
  544. clocks = <&cru PCLK_GPIO0_PMU>;
  545. gpio-controller;
  546. #gpio-cells = <2>;
  547. interrupt-controller;
  548. #interrupt-cells = <2>;
  549. };
  550. gpio1: gpio@10310000 {
  551. compatible = "rockchip,gpio-bank";
  552. reg = <0x10310000 0x100>;
  553. interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
  554. clocks = <&cru PCLK_GPIO1>;
  555. gpio-controller;
  556. #gpio-cells = <2>;
  557. interrupt-controller;
  558. #interrupt-cells = <2>;
  559. };
  560. gpio2: gpio@10320000 {
  561. compatible = "rockchip,gpio-bank";
  562. reg = <0x10320000 0x100>;
  563. interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
  564. clocks = <&cru PCLK_GPIO2>;
  565. gpio-controller;
  566. #gpio-cells = <2>;
  567. interrupt-controller;
  568. #interrupt-cells = <2>;
  569. };
  570. gpio3: gpio@10330000 {
  571. compatible = "rockchip,gpio-bank";
  572. reg = <0x10330000 0x100>;
  573. interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
  574. clocks = <&cru PCLK_GPIO3>;
  575. gpio-controller;
  576. #gpio-cells = <2>;
  577. interrupt-controller;
  578. #interrupt-cells = <2>;
  579. };
  580. pcfg_pull_up: pcfg-pull-up {
  581. bias-pull-up;
  582. };
  583. pcfg_pull_down: pcfg-pull-down {
  584. bias-pull-down;
  585. };
  586. pcfg_pull_none: pcfg-pull-none {
  587. bias-disable;
  588. };
  589. pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
  590. drive-strength = <8>;
  591. };
  592. pcfg_pull_none_drv_12ma: pcfg-pull-none-drv-12ma {
  593. drive-strength = <12>;
  594. };
  595. pcfg_pull_none_smt: pcfg-pull-none-smt {
  596. bias-disable;
  597. input-schmitt-enable;
  598. };
  599. pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
  600. bias-pull-up;
  601. drive-strength = <8>;
  602. };
  603. pcfg_pull_none_drv_4ma: pcfg-pull-none-drv-4ma {
  604. drive-strength = <4>;
  605. };
  606. pcfg_pull_up_drv_4ma: pcfg-pull-up-drv-4ma {
  607. bias-pull-up;
  608. drive-strength = <4>;
  609. };
  610. pcfg_output_high: pcfg-output-high {
  611. output-high;
  612. };
  613. pcfg_output_low: pcfg-output-low {
  614. output-low;
  615. };
  616. pcfg_input_high: pcfg-input-high {
  617. bias-pull-up;
  618. input-enable;
  619. };
  620. emmc {
  621. emmc_bus8: emmc-bus8 {
  622. rockchip,pins = <2 RK_PA0 2 &pcfg_pull_up_drv_8ma>,
  623. <2 RK_PA1 2 &pcfg_pull_up_drv_8ma>,
  624. <2 RK_PA2 2 &pcfg_pull_up_drv_8ma>,
  625. <2 RK_PA3 2 &pcfg_pull_up_drv_8ma>,
  626. <2 RK_PA4 2 &pcfg_pull_up_drv_8ma>,
  627. <2 RK_PA5 2 &pcfg_pull_up_drv_8ma>,
  628. <2 RK_PA6 2 &pcfg_pull_up_drv_8ma>,
  629. <2 RK_PA7 2 &pcfg_pull_up_drv_8ma>;
  630. };
  631. emmc_clk: emmc-clk {
  632. rockchip,pins = <2 RK_PB6 1 &pcfg_pull_none_drv_8ma>;
  633. };
  634. emmc_cmd: emmc-cmd {
  635. rockchip,pins = <2 RK_PB4 2 &pcfg_pull_up_drv_8ma>;
  636. };
  637. };
  638. sfc {
  639. sfc_bus4: sfc-bus4 {
  640. rockchip,pins =
  641. <2 RK_PA0 3 &pcfg_pull_none>,
  642. <2 RK_PA1 3 &pcfg_pull_none>,
  643. <2 RK_PA2 3 &pcfg_pull_none>,
  644. <2 RK_PA3 3 &pcfg_pull_none>;
  645. };
  646. sfc_bus2: sfc-bus2 {
  647. rockchip,pins =
  648. <2 RK_PA0 3 &pcfg_pull_none>,
  649. <2 RK_PA1 3 &pcfg_pull_none>;
  650. };
  651. sfc_cs0: sfc-cs0 {
  652. rockchip,pins =
  653. <2 RK_PB4 3 &pcfg_pull_none>;
  654. };
  655. sfc_clk: sfc-clk {
  656. rockchip,pins =
  657. <2 RK_PB7 2 &pcfg_pull_none>;
  658. };
  659. };
  660. gmac {
  661. rmii_pins: rmii-pins {
  662. rockchip,pins = <1 RK_PC5 2 &pcfg_pull_none>,
  663. <1 RK_PC3 2 &pcfg_pull_none>,
  664. <1 RK_PC4 2 &pcfg_pull_none>,
  665. <1 RK_PB2 3 &pcfg_pull_none_drv_12ma>,
  666. <1 RK_PB3 3 &pcfg_pull_none_drv_12ma>,
  667. <1 RK_PB4 3 &pcfg_pull_none_drv_12ma>,
  668. <1 RK_PB5 3 &pcfg_pull_none>,
  669. <1 RK_PB6 3 &pcfg_pull_none>,
  670. <1 RK_PB7 3 &pcfg_pull_none>,
  671. <1 RK_PC2 3 &pcfg_pull_none>;
  672. };
  673. };
  674. i2c0 {
  675. i2c0_xfer: i2c0-xfer {
  676. rockchip,pins = <0 RK_PB1 1 &pcfg_pull_none_smt>,
  677. <0 RK_PB2 1 &pcfg_pull_none_smt>;
  678. };
  679. };
  680. i2c1 {
  681. i2c1_xfer: i2c1-xfer {
  682. rockchip,pins = <2 RK_PD3 1 &pcfg_pull_up>,
  683. <2 RK_PD4 1 &pcfg_pull_up>;
  684. };
  685. };
  686. i2c2m1 {
  687. i2c2m1_xfer: i2c2m1-xfer {
  688. rockchip,pins = <0 RK_PC2 2 &pcfg_pull_none>,
  689. <0 RK_PC6 3 &pcfg_pull_none>;
  690. };
  691. i2c2m1_pins: i2c2m1-pins {
  692. rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>,
  693. <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
  694. };
  695. };
  696. i2c2m05v {
  697. i2c2m05v_xfer: i2c2m05v-xfer {
  698. rockchip,pins = <1 RK_PD5 2 &pcfg_pull_none>,
  699. <1 RK_PD4 2 &pcfg_pull_none>;
  700. };
  701. i2c2m05v_pins: i2c2m05v-pins {
  702. rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>,
  703. <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
  704. };
  705. };
  706. i2c3 {
  707. i2c3_xfer: i2c3-xfer {
  708. rockchip,pins = <0 RK_PB6 1 &pcfg_pull_none>,
  709. <0 RK_PC4 2 &pcfg_pull_none>;
  710. };
  711. };
  712. pwm0 {
  713. pwm0_pin: pwm0-pin {
  714. rockchip,pins = <0 RK_PC5 1 &pcfg_pull_none>;
  715. };
  716. };
  717. pwm1 {
  718. pwm1_pin: pwm1-pin {
  719. rockchip,pins = <0 RK_PC4 1 &pcfg_pull_none>;
  720. };
  721. };
  722. pwm2 {
  723. pwm2_pin: pwm2-pin {
  724. rockchip,pins = <0 RK_PC6 1 &pcfg_pull_none>;
  725. };
  726. };
  727. pwm3 {
  728. pwm3_pin: pwm3-pin {
  729. rockchip,pins = <0 RK_PC0 1 &pcfg_pull_none>;
  730. };
  731. };
  732. pwm4 {
  733. pwm4_pin: pwm4-pin {
  734. rockchip,pins = <1 RK_PC1 3 &pcfg_pull_none>;
  735. };
  736. };
  737. pwm5 {
  738. pwm5_pin: pwm5-pin {
  739. rockchip,pins = <1 RK_PA7 2 &pcfg_pull_none>;
  740. };
  741. };
  742. pwm6 {
  743. pwm6_pin: pwm6-pin {
  744. rockchip,pins = <1 RK_PB0 2 &pcfg_pull_none>;
  745. };
  746. };
  747. pwm7 {
  748. pwm7_pin: pwm7-pin {
  749. rockchip,pins = <1 RK_PB1 2 &pcfg_pull_none>;
  750. };
  751. };
  752. sdmmc {
  753. sdmmc_clk: sdmmc-clk {
  754. rockchip,pins = <3 RK_PC4 1 &pcfg_pull_none_drv_4ma>;
  755. };
  756. sdmmc_cmd: sdmmc-cmd {
  757. rockchip,pins = <3 RK_PC5 1 &pcfg_pull_up_drv_4ma>;
  758. };
  759. sdmmc_cd: sdmmc-cd {
  760. rockchip,pins = <0 RK_PA1 1 &pcfg_pull_up_drv_4ma>;
  761. };
  762. sdmmc_bus1: sdmmc-bus1 {
  763. rockchip,pins = <3 RK_PC3 1 &pcfg_pull_up_drv_4ma>;
  764. };
  765. sdmmc_bus4: sdmmc-bus4 {
  766. rockchip,pins = <3 RK_PC3 1 &pcfg_pull_up_drv_4ma>,
  767. <3 RK_PC2 1 &pcfg_pull_up_drv_4ma>,
  768. <3 RK_PC1 1 &pcfg_pull_up_drv_4ma>,
  769. <3 RK_PC0 1 &pcfg_pull_up_drv_4ma>;
  770. };
  771. };
  772. spim0 {
  773. spim0_clk: spim0-clk {
  774. rockchip,pins = <1 RK_PD0 2 &pcfg_pull_up>;
  775. };
  776. spim0_cs0: spim0-cs0 {
  777. rockchip,pins = <1 RK_PD1 2 &pcfg_pull_up>;
  778. };
  779. spim0_tx: spim0-tx {
  780. rockchip,pins = <1 RK_PD3 2 &pcfg_pull_up>;
  781. };
  782. spim0_rx: spim0-rx {
  783. rockchip,pins = <1 RK_PD2 2 &pcfg_pull_up>;
  784. };
  785. };
  786. spim1 {
  787. spim1_clk: spim1-clk {
  788. rockchip,pins = <0 RK_PA3 1 &pcfg_pull_up>;
  789. };
  790. spim1_cs0: spim1-cs0 {
  791. rockchip,pins = <0 RK_PA4 1 &pcfg_pull_up>;
  792. };
  793. spim1_rx: spim1-rx {
  794. rockchip,pins = <0 RK_PB0 1 &pcfg_pull_up>;
  795. };
  796. spim1_tx: spim1-tx {
  797. rockchip,pins = <0 RK_PA7 1 &pcfg_pull_up>;
  798. };
  799. };
  800. tsadc {
  801. otp_out: otp-out {
  802. rockchip,pins = <0 RK_PB7 1 &pcfg_pull_none>;
  803. };
  804. otp_pin: otp-pin {
  805. rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
  806. };
  807. };
  808. uart0 {
  809. uart0_xfer: uart0-xfer {
  810. rockchip,pins = <3 RK_PA6 1 &pcfg_pull_up>,
  811. <3 RK_PA5 1 &pcfg_pull_none>;
  812. };
  813. uart0_cts: uart0-cts {
  814. rockchip,pins = <3 RK_PA4 1 &pcfg_pull_none>;
  815. };
  816. uart0_rts: uart0-rts {
  817. rockchip,pins = <3 RK_PA3 1 &pcfg_pull_none>;
  818. };
  819. uart0_rts_pin: uart0-rts-pin {
  820. rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
  821. };
  822. };
  823. uart1 {
  824. uart1_xfer: uart1-xfer {
  825. rockchip,pins = <1 RK_PD3 1 &pcfg_pull_up>,
  826. <1 RK_PD2 1 &pcfg_pull_none>;
  827. };
  828. uart1_cts: uart1-cts {
  829. rockchip,pins = <1 RK_PD0 1 &pcfg_pull_none>;
  830. };
  831. uart1_rts: uart1-rts {
  832. rockchip,pins = <1 RK_PD1 1 &pcfg_pull_none>;
  833. };
  834. };
  835. uart2m0 {
  836. uart2m0_xfer: uart2m0-xfer {
  837. rockchip,pins = <2 RK_PD2 1 &pcfg_pull_up>,
  838. <2 RK_PD1 1 &pcfg_pull_none>;
  839. };
  840. };
  841. uart2m1 {
  842. uart2m1_xfer: uart2m1-xfer {
  843. rockchip,pins = <3 RK_PC3 2 &pcfg_pull_up>,
  844. <3 RK_PC2 2 &pcfg_pull_none>;
  845. };
  846. };
  847. uart2_5v {
  848. uart2_5v_cts: uart2_5v-cts {
  849. rockchip,pins = <1 RK_PD4 1 &pcfg_pull_none>;
  850. };
  851. uart2_5v_rts: uart2_5v-rts {
  852. rockchip,pins = <1 RK_PD5 1 &pcfg_pull_none>;
  853. };
  854. };
  855. };
  856. };