rk322x.dtsi 32 KB

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