Advertisement
Guest User

Untitled

a guest
Aug 27th, 2018
3,031
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 107.57 KB | None | 0 0
  1. # 1 "arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dts"
  2. # 1 "<built-in>"
  3. # 1 "<command-line>"
  4. # 1 "arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dts"
  5. # 43 "arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dts"
  6. /dts-v1/;
  7.  
  8. # 1 "./scripts/dtc/include-prefixes/dt-bindings/pwm/pwm.h" 1
  9. # 46 "arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dts" 2
  10. # 1 "arch/arm64/boot/dts/rockchip/rk3399.dtsi" 1
  11. # 43 "arch/arm64/boot/dts/rockchip/rk3399.dtsi"
  12. # 1 "./scripts/dtc/include-prefixes/dt-bindings/clock/rk3399-cru.h" 1
  13. # 44 "arch/arm64/boot/dts/rockchip/rk3399.dtsi" 2
  14. # 1 "./scripts/dtc/include-prefixes/dt-bindings/gpio/gpio.h" 1
  15. # 45 "arch/arm64/boot/dts/rockchip/rk3399.dtsi" 2
  16. # 1 "./scripts/dtc/include-prefixes/dt-bindings/interrupt-controller/arm-gic.h" 1
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24. # 1 "./scripts/dtc/include-prefixes/dt-bindings/interrupt-controller/irq.h" 1
  25. # 9 "./scripts/dtc/include-prefixes/dt-bindings/interrupt-controller/arm-gic.h" 2
  26. # 46 "arch/arm64/boot/dts/rockchip/rk3399.dtsi" 2
  27.  
  28. # 1 "./scripts/dtc/include-prefixes/dt-bindings/pinctrl/rockchip.h" 1
  29. # 48 "arch/arm64/boot/dts/rockchip/rk3399.dtsi" 2
  30. # 1 "./scripts/dtc/include-prefixes/dt-bindings/power/rk3399-power.h" 1
  31. # 49 "arch/arm64/boot/dts/rockchip/rk3399.dtsi" 2
  32. # 1 "./scripts/dtc/include-prefixes/dt-bindings/soc/rockchip,boot-mode.h" 1
  33. # 50 "arch/arm64/boot/dts/rockchip/rk3399.dtsi" 2
  34. # 1 "./scripts/dtc/include-prefixes/dt-bindings/soc/rockchip-system-status.h" 1
  35. # 51 "arch/arm64/boot/dts/rockchip/rk3399.dtsi" 2
  36. # 1 "./scripts/dtc/include-prefixes/dt-bindings/suspend/rockchip-rk3399.h" 1
  37. # 52 "arch/arm64/boot/dts/rockchip/rk3399.dtsi" 2
  38. # 1 "./scripts/dtc/include-prefixes/dt-bindings/thermal/thermal.h" 1
  39. # 53 "arch/arm64/boot/dts/rockchip/rk3399.dtsi" 2
  40.  
  41. # 1 "arch/arm64/boot/dts/rockchip/rk3399-dram-default-timing.dtsi" 1
  42. # 42 "arch/arm64/boot/dts/rockchip/rk3399-dram-default-timing.dtsi"
  43. # 1 "./scripts/dtc/include-prefixes/dt-bindings/memory/rk3399-dram.h" 1
  44. # 43 "arch/arm64/boot/dts/rockchip/rk3399-dram-default-timing.dtsi" 2
  45.  
  46. / {
  47. ddr_timing: ddr_timing {
  48. compatible = "rockchip,ddr-timing";
  49. ddr3_speed_bin = <21>;
  50. pd_idle = <0>;
  51. sr_idle = <0>;
  52. sr_mc_gate_idle = <0>;
  53. srpd_lite_idle = <0>;
  54. standby_idle = <0>;
  55. auto_lp_dis_freq = <666>;
  56. ddr3_dll_dis_freq = <300>;
  57. phy_dll_dis_freq = <260>;
  58.  
  59. ddr3_odt_dis_freq = <666>;
  60. ddr3_drv = <(40)>;
  61. ddr3_odt = <(120)>;
  62. phy_ddr3_ca_drv = <(40)>;
  63. phy_ddr3_dq_drv = <(40)>;
  64. phy_ddr3_odt = <(240)>;
  65.  
  66. lpddr3_odt_dis_freq = <666>;
  67. lpddr3_drv = <(34)>;
  68. lpddr3_odt = <(240)>;
  69. phy_lpddr3_ca_drv = <(34)>;
  70. phy_lpddr3_dq_drv = <(34)>;
  71. phy_lpddr3_odt = <(240)>;
  72.  
  73. lpddr4_odt_dis_freq = <800>;
  74. lpddr4_drv = <(240)>;
  75. lpddr4_dq_odt = <(40)>;
  76. lpddr4_ca_odt = <(0)>;
  77. phy_lpddr4_ca_drv = <(40)>;
  78. phy_lpddr4_ck_cs_drv = <(40)>;
  79. phy_lpddr4_dq_drv = <(60)>;
  80. phy_lpddr4_odt = <(40)>;
  81. };
  82. };
  83. # 55 "arch/arm64/boot/dts/rockchip/rk3399.dtsi" 2
  84.  
  85. / {
  86. compatible = "rockchip,rk3399";
  87.  
  88. interrupt-parent = <&gic>;
  89. #address-cells = <2>;
  90. #size-cells = <2>;
  91.  
  92. aliases {
  93. dsi0 = &dsi;
  94. dsi1 = &dsi1;
  95. ethernet0 = &gmac;
  96. i2c0 = &i2c0;
  97. i2c1 = &i2c1;
  98. i2c2 = &i2c2;
  99. i2c3 = &i2c3;
  100. i2c4 = &i2c4;
  101. i2c5 = &i2c5;
  102. i2c6 = &i2c6;
  103. i2c7 = &i2c7;
  104. i2c8 = &i2c8;
  105. serial0 = &uart0;
  106. serial1 = &uart1;
  107. serial2 = &uart2;
  108. serial3 = &uart3;
  109. serial4 = &uart4;
  110. };
  111.  
  112. cpus {
  113. #address-cells = <2>;
  114. #size-cells = <0>;
  115.  
  116. cpu-map {
  117. cluster0 {
  118. core0 {
  119. cpu = <&cpu_l0>;
  120. };
  121. core1 {
  122. cpu = <&cpu_l1>;
  123. };
  124. core2 {
  125. cpu = <&cpu_l2>;
  126. };
  127. core3 {
  128. cpu = <&cpu_l3>;
  129. };
  130. };
  131.  
  132. cluster1 {
  133. core0 {
  134. cpu = <&cpu_b0>;
  135. };
  136. core1 {
  137. cpu = <&cpu_b1>;
  138. };
  139. };
  140. };
  141.  
  142. cpu_l0: cpu@0 {
  143. device_type = "cpu";
  144. compatible = "arm,cortex-a53", "arm,armv8";
  145. reg = <0x0 0x0>;
  146. enable-method = "psci";
  147. #cooling-cells = <2>;
  148. clocks = <&cru 8>;
  149. cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
  150. dynamic-power-coefficient = <100>;
  151. };
  152.  
  153. cpu_l1: cpu@1 {
  154. device_type = "cpu";
  155. compatible = "arm,cortex-a53", "arm,armv8";
  156. reg = <0x0 0x1>;
  157. enable-method = "psci";
  158. clocks = <&cru 8>;
  159. cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
  160. dynamic-power-coefficient = <100>;
  161. };
  162.  
  163. cpu_l2: cpu@2 {
  164. device_type = "cpu";
  165. compatible = "arm,cortex-a53", "arm,armv8";
  166. reg = <0x0 0x2>;
  167. enable-method = "psci";
  168. clocks = <&cru 8>;
  169. cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
  170. dynamic-power-coefficient = <100>;
  171. };
  172.  
  173. cpu_l3: cpu@3 {
  174. device_type = "cpu";
  175. compatible = "arm,cortex-a53", "arm,armv8";
  176. reg = <0x0 0x3>;
  177. enable-method = "psci";
  178. clocks = <&cru 8>;
  179. cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
  180. dynamic-power-coefficient = <100>;
  181. };
  182.  
  183. cpu_b0: cpu@100 {
  184. device_type = "cpu";
  185. compatible = "arm,cortex-a72", "arm,armv8";
  186. reg = <0x0 0x100>;
  187. enable-method = "psci";
  188. #cooling-cells = <2>;
  189. clocks = <&cru 9>;
  190. cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
  191. dynamic-power-coefficient = <436>;
  192. };
  193.  
  194. cpu_b1: cpu@101 {
  195. device_type = "cpu";
  196. compatible = "arm,cortex-a72", "arm,armv8";
  197. reg = <0x0 0x101>;
  198. enable-method = "psci";
  199. clocks = <&cru 9>;
  200. cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
  201. dynamic-power-coefficient = <436>;
  202. };
  203.  
  204. idle-states {
  205. entry-method = "psci";
  206.  
  207. CPU_SLEEP: cpu-sleep {
  208. compatible = "arm,idle-state";
  209. local-timer-stop;
  210. arm,psci-suspend-param = <0x0010000>;
  211. entry-latency-us = <120>;
  212. exit-latency-us = <250>;
  213. min-residency-us = <900>;
  214. };
  215.  
  216. CLUSTER_SLEEP: cluster-sleep {
  217. compatible = "arm,idle-state";
  218. local-timer-stop;
  219. arm,psci-suspend-param = <0x1010000>;
  220. entry-latency-us = <400>;
  221. exit-latency-us = <500>;
  222. min-residency-us = <2000>;
  223. };
  224. };
  225. };
  226.  
  227. pmu_a53 {
  228. compatible = "arm,cortex-a53-pmu";
  229. interrupts = <1 7 8 &ppi_cluster0>;
  230. };
  231.  
  232. pmu_a72 {
  233. compatible = "arm,cortex-a72-pmu";
  234. interrupts = <1 7 8 &ppi_cluster1>;
  235. };
  236.  
  237. psci {
  238. compatible = "arm,psci-1.0";
  239. method = "smc";
  240. };
  241.  
  242. timer {
  243. compatible = "arm,armv8-timer";
  244. interrupts = <1 13 8 0>,
  245. <1 14 8 0>,
  246. <1 11 8 0>,
  247. <1 10 8 0>;
  248. arm,no-tick-in-suspend;
  249. };
  250.  
  251. xin24m: xin24m {
  252. compatible = "fixed-clock";
  253. clock-frequency = <24000000>;
  254. clock-output-names = "xin24m";
  255. #clock-cells = <0>;
  256. };
  257.  
  258. dummy_cpll: dummy_cpll {
  259. compatible = "fixed-clock";
  260. clock-frequency = <0>;
  261. clock-output-names = "dummy_cpll";
  262. #clock-cells = <0>;
  263. };
  264.  
  265. dummy_vpll: dummy_vpll {
  266. compatible = "fixed-clock";
  267. clock-frequency = <0>;
  268. clock-output-names = "dummy_vpll";
  269. #clock-cells = <0>;
  270. };
  271.  
  272. amba {
  273. compatible = "simple-bus";
  274. #address-cells = <2>;
  275. #size-cells = <2>;
  276. ranges;
  277.  
  278. dmac_bus: dma-controller@ff6d0000 {
  279. compatible = "arm,pl330", "arm,primecell";
  280. reg = <0x0 0xff6d0000 0x0 0x4000>;
  281. interrupts = <0 5 4 0>,
  282. <0 6 4 0>;
  283. #dma-cells = <1>;
  284. clocks = <&cru 211>;
  285. clock-names = "apb_pclk";
  286. peripherals-req-type-burst;
  287. };
  288.  
  289. dmac_peri: dma-controller@ff6e0000 {
  290. compatible = "arm,pl330", "arm,primecell";
  291. reg = <0x0 0xff6e0000 0x0 0x4000>;
  292. interrupts = <0 7 4 0>,
  293. <0 8 4 0>;
  294. #dma-cells = <1>;
  295. clocks = <&cru 212>;
  296. clock-names = "apb_pclk";
  297. peripherals-req-type-burst;
  298. };
  299. };
  300.  
  301. gmac: ethernet@fe300000 {
  302. compatible = "rockchip,rk3399-gmac";
  303. reg = <0x0 0xfe300000 0x0 0x10000>;
  304. interrupts = <0 12 4 0>;
  305. interrupt-names = "macirq";
  306. clocks = <&cru 105>, <&cru 103>,
  307. <&cru 104>, <&cru 102>,
  308. <&cru 106>, <&cru 213>,
  309. <&cru 358>;
  310. clock-names = "stmmaceth", "mac_clk_rx",
  311. "mac_clk_tx", "clk_mac_ref",
  312. "clk_mac_refout", "aclk_mac",
  313. "pclk_mac";
  314. power-domains = <&power 22>;
  315. resets = <&cru 137>;
  316. reset-names = "stmmaceth";
  317. rockchip,grf = <&grf>;
  318. status = "disabled";
  319. };
  320.  
  321. sdio0: dwmmc@fe310000 {
  322. compatible = "rockchip,rk3399-dw-mshc",
  323. "rockchip,rk3288-dw-mshc";
  324. reg = <0x0 0xfe310000 0x0 0x4000>;
  325. interrupts = <0 64 4 0>;
  326. max-frequency = <150000000>;
  327. clocks = <&cru 494>, <&cru 77>,
  328. <&cru 156>, <&cru 157>;
  329. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  330. fifo-depth = <0x100>;
  331. power-domains = <&power 28>;
  332. resets = <&cru 121>;
  333. reset-names = "reset";
  334. status = "disabled";
  335. };
  336.  
  337. sdmmc: dwmmc@fe320000 {
  338. compatible = "rockchip,rk3399-dw-mshc",
  339. "rockchip,rk3288-dw-mshc";
  340. reg = <0x0 0xfe320000 0x0 0x4000>;
  341. interrupts = <0 65 4 0>;
  342. max-frequency = <150000000>;
  343. assigned-clocks = <&cru 461>;
  344. assigned-clock-rates = <200000000>;
  345. clocks = <&cru 462>, <&cru 76>,
  346. <&cru 154>, <&cru 155>;
  347. clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
  348. fifo-depth = <0x100>;
  349. power-domains = <&power 27>;
  350. resets = <&cru 122>;
  351. reset-names = "reset";
  352. status = "disabled";
  353. };
  354.  
  355. sdhci: sdhci@fe330000 {
  356. compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
  357. reg = <0x0 0xfe330000 0x0 0x10000>;
  358. interrupts = <0 11 4 0>;
  359. arasan,soc-ctl-syscon = <&grf>;
  360. assigned-clocks = <&cru 78>;
  361. assigned-clock-rates = <200000000>;
  362. clocks = <&cru 78>, <&cru 240>;
  363. clock-names = "clk_xin", "clk_ahb";
  364. clock-output-names = "emmc_cardclock";
  365. #clock-cells = <0>;
  366. phys = <&emmc_phy>;
  367. phy-names = "phy_arasan";
  368. power-domains = <&power 23>;
  369. status = "disabled";
  370. };
  371.  
  372. usic: usb@fe340000 {
  373. compatible = "generic-ehci";
  374. reg = <0x0 0xfe340000 0x0 0x30000>;
  375. interrupts = <0 33 4 0>;
  376. clocks = <&cru 460>, <&cru 121>,
  377. <&cru 340>;
  378. clock-names = "hclk_hsic", "clk_hsicphy", "pclk_hsicphy";
  379. rockchip-has-usic;
  380. status = "disabled";
  381. };
  382.  
  383. usb_host0_ehci: usb@fe380000 {
  384. compatible = "generic-ehci";
  385. reg = <0x0 0xfe380000 0x0 0x20000>;
  386. interrupts = <0 26 4 0>;
  387. clocks = <&cru 456>, <&cru 457>,
  388. <&cru 168>;
  389. clock-names = "hclk_host0", "hclk_host0_arb", "usbphy0_480m";
  390. phys = <&u2phy0_host>;
  391. phy-names = "usb";
  392. power-domains = <&power 14>;
  393. status = "disabled";
  394. };
  395.  
  396. usb_host0_ohci: usb@fe3a0000 {
  397. compatible = "generic-ohci";
  398. reg = <0x0 0xfe3a0000 0x0 0x20000>;
  399. interrupts = <0 28 4 0>;
  400. clocks = <&cru 456>, <&cru 457>,
  401. <&cru 168>;
  402. clock-names = "hclk_host0", "hclk_host0_arb", "usbphy0_480m";
  403. phys = <&u2phy0_host>;
  404. phy-names = "usb";
  405. power-domains = <&power 14>;
  406. status = "disabled";
  407. };
  408.  
  409. usb_host1_ehci: usb@fe3c0000 {
  410. compatible = "generic-ehci";
  411. reg = <0x0 0xfe3c0000 0x0 0x20000>;
  412. interrupts = <0 30 4 0>;
  413. clocks = <&cru 458>, <&cru 459>,
  414. <&cru 169>;
  415. clock-names = "hclk_host1", "hclk_host1_arb", "usbphy1_480m";
  416. phys = <&u2phy1_host>;
  417. phy-names = "usb";
  418. power-domains = <&power 14>;
  419. status = "disabled";
  420. };
  421.  
  422. usb_host1_ohci: usb@fe3e0000 {
  423. compatible = "generic-ohci";
  424. reg = <0x0 0xfe3e0000 0x0 0x20000>;
  425. interrupts = <0 32 4 0>;
  426. clocks = <&cru 458>, <&cru 459>,
  427. <&cru 169>;
  428. clock-names = "hclk_host1", "hclk_host1_arb", "usbphy1_480m";
  429. phys = <&u2phy1_host>;
  430. phy-names = "usb";
  431. power-domains = <&power 14>;
  432. status = "disabled";
  433. };
  434.  
  435. usbdrd3_0: usb@fe800000 {
  436. compatible = "rockchip,rk3399-dwc3";
  437. clocks = <&cru 129>, <&cru 131>,
  438. <&cru 246>, <&cru 249>;
  439. clock-names = "ref_clk", "suspend_clk",
  440. "bus_clk", "grf_clk";
  441. power-domains = <&power 24>;
  442. resets = <&cru 293>;
  443. reset-names = "usb3-otg";
  444. #address-cells = <2>;
  445. #size-cells = <2>;
  446. ranges;
  447. status = "disabled";
  448. usbdrd_dwc3_0: dwc3@fe800000 {
  449. compatible = "snps,dwc3";
  450. reg = <0x0 0xfe800000 0x0 0x100000>;
  451. interrupts = <0 105 4 0>;
  452. dr_mode = "otg";
  453. phys = <&u2phy0_otg>, <&tcphy0_usb3>;
  454. phy-names = "usb2-phy", "usb3-phy";
  455. phy_type = "utmi_wide";
  456. snps,dis_enblslpm_quirk;
  457. snps,dis-u2-freeclk-exists-quirk;
  458. snps,dis_u2_susphy_quirk;
  459. snps,dis-del-phy-power-chg-quirk;
  460. snps,tx-ipgap-linecheck-dis-quirk;
  461. snps,xhci-slow-suspend-quirk;
  462. snps,usb3-warm-reset-on-resume-quirk;
  463. status = "disabled";
  464. };
  465. };
  466.  
  467. usbdrd3_1: usb@fe900000 {
  468. compatible = "rockchip,rk3399-dwc3";
  469. clocks = <&cru 130>, <&cru 132>,
  470. <&cru 247>, <&cru 249>;
  471. clock-names = "ref_clk", "suspend_clk",
  472. "bus_clk", "grf_clk";
  473. power-domains = <&power 24>;
  474. resets = <&cru 294>;
  475. reset-names = "usb3-otg";
  476. #address-cells = <2>;
  477. #size-cells = <2>;
  478. ranges;
  479. status = "disabled";
  480. usbdrd_dwc3_1: dwc3@fe900000 {
  481. compatible = "snps,dwc3";
  482. reg = <0x0 0xfe900000 0x0 0x100000>;
  483. interrupts = <0 110 4 0>;
  484. dr_mode = "host";
  485. phys = <&u2phy1_otg>, <&tcphy1_usb3>;
  486. phy-names = "usb2-phy", "usb3-phy";
  487. phy_type = "utmi_wide";
  488. snps,dis_enblslpm_quirk;
  489. snps,dis-u2-freeclk-exists-quirk;
  490. snps,dis_u2_susphy_quirk;
  491. snps,dis-del-phy-power-chg-quirk;
  492. snps,tx-ipgap-linecheck-dis-quirk;
  493. snps,xhci-slow-suspend-quirk;
  494. snps,usb3-warm-reset-on-resume-quirk;
  495. status = "disabled";
  496. };
  497. };
  498.  
  499. cdn_dp: dp@fec00000 {
  500. compatible = "rockchip,rk3399-cdn-dp";
  501. reg = <0x0 0xfec00000 0x0 0x100000>;
  502. interrupts = <0 9 4 0>;
  503. assigned-clocks = <&cru 114>, <&cru 161>;
  504. assigned-clock-rates = <100000000>, <200000000>;
  505. clocks = <&cru 114>, <&cru 373>,
  506. <&cru 161>, <&cru 367>;
  507. clock-names = "core-clk", "pclk", "spdif", "grf";
  508. power-domains = <&power 21>;
  509. phys = <&tcphy0_dp>, <&tcphy1_dp>;
  510. resets = <&cru 259>, <&cru 328>,
  511. <&cru 330>, <&cru 253>;
  512. reset-names = "spdif", "dptx", "apb", "core";
  513. rockchip,grf = <&grf>;
  514. #address-cells = <1>;
  515. #size-cells = <0>;
  516. #sound-dai-cells = <1>;
  517. status = "disabled";
  518.  
  519. ports {
  520. #address-cells = <1>;
  521. #size-cells = <0>;
  522.  
  523. dp_in: port {
  524. #address-cells = <1>;
  525. #size-cells = <0>;
  526. dp_in_vopb: endpoint@0 {
  527. reg = <0>;
  528. remote-endpoint = <&vopb_out_dp>;
  529. };
  530.  
  531. dp_in_vopl: endpoint@1 {
  532. reg = <1>;
  533. remote-endpoint = <&vopl_out_dp>;
  534. };
  535. };
  536. };
  537. };
  538.  
  539. gic: interrupt-controller@fee00000 {
  540. compatible = "arm,gic-v3";
  541. #interrupt-cells = <4>;
  542. #address-cells = <2>;
  543. #size-cells = <2>;
  544. ranges;
  545. interrupt-controller;
  546.  
  547. reg = <0x0 0xfee00000 0 0x10000>,
  548. <0x0 0xfef00000 0 0xc0000>,
  549. <0x0 0xfff00000 0 0x10000>,
  550. <0x0 0xfff10000 0 0x10000>,
  551. <0x0 0xfff20000 0 0x10000>;
  552. interrupts = <1 9 4 0>;
  553. its: interrupt-controller@fee20000 {
  554. compatible = "arm,gic-v3-its";
  555. msi-controller;
  556. reg = <0x0 0xfee20000 0x0 0x20000>;
  557. };
  558.  
  559. ppi-partitions {
  560. ppi_cluster0: interrupt-partition-0 {
  561. affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
  562. };
  563.  
  564. ppi_cluster1: interrupt-partition-1 {
  565. affinity = <&cpu_b0 &cpu_b1>;
  566. };
  567. };
  568. };
  569.  
  570. saradc: saradc@ff100000 {
  571. compatible = "rockchip,rk3399-saradc";
  572. reg = <0x0 0xff100000 0x0 0x100>;
  573. interrupts = <0 62 4 0>;
  574. #io-channel-cells = <1>;
  575. clocks = <&cru 80>, <&cru 357>;
  576. clock-names = "saradc", "apb_pclk";
  577. resets = <&cru 212>;
  578. reset-names = "saradc-apb";
  579. status = "disabled";
  580. };
  581.  
  582. i2c0: i2c@ff3c0000 {
  583. compatible = "rockchip,rk3399-i2c";
  584. reg = <0x0 0xff3c0000 0x0 0x1000>;
  585. clocks = <&pmucru 9>, <&pmucru 27>;
  586. clock-names = "i2c", "pclk";
  587. interrupts = <0 57 4 0>;
  588. pinctrl-names = "default";
  589. pinctrl-0 = <&i2c0_xfer>;
  590. #address-cells = <1>;
  591. #size-cells = <0>;
  592. status = "disabled";
  593. };
  594.  
  595. i2c1: i2c@ff110000 {
  596. compatible = "rockchip,rk3399-i2c";
  597. reg = <0x0 0xff110000 0x0 0x1000>;
  598. clocks = <&cru 65>, <&cru 341>;
  599. clock-names = "i2c", "pclk";
  600. interrupts = <0 59 4 0>;
  601. pinctrl-names = "default";
  602. pinctrl-0 = <&i2c1_xfer>;
  603. #address-cells = <1>;
  604. #size-cells = <0>;
  605. status = "disabled";
  606. };
  607.  
  608. i2c2: i2c@ff120000 {
  609. compatible = "rockchip,rk3399-i2c";
  610. reg = <0x0 0xff120000 0x0 0x1000>;
  611. clocks = <&cru 66>, <&cru 342>;
  612. clock-names = "i2c", "pclk";
  613. interrupts = <0 35 4 0>;
  614. pinctrl-names = "default";
  615. pinctrl-0 = <&i2c2_xfer>;
  616. #address-cells = <1>;
  617. #size-cells = <0>;
  618. status = "disabled";
  619. };
  620.  
  621. i2c3: i2c@ff130000 {
  622. compatible = "rockchip,rk3399-i2c";
  623. reg = <0x0 0xff130000 0x0 0x1000>;
  624. clocks = <&cru 67>, <&cru 343>;
  625. clock-names = "i2c", "pclk";
  626. interrupts = <0 34 4 0>;
  627. pinctrl-names = "default";
  628. pinctrl-0 = <&i2c3_xfer>;
  629. #address-cells = <1>;
  630. #size-cells = <0>;
  631. status = "disabled";
  632. };
  633.  
  634. i2c5: i2c@ff140000 {
  635. compatible = "rockchip,rk3399-i2c";
  636. reg = <0x0 0xff140000 0x0 0x1000>;
  637. clocks = <&cru 68>, <&cru 344>;
  638. clock-names = "i2c", "pclk";
  639. interrupts = <0 38 4 0>;
  640. pinctrl-names = "default";
  641. pinctrl-0 = <&i2c5_xfer>;
  642. #address-cells = <1>;
  643. #size-cells = <0>;
  644. status = "disabled";
  645. };
  646.  
  647. i2c6: i2c@ff150000 {
  648. compatible = "rockchip,rk3399-i2c";
  649. reg = <0x0 0xff150000 0x0 0x1000>;
  650. clocks = <&cru 69>, <&cru 345>;
  651. clock-names = "i2c", "pclk";
  652. interrupts = <0 37 4 0>;
  653. pinctrl-names = "default";
  654. pinctrl-0 = <&i2c6_xfer>;
  655. #address-cells = <1>;
  656. #size-cells = <0>;
  657. status = "disabled";
  658. };
  659.  
  660. i2c7: i2c@ff160000 {
  661. compatible = "rockchip,rk3399-i2c";
  662. reg = <0x0 0xff160000 0x0 0x1000>;
  663. clocks = <&cru 70>, <&cru 346>;
  664. clock-names = "i2c", "pclk";
  665. interrupts = <0 36 4 0>;
  666. pinctrl-names = "default";
  667. pinctrl-0 = <&i2c7_xfer>;
  668. #address-cells = <1>;
  669. #size-cells = <0>;
  670. status = "disabled";
  671. };
  672.  
  673. uart0: serial@ff180000 {
  674. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  675. reg = <0x0 0xff180000 0x0 0x100>;
  676. clocks = <&cru 81>, <&cru 352>;
  677. clock-names = "baudclk", "apb_pclk";
  678. interrupts = <0 99 4 0>;
  679. reg-shift = <2>;
  680. reg-io-width = <4>;
  681. pinctrl-names = "default";
  682. pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
  683. status = "disabled";
  684. };
  685.  
  686. uart1: serial@ff190000 {
  687. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  688. reg = <0x0 0xff190000 0x0 0x100>;
  689. clocks = <&cru 82>, <&cru 353>;
  690. clock-names = "baudclk", "apb_pclk";
  691. interrupts = <0 98 4 0>;
  692. reg-shift = <2>;
  693. reg-io-width = <4>;
  694. pinctrl-names = "default";
  695. pinctrl-0 = <&uart1_xfer>;
  696. status = "disabled";
  697. };
  698.  
  699. uart2: serial@ff1a0000 {
  700. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  701. reg = <0x0 0xff1a0000 0x0 0x100>;
  702. clocks = <&cru 83>, <&cru 354>;
  703. clock-names = "baudclk", "apb_pclk";
  704. interrupts = <0 100 4 0>;
  705. reg-shift = <2>;
  706. reg-io-width = <4>;
  707. pinctrl-names = "default";
  708. pinctrl-0 = <&uart2c_xfer>;
  709. status = "disabled";
  710. };
  711.  
  712. uart3: serial@ff1b0000 {
  713. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  714. reg = <0x0 0xff1b0000 0x0 0x100>;
  715. clocks = <&cru 84>, <&cru 355>;
  716. clock-names = "baudclk", "apb_pclk";
  717. interrupts = <0 101 4 0>;
  718. reg-shift = <2>;
  719. reg-io-width = <4>;
  720. pinctrl-names = "default";
  721. pinctrl-0 = <&uart3_xfer &uart3_cts &uart3_rts>;
  722. status = "disabled";
  723. };
  724.  
  725. spi0: spi@ff1c0000 {
  726. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  727. reg = <0x0 0xff1c0000 0x0 0x1000>;
  728. clocks = <&cru 71>, <&cru 347>;
  729. clock-names = "spiclk", "apb_pclk";
  730. interrupts = <0 68 4 0>;
  731. pinctrl-names = "default";
  732. pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
  733. #address-cells = <1>;
  734. #size-cells = <0>;
  735. status = "disabled";
  736. };
  737.  
  738. spi1: spi@ff1d0000 {
  739. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  740. reg = <0x0 0xff1d0000 0x0 0x1000>;
  741. clocks = <&cru 72>, <&cru 348>;
  742. clock-names = "spiclk", "apb_pclk";
  743. interrupts = <0 53 4 0>;
  744. pinctrl-names = "default";
  745. pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
  746. #address-cells = <1>;
  747. #size-cells = <0>;
  748. status = "disabled";
  749. };
  750.  
  751. spi2: spi@ff1e0000 {
  752. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  753. reg = <0x0 0xff1e0000 0x0 0x1000>;
  754. clocks = <&cru 73>, <&cru 349>;
  755. clock-names = "spiclk", "apb_pclk";
  756. interrupts = <0 52 4 0>;
  757. pinctrl-names = "default";
  758. pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
  759. #address-cells = <1>;
  760. #size-cells = <0>;
  761. status = "disabled";
  762. };
  763.  
  764. spi4: spi@ff1f0000 {
  765. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  766. reg = <0x0 0xff1f0000 0x0 0x1000>;
  767. clocks = <&cru 74>, <&cru 350>;
  768. clock-names = "spiclk", "apb_pclk";
  769. interrupts = <0 67 4 0>;
  770. pinctrl-names = "default";
  771. pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>;
  772. #address-cells = <1>;
  773. #size-cells = <0>;
  774. status = "disabled";
  775. };
  776.  
  777. spi5: spi@ff200000 {
  778. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  779. reg = <0x0 0xff200000 0x0 0x1000>;
  780. clocks = <&cru 75>, <&cru 351>;
  781. clock-names = "spiclk", "apb_pclk";
  782. interrupts = <0 132 4 0>;
  783. pinctrl-names = "default";
  784. pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>;
  785. #address-cells = <1>;
  786. #size-cells = <0>;
  787. status = "disabled";
  788. };
  789.  
  790. thermal_zones: thermal-zones {
  791. soc_thermal: soc-thermal {
  792. polling-delay-passive = <20>;
  793. polling-delay = <1000>;
  794. sustainable-power = <1000>;
  795.  
  796. thermal-sensors = <&tsadc 0>;
  797.  
  798. trips {
  799. threshold: trip-point-0 {
  800. temperature = <70000>;
  801. hysteresis = <2000>;
  802. type = "passive";
  803. };
  804. target: trip-point-1 {
  805. temperature = <85000>;
  806. hysteresis = <2000>;
  807. type = "passive";
  808. };
  809. soc_crit: soc-crit {
  810. temperature = <115000>;
  811. hysteresis = <2000>;
  812. type = "critical";
  813. };
  814. };
  815.  
  816. cooling-maps {
  817. map0 {
  818. trip = <&target>;
  819. cooling-device =
  820. <&cpu_l0 (~0) (~0)>;
  821. contribution = <4096>;
  822. };
  823. map1 {
  824. trip = <&target>;
  825. cooling-device =
  826. <&cpu_b0 (~0) (~0)>;
  827. contribution = <1024>;
  828. };
  829. map2 {
  830. trip = <&target>;
  831. cooling-device =
  832. <&gpu (~0) (~0)>;
  833. contribution = <4096>;
  834. };
  835. };
  836. };
  837.  
  838. gpu_thermal: gpu-thermal {
  839. polling-delay-passive = <100>;
  840. polling-delay = <1000>;
  841.  
  842. thermal-sensors = <&tsadc 1>;
  843. };
  844. };
  845.  
  846. tsadc: tsadc@ff260000 {
  847. compatible = "rockchip,rk3399-tsadc";
  848. reg = <0x0 0xff260000 0x0 0x100>;
  849. interrupts = <0 97 4 0>;
  850. assigned-clocks = <&cru 79>;
  851. assigned-clock-rates = <750000>;
  852. clocks = <&cru 79>, <&cru 356>;
  853. clock-names = "tsadc", "apb_pclk";
  854. resets = <&cru 232>;
  855. reset-names = "tsadc-apb";
  856. rockchip,grf = <&grf>;
  857. rockchip,hw-tshut-temp = <120000>;
  858. pinctrl-names = "init", "default", "sleep";
  859. pinctrl-0 = <&otp_gpio>;
  860. pinctrl-1 = <&otp_out>;
  861. pinctrl-2 = <&otp_gpio>;
  862. #thermal-sensor-cells = <1>;
  863. status = "disabled";
  864. };
  865.  
  866. qos_emmc: qos@ffa58000 {
  867. compatible = "syscon";
  868. reg = <0x0 0xffa58000 0x0 0x20>;
  869. };
  870.  
  871. qos_gmac: qos@ffa5c000 {
  872. compatible = "syscon";
  873. reg = <0x0 0xffa5c000 0x0 0x20>;
  874. };
  875.  
  876. qos_pcie: qos@ffa60080 {
  877. compatible = "syscon";
  878. reg = <0x0 0xffa60080 0x0 0x20>;
  879. };
  880.  
  881. qos_usb_host0: qos@ffa60100 {
  882. compatible = "syscon";
  883. reg = <0x0 0xffa60100 0x0 0x20>;
  884. };
  885.  
  886. qos_usb_host1: qos@ffa60180 {
  887. compatible = "syscon";
  888. reg = <0x0 0xffa60180 0x0 0x20>;
  889. };
  890.  
  891. qos_usb_otg0: qos@ffa70000 {
  892. compatible = "syscon";
  893. reg = <0x0 0xffa70000 0x0 0x20>;
  894. };
  895.  
  896. qos_usb_otg1: qos@ffa70080 {
  897. compatible = "syscon";
  898. reg = <0x0 0xffa70080 0x0 0x20>;
  899. };
  900.  
  901. qos_sd: qos@ffa74000 {
  902. compatible = "syscon";
  903. reg = <0x0 0xffa74000 0x0 0x20>;
  904. };
  905.  
  906. qos_sdioaudio: qos@ffa76000 {
  907. compatible = "syscon";
  908. reg = <0x0 0xffa76000 0x0 0x20>;
  909. };
  910.  
  911. qos_hdcp: qos@ffa90000 {
  912. compatible = "syscon";
  913. reg = <0x0 0xffa90000 0x0 0x20>;
  914. };
  915.  
  916. qos_iep: qos@ffa98000 {
  917. compatible = "syscon";
  918. reg = <0x0 0xffa98000 0x0 0x20>;
  919. };
  920.  
  921. qos_isp0_m0: qos@ffaa0000 {
  922. compatible = "syscon";
  923. reg = <0x0 0xffaa0000 0x0 0x20>;
  924. };
  925.  
  926. qos_isp0_m1: qos@ffaa0080 {
  927. compatible = "syscon";
  928. reg = <0x0 0xffaa0080 0x0 0x20>;
  929. };
  930.  
  931. qos_isp1_m0: qos@ffaa8000 {
  932. compatible = "syscon";
  933. reg = <0x0 0xffaa8000 0x0 0x20>;
  934. };
  935.  
  936. qos_isp1_m1: qos@ffaa8080 {
  937. compatible = "syscon";
  938. reg = <0x0 0xffaa8080 0x0 0x20>;
  939. };
  940.  
  941. qos_rga_r: qos@ffab0000 {
  942. compatible = "syscon";
  943. reg = <0x0 0xffab0000 0x0 0x20>;
  944. };
  945.  
  946. qos_rga_w: qos@ffab0080 {
  947. compatible = "syscon";
  948. reg = <0x0 0xffab0080 0x0 0x20>;
  949. };
  950.  
  951. qos_video_m0: qos@ffab8000 {
  952. compatible = "syscon";
  953. reg = <0x0 0xffab8000 0x0 0x20>;
  954. };
  955.  
  956. qos_video_m1_r: qos@ffac0000 {
  957. compatible = "syscon";
  958. reg = <0x0 0xffac0000 0x0 0x20>;
  959. };
  960.  
  961. qos_video_m1_w: qos@ffac0080 {
  962. compatible = "syscon";
  963. reg = <0x0 0xffac0080 0x0 0x20>;
  964. };
  965.  
  966. qos_vop_big_r: qos@ffac8000 {
  967. compatible = "syscon";
  968. reg = <0x0 0xffac8000 0x0 0x20>;
  969. };
  970.  
  971. qos_vop_big_w: qos@ffac8080 {
  972. compatible = "syscon";
  973. reg = <0x0 0xffac8080 0x0 0x20>;
  974. };
  975.  
  976. qos_vop_little: qos@ffad0000 {
  977. compatible = "syscon";
  978. reg = <0x0 0xffad0000 0x0 0x20>;
  979. };
  980.  
  981. qos_perihp: qos@ffad8080 {
  982. compatible = "syscon";
  983. reg = <0x0 0xffad8080 0x0 0x20>;
  984. };
  985.  
  986. qos_gpu: qos@ffae0000 {
  987. compatible = "syscon";
  988. reg = <0x0 0xffae0000 0x0 0x20>;
  989. };
  990.  
  991. pmu: power-management@ff310000 {
  992. compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
  993. reg = <0x0 0xff310000 0x0 0x1000>;
  994. # 973 "arch/arm64/boot/dts/rockchip/rk3399.dtsi"
  995. power: power-controller {
  996. compatible = "rockchip,rk3399-power-controller";
  997. #power-domain-cells = <1>;
  998. #address-cells = <1>;
  999. #size-cells = <0>;
  1000.  
  1001.  
  1002. pd_iep@34 {
  1003. reg = <34>;
  1004. clocks = <&cru 225>,
  1005. <&cru 477>;
  1006. pm_qos = <&qos_iep>;
  1007. };
  1008. pd_rga@33 {
  1009. reg = <33>;
  1010. clocks = <&cru 220>,
  1011. <&cru 485>;
  1012. pm_qos = <&qos_rga_r>,
  1013. <&qos_rga_w>;
  1014. };
  1015. pd_vcodec@31 {
  1016. reg = <31>;
  1017. clocks = <&cru 235>,
  1018. <&cru 490>;
  1019. pm_qos = <&qos_video_m0>;
  1020. };
  1021. pd_vdu@32 {
  1022. reg = <32>;
  1023. clocks = <&cru 237>,
  1024. <&cru 492>;
  1025. pm_qos = <&qos_video_m1_r>,
  1026. <&qos_video_m1_w>;
  1027. };
  1028.  
  1029.  
  1030. pd_gpu@35 {
  1031. reg = <35>;
  1032. clocks = <&cru 208>;
  1033. pm_qos = <&qos_gpu>;
  1034. };
  1035.  
  1036.  
  1037. pd_edp@25 {
  1038. reg = <25>;
  1039. clocks = <&cru 364>;
  1040. };
  1041. pd_emmc@23 {
  1042. reg = <23>;
  1043. clocks = <&cru 240>;
  1044. pm_qos = <&qos_emmc>;
  1045. };
  1046. pd_gmac@22 {
  1047. reg = <22>;
  1048. clocks = <&cru 213>,
  1049. <&cru 358>;
  1050. pm_qos = <&qos_gmac>;
  1051. };
  1052. pd_perihp@14 {
  1053. reg = <14>;
  1054. #address-cells = <1>;
  1055. #size-cells = <0>;
  1056. clocks = <&cru 192>;
  1057. pm_qos = <&qos_perihp>,
  1058. <&qos_pcie>,
  1059. <&qos_usb_host0>,
  1060. <&qos_usb_host1>;
  1061.  
  1062. pd_sd@27 {
  1063. reg = <27>;
  1064. clocks = <&cru 462>,
  1065. <&cru 76>;
  1066. pm_qos = <&qos_sd>;
  1067. };
  1068. };
  1069. pd_sdioaudio@28 {
  1070. reg = <28>;
  1071. clocks = <&cru 494>;
  1072. pm_qos = <&qos_sdioaudio>;
  1073. };
  1074. pd_usb3@24 {
  1075. reg = <24>;
  1076. clocks = <&cru 244>;
  1077. pm_qos = <&qos_usb_otg0>,
  1078. <&qos_usb_otg1>;
  1079. };
  1080. pd_vio@15 {
  1081. reg = <15>;
  1082. #address-cells = <1>;
  1083. #size-cells = <0>;
  1084.  
  1085. pd_hdcp@21 {
  1086. reg = <21>;
  1087. clocks = <&cru 222>,
  1088. <&cru 487>,
  1089. <&cru 370>;
  1090. pm_qos = <&qos_hdcp>;
  1091. };
  1092. pd_isp0@19 {
  1093. reg = <19>;
  1094. clocks = <&cru 229>,
  1095. <&cru 479>;
  1096. pm_qos = <&qos_isp0_m0>,
  1097. <&qos_isp0_m1>;
  1098. };
  1099. pd_isp1@20 {
  1100. reg = <20>;
  1101. clocks = <&cru 230>,
  1102. <&cru 480>;
  1103. pm_qos = <&qos_isp1_m0>,
  1104. <&qos_isp1_m1>;
  1105. };
  1106. pd_tcpc0@RK3399_PD_TCPC0 {
  1107. reg = <8>;
  1108. clocks = <&cru 126>,
  1109. <&cru 125>;
  1110. };
  1111. pd_tcpc1@RK3399_PD_TCPC1 {
  1112. reg = <9>;
  1113. clocks = <&cru 128>,
  1114. <&cru 127>;
  1115. };
  1116. pd_vo@16 {
  1117. reg = <16>;
  1118. #address-cells = <1>;
  1119. #size-cells = <0>;
  1120.  
  1121. pd_vopb@17 {
  1122. reg = <17>;
  1123. clocks = <&cru 217>,
  1124. <&cru 473>;
  1125. pm_qos = <&qos_vop_big_r>,
  1126. <&qos_vop_big_w>;
  1127. };
  1128. pd_vopl@18 {
  1129. reg = <18>;
  1130. clocks = <&cru 219>,
  1131. <&cru 475>;
  1132. pm_qos = <&qos_vop_little>;
  1133. };
  1134. };
  1135. };
  1136. };
  1137. };
  1138.  
  1139. pmugrf: syscon@ff320000 {
  1140. compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
  1141. reg = <0x0 0xff320000 0x0 0x1000>;
  1142. #address-cells = <1>;
  1143. #size-cells = <1>;
  1144.  
  1145. pmu_io_domains: io-domains {
  1146. compatible = "rockchip,rk3399-pmu-io-voltage-domain";
  1147. status = "disabled";
  1148. };
  1149.  
  1150. reboot-mode {
  1151. compatible = "syscon-reboot-mode";
  1152. offset = <0x300>;
  1153. mode-bootloader = <(0x5242C300 + 1)>;
  1154. mode-charge = <(0x5242C300 + 11)>;
  1155. mode-fastboot = <(0x5242C300 + 9)>;
  1156. mode-loader = <(0x5242C300 + 1)>;
  1157. mode-normal = <(0x5242C300 + 0)>;
  1158. mode-recovery = <(0x5242C300 + 3)>;
  1159. mode-ums = <(0x5242C300 + 12)>;
  1160. };
  1161.  
  1162. pmu_pvtm: pmu-pvtm {
  1163. compatible = "rockchip,rk3399-pmu-pvtm";
  1164. clocks = <&pmucru 7>;
  1165. clock-names = "pmu";
  1166. resets = <&cru 27>;
  1167. reset-names = "pmu";
  1168. status = "disabled";
  1169. };
  1170. };
  1171.  
  1172. spi3: spi@ff350000 {
  1173. compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
  1174. reg = <0x0 0xff350000 0x0 0x1000>;
  1175. clocks = <&pmucru 3>, <&pmucru 31>;
  1176. clock-names = "spiclk", "apb_pclk";
  1177. interrupts = <0 60 4 0>;
  1178. pinctrl-names = "default";
  1179. pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>;
  1180. #address-cells = <1>;
  1181. #size-cells = <0>;
  1182. status = "disabled";
  1183. };
  1184.  
  1185. uart4: serial@ff370000 {
  1186. compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
  1187. reg = <0x0 0xff370000 0x0 0x100>;
  1188. clocks = <&pmucru 6>, <&pmucru 34>;
  1189. clock-names = "baudclk", "apb_pclk";
  1190. interrupts = <0 102 4 0>;
  1191. reg-shift = <2>;
  1192. reg-io-width = <4>;
  1193. pinctrl-names = "default";
  1194. pinctrl-0 = <&uart4_xfer>;
  1195. status = "disabled";
  1196. };
  1197.  
  1198. i2c4: i2c@ff3d0000 {
  1199. compatible = "rockchip,rk3399-i2c";
  1200. reg = <0x0 0xff3d0000 0x0 0x1000>;
  1201. clocks = <&pmucru 10>, <&pmucru 28>;
  1202. clock-names = "i2c", "pclk";
  1203. interrupts = <0 56 4 0>;
  1204. pinctrl-names = "default";
  1205. pinctrl-0 = <&i2c4_xfer>;
  1206. #address-cells = <1>;
  1207. #size-cells = <0>;
  1208. status = "disabled";
  1209. };
  1210.  
  1211. i2c8: i2c@ff3e0000 {
  1212. compatible = "rockchip,rk3399-i2c";
  1213. reg = <0x0 0xff3e0000 0x0 0x1000>;
  1214. clocks = <&pmucru 11>, <&pmucru 29>;
  1215. clock-names = "i2c", "pclk";
  1216. interrupts = <0 58 4 0>;
  1217. pinctrl-names = "default";
  1218. pinctrl-0 = <&i2c8_xfer>;
  1219. #address-cells = <1>;
  1220. #size-cells = <0>;
  1221. status = "disabled";
  1222. };
  1223.  
  1224. pcie_phy: pcie-phy {
  1225. compatible = "rockchip,rk3399-pcie-phy";
  1226. #phy-cells = <0>;
  1227. rockchip,grf = <&grf>;
  1228. clocks = <&cru 138>;
  1229. clock-names = "refclk";
  1230. resets = <&cru 135>;
  1231. reset-names = "phy";
  1232. status = "disabled";
  1233. };
  1234.  
  1235. pcie0: pcie@f8000000 {
  1236. compatible = "rockchip,rk3399-pcie";
  1237. #address-cells = <3>;
  1238. #size-cells = <2>;
  1239. aspm-no-l0s;
  1240. clocks = <&cru 197>, <&cru 196>,
  1241. <&cru 327>, <&cru 160>;
  1242. clock-names = "aclk", "aclk-perf",
  1243. "hclk", "pm";
  1244. bus-range = <0x0 0x1f>;
  1245. max-link-speed = <1>;
  1246. linux,pci-domain = <0>;
  1247. msi-map = <0x0 &its 0x0 0x1000>;
  1248. interrupts = <0 49 4 0>,
  1249. <0 50 4 0>,
  1250. <0 51 4 0>;
  1251. interrupt-names = "sys", "legacy", "client";
  1252. #interrupt-cells = <1>;
  1253. interrupt-map-mask = <0 0 0 7>;
  1254. interrupt-map = <0 0 0 1 &pcie0_intc 0>,
  1255. <0 0 0 2 &pcie0_intc 1>,
  1256. <0 0 0 3 &pcie0_intc 2>,
  1257. <0 0 0 4 &pcie0_intc 3>;
  1258. phys = <&pcie_phy>;
  1259. phy-names = "pcie-phy";
  1260. ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000
  1261. 0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
  1262. reg = <0x0 0xf8000000 0x0 0x2000000>,
  1263. <0x0 0xfd000000 0x0 0x1000000>;
  1264. reg-names = "axi-base", "apb-base";
  1265. resets = <&cru 130>, <&cru 131>,
  1266. <&cru 132>, <&cru 133>,
  1267. <&cru 134>, <&cru 129>,
  1268. <&cru 128>;
  1269. reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
  1270. "pm", "pclk", "aclk";
  1271. status = "disabled";
  1272. pcie0_intc: interrupt-controller {
  1273. interrupt-controller;
  1274. #address-cells = <0>;
  1275. #interrupt-cells = <1>;
  1276. };
  1277. };
  1278.  
  1279. pwm0: pwm@ff420000 {
  1280. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  1281. reg = <0x0 0xff420000 0x0 0x10>;
  1282. #pwm-cells = <3>;
  1283. pinctrl-names = "active";
  1284. pinctrl-0 = <&pwm0_pin>;
  1285. clocks = <&pmucru 30>;
  1286. clock-names = "pwm";
  1287. status = "disabled";
  1288. };
  1289.  
  1290. pwm1: pwm@ff420010 {
  1291. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  1292. reg = <0x0 0xff420010 0x0 0x10>;
  1293. #pwm-cells = <3>;
  1294. pinctrl-names = "active";
  1295. pinctrl-0 = <&pwm1_pin>;
  1296. clocks = <&pmucru 30>;
  1297. clock-names = "pwm";
  1298. status = "disabled";
  1299. };
  1300.  
  1301. pwm2: pwm@ff420020 {
  1302. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  1303. reg = <0x0 0xff420020 0x0 0x10>;
  1304. #pwm-cells = <3>;
  1305. pinctrl-names = "active";
  1306. pinctrl-0 = <&pwm2_pin>;
  1307. clocks = <&pmucru 30>;
  1308. clock-names = "pwm";
  1309. status = "disabled";
  1310. };
  1311.  
  1312. pwm3: pwm@ff420030 {
  1313. compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
  1314. reg = <0x0 0xff420030 0x0 0x10>;
  1315. #pwm-cells = <3>;
  1316. pinctrl-names = "active";
  1317. pinctrl-0 = <&pwm3a_pin>;
  1318. clocks = <&pmucru 30>;
  1319. clock-names = "pwm";
  1320. status = "disabled";
  1321. };
  1322.  
  1323. dfi: dfi@ff630000 {
  1324. reg = <0x00 0xff630000 0x00 0x4000>;
  1325. compatible = "rockchip,rk3399-dfi";
  1326. rockchip,pmu = <&pmugrf>;
  1327. clocks = <&cru 377>;
  1328. clock-names = "pclk_ddr_mon";
  1329. status = "disabled";
  1330. };
  1331.  
  1332. dmc: dmc {
  1333. compatible = "rockchip,rk3399-dmc";
  1334. devfreq-events = <&dfi>;
  1335. interrupts = <0 1 4 0>;
  1336. clocks = <&cru 170>;
  1337. clock-names = "dmc_clk";
  1338. ddr_timing = <&ddr_timing>;
  1339. upthreshold = <40>;
  1340. downdifferential = <20>;
  1341. system-status-freq = <
  1342.  
  1343. (1 << 0) 800000
  1344. (1 << 3) 528000
  1345. (1 << 1) 200000
  1346. (1 << 5) 300000
  1347. (1 << 4) 600000
  1348. (1 << 16) 800000
  1349. (1 << 13) 800000
  1350. (1 << 12) 400000
  1351. ((1 << 10) | (1 << 11)) 600000
  1352. (1 << 14) 600000
  1353. >;
  1354. auto-min-freq = <400000>;
  1355. auto-freq-en = <1>;
  1356. status = "disabled";
  1357. };
  1358.  
  1359. vpu: vpu_service@ff650000 {
  1360. compatible = "rockchip,vpu_service";
  1361. rockchip,grf = <&grf>;
  1362. iommus = <&vpu_mmu>;
  1363. iommu_enabled = <1>;
  1364. reg = <0x0 0xff650000 0x0 0x800>;
  1365. interrupts = <0 113 4 0>,
  1366. <0 114 4 0>;
  1367. interrupt-names = "irq_dec", "irq_enc";
  1368. clocks = <&cru 235>, <&cru 490>;
  1369. clock-names = "aclk_vcodec", "hclk_vcodec";
  1370. resets = <&cru 83>, <&cru 81>;
  1371. reset-names = "video_h", "video_a";
  1372. power-domains = <&power 31>;
  1373. name = "vpu_service";
  1374. dev_mode = <0>;
  1375.  
  1376. allocator = <1>;
  1377. status = "disabled";
  1378. };
  1379.  
  1380. vpu_mmu: iommu@ff650800 {
  1381. compatible = "rockchip,iommu";
  1382. reg = <0x0 0xff650800 0x0 0x40>;
  1383. interrupts = <0 115 4 0>;
  1384. interrupt-names = "vpu_mmu";
  1385. clocks = <&cru 235>, <&cru 490>;
  1386. clock-names = "aclk", "hclk";
  1387. power-domains = <&power 31>;
  1388. #iommu-cells = <0>;
  1389. };
  1390.  
  1391. rkvdec: rkvdec@ff660000 {
  1392. compatible = "rockchip,rkvdec";
  1393. rockchip,grf = <&grf>;
  1394. iommus = <&vdec_mmu>;
  1395. iommu_enabled = <1>;
  1396. reg = <0x0 0xff660000 0x0 0x400>;
  1397. interrupts = <0 116 4 0>;
  1398. interrupt-names = "irq_dec";
  1399. clocks = <&cru 237>, <&cru 492>,
  1400. <&cru 159>, <&cru 158>;
  1401. clock-names = "aclk_vcodec", "hclk_vcodec",
  1402. "clk_cabac", "clk_core";
  1403. resets = <&cru 91>, <&cru 89>,
  1404. <&cru 92>, <&cru 93>,
  1405. <&cru 88>, <&cru 90>;
  1406. reset-names = "video_h", "video_a", "video_core", "video_cabac",
  1407. "niu_a", "niu_h";
  1408. power-domains = <&power 32>;
  1409. dev_mode = <2>;
  1410. name = "rkvdec";
  1411.  
  1412. allocator = <1>;
  1413. status = "disabled";
  1414. };
  1415.  
  1416. vdec_mmu: iommu@ff660480 {
  1417. compatible = "rockchip,iommu";
  1418. reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>;
  1419. interrupts = <0 117 4 0>;
  1420. interrupt-names = "vdec_mmu";
  1421. clocks = <&cru 237>, <&cru 492>;
  1422. clock-names = "aclk", "hclk";
  1423. power-domains = <&power 32>;
  1424. #iommu-cells = <0>;
  1425. };
  1426.  
  1427. iep: iep@ff670000 {
  1428. compatible = "rockchip,iep";
  1429. iommu_enabled = <1>;
  1430. iommus = <&iep_mmu>;
  1431. reg = <0x0 0xff670000 0x0 0x800>;
  1432. interrupts = <0 42 4 0>;
  1433. clocks = <&cru 225>, <&cru 477>;
  1434. clock-names = "aclk_iep", "hclk_iep";
  1435. power-domains = <&power 34>;
  1436. allocator = <1>;
  1437. version = <2>;
  1438. status = "disabled";
  1439. };
  1440.  
  1441. iep_mmu: iommu@ff670800 {
  1442. compatible = "rockchip,iommu";
  1443. reg = <0x0 0xff670800 0x0 0x40>;
  1444. interrupts = <0 42 4 0>;
  1445. interrupt-names = "iep_mmu";
  1446. #iommu-cells = <0>;
  1447. status = "disabled";
  1448. };
  1449.  
  1450. rga: rga@ff680000 {
  1451. compatible = "rockchip,rk3399-rga";
  1452. reg = <0x0 0xff680000 0x0 0x10000>;
  1453. interrupts = <0 55 4 0>;
  1454. clocks = <&cru 220>, <&cru 485>, <&cru 109>;
  1455. clock-names = "aclk", "hclk", "sclk";
  1456. resets = <&cru 106>, <&cru 103>, <&cru 105>;
  1457. reset-names = "core", "axi", "ahb";
  1458. power-domains = <&power 33>;
  1459. status = "disabled";
  1460. };
  1461.  
  1462. efuse0: efuse@ff690000 {
  1463. compatible = "rockchip,rk3399-efuse";
  1464. reg = <0x0 0xff690000 0x0 0x80>;
  1465. #address-cells = <1>;
  1466. #size-cells = <1>;
  1467. clocks = <&cru 381>;
  1468. clock-names = "pclk_efuse";
  1469.  
  1470.  
  1471. cpu_id: cpu-id@7 {
  1472. reg = <0x07 0x10>;
  1473. };
  1474. cpub_leakage: cpu-leakage@17 {
  1475. reg = <0x17 0x1>;
  1476. };
  1477. gpu_leakage: gpu-leakage@18 {
  1478. reg = <0x18 0x1>;
  1479. };
  1480. center_leakage: center-leakage@19 {
  1481. reg = <0x19 0x1>;
  1482. };
  1483. cpul_leakage: cpu-leakage@1a {
  1484. reg = <0x1a 0x1>;
  1485. };
  1486. logic_leakage: logic-leakage@1b {
  1487. reg = <0x1b 0x1>;
  1488. };
  1489. wafer_info: wafer-info@1c {
  1490. reg = <0x1c 0x1>;
  1491. };
  1492. };
  1493.  
  1494. pmucru: pmu-clock-controller@ff750000 {
  1495. compatible = "rockchip,rk3399-pmucru";
  1496. reg = <0x0 0xff750000 0x0 0x1000>;
  1497. #clock-cells = <1>;
  1498. #reset-cells = <1>;
  1499. assigned-clocks = <&pmucru 1>, <&pmucru 44>;
  1500. assigned-clock-rates = <676000000>, <97000000>;
  1501. };
  1502.  
  1503. cru: clock-controller@ff760000 {
  1504. compatible = "rockchip,rk3399-cru";
  1505. reg = <0x0 0xff760000 0x0 0x1000>;
  1506. #clock-cells = <1>;
  1507. #reset-cells = <1>;
  1508. assigned-clocks =
  1509. <&cru 217>, <&cru 473>,
  1510. <&cru 219>, <&cru 475>,
  1511. <&cru 8>, <&cru 9>,
  1512. <&cru 5>, <&cru 4>,
  1513. <&cru 208>, <&cru 6>,
  1514. <&cru 192>, <&cru 448>,
  1515. <&cru 320>,
  1516. <&cru 194>, <&cru 449>,
  1517. <&cru 322>, <&cru 201>,
  1518. <&cru 450>, <&cru 323>,
  1519. <&cru 227>, <&cru 222>,
  1520. <&cru 262>,
  1521. <&cru 376>;
  1522. assigned-clock-rates =
  1523. <400000000>, <200000000>,
  1524. <400000000>, <200000000>,
  1525. <816000000>, <816000000>,
  1526. <594000000>, <800000000>,
  1527. <200000000>, <1000000000>,
  1528. <150000000>, <75000000>,
  1529. <37500000>,
  1530. <100000000>, <100000000>,
  1531. <50000000>, <600000000>,
  1532. <100000000>, <50000000>,
  1533. <400000000>, <400000000>,
  1534. <200000000>,
  1535. <200000000>;
  1536. };
  1537.  
  1538. grf: syscon@ff770000 {
  1539. compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
  1540. reg = <0x0 0xff770000 0x0 0x10000>;
  1541. #address-cells = <1>;
  1542. #size-cells = <1>;
  1543.  
  1544. io_domains: io-domains {
  1545. compatible = "rockchip,rk3399-io-voltage-domain";
  1546. status = "disabled";
  1547. };
  1548.  
  1549. u2phy0: usb2-phy@e450 {
  1550. compatible = "rockchip,rk3399-usb2phy";
  1551. reg = <0xe450 0x10>;
  1552. clocks = <&cru 123>;
  1553. clock-names = "phyclk";
  1554. #clock-cells = <0>;
  1555. clock-output-names = "clk_usbphy0_480m";
  1556. status = "disabled";
  1557.  
  1558. u2phy0_host: host-port {
  1559. #phy-cells = <0>;
  1560. interrupts = <0 27 4 0>;
  1561. interrupt-names = "linestate";
  1562. status = "disabled";
  1563. };
  1564.  
  1565. u2phy0_otg: otg-port {
  1566. #phy-cells = <0>;
  1567. interrupts = <0 103 4 0>,
  1568. <0 104 4 0>,
  1569. <0 106 4 0>;
  1570. interrupt-names = "otg-bvalid", "otg-id",
  1571. "linestate";
  1572. status = "disabled";
  1573. };
  1574. };
  1575.  
  1576. u2phy1: usb2-phy@e460 {
  1577. compatible = "rockchip,rk3399-usb2phy";
  1578. reg = <0xe460 0x10>;
  1579. clocks = <&cru 124>;
  1580. clock-names = "phyclk";
  1581. #clock-cells = <0>;
  1582. clock-output-names = "clk_usbphy1_480m";
  1583. status = "disabled";
  1584.  
  1585. u2phy1_host: host-port {
  1586. #phy-cells = <0>;
  1587. interrupts = <0 31 4 0>;
  1588. interrupt-names = "linestate";
  1589. status = "disabled";
  1590. };
  1591.  
  1592. u2phy1_otg: otg-port {
  1593. #phy-cells = <0>;
  1594. interrupts = <0 108 4 0>,
  1595. <0 109 4 0>,
  1596. <0 111 4 0>;
  1597. interrupt-names = "otg-bvalid", "otg-id",
  1598. "linestate";
  1599. status = "disabled";
  1600. };
  1601. };
  1602.  
  1603. emmc_phy: phy@f780 {
  1604. compatible = "rockchip,rk3399-emmc-phy";
  1605. reg = <0xf780 0x24>;
  1606. clocks = <&sdhci>;
  1607. clock-names = "emmcclk";
  1608. #phy-cells = <0>;
  1609. status = "disabled";
  1610. };
  1611.  
  1612. mipi_dphy_rx0: mipi-dphy-rx0 {
  1613. compatible = "rockchip,rk3399-mipi-dphy";
  1614. clocks = <&cru 119>,
  1615. <&cru 165>,
  1616. <&cru 367>;
  1617. clock-names = "dphy-ref", "dphy-cfg", "grf";
  1618. power-domains = <&power 15>;
  1619. status = "disabled";
  1620. };
  1621.  
  1622. pvtm: pvtm {
  1623. compatible = "rockchip,rk3399-pvtm";
  1624. clocks = <&cru 115>,
  1625. <&cru 116>,
  1626. <&cru 117>,
  1627. <&cru 118>;
  1628. clock-names = "core_l", "core_b", "gpu", "ddr";
  1629. resets = <&cru 31>,
  1630. <&cru 47>,
  1631. <&cru 291>,
  1632. <&cru 79>;
  1633. reset-names = "core_l", "core_b", "gpu", "ddr";
  1634. status = "disabled";
  1635. };
  1636. };
  1637.  
  1638. tcphy0: phy@ff7c0000 {
  1639. compatible = "rockchip,rk3399-typec-phy";
  1640. reg = <0x0 0xff7c0000 0x0 0x40000>;
  1641. #phy-cells = <1>;
  1642. clocks = <&cru 126>,
  1643. <&cru 125>;
  1644. clock-names = "tcpdcore", "tcpdphy-ref";
  1645. assigned-clocks = <&cru 126>;
  1646. assigned-clock-rates = <50000000>;
  1647. power-domains = <&power 8>;
  1648. resets = <&cru 149>,
  1649. <&cru 148>,
  1650. <&cru 332>;
  1651. reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
  1652. rockchip,grf = <&grf>;
  1653. rockchip,typec-conn-dir = <0xe580 0 16>;
  1654. rockchip,usb3tousb2-en = <0xe580 3 19>;
  1655. rockchip,usb3-host-disable = <0x2434 0 16>;
  1656. rockchip,usb3-host-port = <0x2434 12 28>;
  1657. rockchip,external-psm = <0xe588 14 30>;
  1658. rockchip,pipe-status = <0xe5c0 0 0>;
  1659. rockchip,uphy-dp-sel = <0x6268 19 19>;
  1660. status = "disabled";
  1661.  
  1662. tcphy0_dp: dp-port {
  1663. #phy-cells = <0>;
  1664. };
  1665.  
  1666. tcphy0_usb3: usb3-port {
  1667. #phy-cells = <0>;
  1668. };
  1669. };
  1670.  
  1671. tcphy1: phy@ff800000 {
  1672. compatible = "rockchip,rk3399-typec-phy";
  1673. reg = <0x0 0xff800000 0x0 0x40000>;
  1674. #phy-cells = <1>;
  1675. clocks = <&cru 128>,
  1676. <&cru 127>;
  1677. clock-names = "tcpdcore", "tcpdphy-ref";
  1678. assigned-clocks = <&cru 128>;
  1679. assigned-clock-rates = <50000000>;
  1680. power-domains = <&power 9>;
  1681. resets = <&cru 157>,
  1682. <&cru 156>,
  1683. <&cru 333>;
  1684. reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
  1685. rockchip,grf = <&grf>;
  1686. rockchip,typec-conn-dir = <0xe58c 0 16>;
  1687. rockchip,usb3tousb2-en = <0xe58c 3 19>;
  1688. rockchip,usb3-host-disable = <0x2444 0 16>;
  1689. rockchip,usb3-host-port = <0x2444 12 28>;
  1690. rockchip,external-psm = <0xe594 14 30>;
  1691. rockchip,pipe-status = <0xe5c0 16 16>;
  1692. rockchip,uphy-dp-sel = <0x6268 3 19>;
  1693. status = "disabled";
  1694.  
  1695. tcphy1_dp: dp-port {
  1696. #phy-cells = <0>;
  1697. };
  1698.  
  1699. tcphy1_usb3: usb3-port {
  1700. #phy-cells = <0>;
  1701. };
  1702. };
  1703.  
  1704. watchdog@ff848000 {
  1705. compatible = "snps,dw-wdt";
  1706. reg = <0x0 0xff848000 0x0 0x100>;
  1707. clocks = <&cru 380>;
  1708. interrupts = <0 120 4 0>;
  1709. };
  1710.  
  1711. rktimer: rktimer@ff850000 {
  1712. compatible = "rockchip,rk3399-timer";
  1713. reg = <0x0 0xff850000 0x0 0x1000>;
  1714. interrupts = <0 81 4 0>;
  1715. clocks = <&cru 360>, <&cru 90>;
  1716. clock-names = "pclk", "timer";
  1717. };
  1718.  
  1719. spdif: spdif@ff870000 {
  1720. compatible = "rockchip,rk3399-spdif";
  1721. reg = <0x0 0xff870000 0x0 0x1000>;
  1722. interrupts = <0 66 4 0>;
  1723. dmas = <&dmac_bus 7>;
  1724. dma-names = "tx";
  1725. clock-names = "mclk", "hclk";
  1726. clocks = <&cru 85>, <&cru 471>;
  1727. pinctrl-names = "default";
  1728. pinctrl-0 = <&spdif_bus>;
  1729. power-domains = <&power 28>;
  1730. status = "disabled";
  1731. };
  1732.  
  1733. i2s0: i2s@ff880000 {
  1734. compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
  1735. reg = <0x0 0xff880000 0x0 0x1000>;
  1736. rockchip,grf = <&grf>;
  1737. interrupts = <0 39 4 0>;
  1738. dmas = <&dmac_bus 0>, <&dmac_bus 1>;
  1739. dma-names = "tx", "rx";
  1740. clock-names = "i2s_clk", "i2s_hclk";
  1741. clocks = <&cru 86>, <&cru 468>;
  1742. pinctrl-names = "default";
  1743. pinctrl-0 = <&i2s0_8ch_bus>;
  1744. power-domains = <&power 28>;
  1745. status = "disabled";
  1746. };
  1747.  
  1748. i2s1: i2s@ff890000 {
  1749. compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
  1750. reg = <0x0 0xff890000 0x0 0x1000>;
  1751. interrupts = <0 40 4 0>;
  1752. dmas = <&dmac_bus 2>, <&dmac_bus 3>;
  1753. dma-names = "tx", "rx";
  1754. clock-names = "i2s_clk", "i2s_hclk";
  1755. clocks = <&cru 87>, <&cru 469>;
  1756. pinctrl-names = "default";
  1757. pinctrl-0 = <&i2s1_2ch_bus>;
  1758. power-domains = <&power 28>;
  1759. status = "disabled";
  1760. };
  1761.  
  1762. i2s2: i2s@ff8a0000 {
  1763. compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
  1764. reg = <0x0 0xff8a0000 0x0 0x1000>;
  1765. interrupts = <0 41 4 0>;
  1766. dmas = <&dmac_bus 4>, <&dmac_bus 5>;
  1767. dma-names = "tx", "rx";
  1768. clock-names = "i2s_clk", "i2s_hclk";
  1769. clocks = <&cru 88>, <&cru 470>;
  1770. power-domains = <&power 28>;
  1771. status = "disabled";
  1772. };
  1773.  
  1774. gpu: gpu@ff9a0000 {
  1775. compatible = "arm,malit860",
  1776. "arm,malit86x",
  1777. "arm,malit8xx",
  1778. "arm,mali-midgard";
  1779.  
  1780. reg = <0x0 0xff9a0000 0x0 0x10000>;
  1781.  
  1782. interrupts = <0 19 4 0>,
  1783. <0 20 4 0>,
  1784. <0 21 4 0>;
  1785. interrupt-names = "GPU", "JOB", "MMU";
  1786.  
  1787. clocks = <&cru 208>;
  1788. clock-names = "clk_mali";
  1789. #cooling-cells = <2>;
  1790. power-domains = <&power 35>;
  1791. power-off-delay-ms = <200>;
  1792. status = "disabled";
  1793.  
  1794. gpu_power_model: power_model {
  1795. compatible = "arm,mali-simple-power-model";
  1796. static-coefficient = <411000>;
  1797. dynamic-coefficient = <733>;
  1798. ts = <32000 4700 (-80) 2>;
  1799. thermal-zone = "gpu-thermal";
  1800. };
  1801. };
  1802.  
  1803. vopl: vop@ff8f0000 {
  1804. compatible = "rockchip,rk3399-vop-lit";
  1805. reg = <0x0 0xff8f0000 0x0 0x600>,
  1806. <0x0 0xff8f1c00 0x0 0x200>,
  1807. <0x0 0xff8f2000 0x0 0x400>;
  1808. reg-names = "regs", "cabc_lut", "gamma_lut";
  1809. interrupts = <0 119 4 0>;
  1810. clocks = <&cru 219>, <&cru 181>, <&cru 475>, <&cru 183>;
  1811. clock-names = "aclk_vop", "dclk_vop", "hclk_vop", "dclk_source";
  1812. iommus = <&vopl_mmu>;
  1813. power-domains = <&power 18>;
  1814. resets = <&cru 275>, <&cru 279>, <&cru 281>;
  1815. reset-names = "axi", "ahb", "dclk";
  1816. status = "disabled";
  1817.  
  1818. vopl_out: port {
  1819. #address-cells = <1>;
  1820. #size-cells = <0>;
  1821.  
  1822. vopl_out_dsi: endpoint@0 {
  1823. reg = <0>;
  1824. remote-endpoint = <&dsi_in_vopl>;
  1825. };
  1826.  
  1827. vopl_out_edp: endpoint@1 {
  1828. reg = <1>;
  1829. remote-endpoint = <&edp_in_vopl>;
  1830. };
  1831.  
  1832. vopl_out_hdmi: endpoint@2 {
  1833. reg = <2>;
  1834. remote-endpoint = <&hdmi_in_vopl>;
  1835. };
  1836.  
  1837. vopl_out_dp: endpoint@3 {
  1838. reg = <3>;
  1839. remote-endpoint = <&dp_in_vopl>;
  1840. };
  1841.  
  1842. vopl_out_dsi1: endpoint@4 {
  1843. reg = <4>;
  1844. remote-endpoint = <&dsi1_in_vopl>;
  1845. };
  1846. };
  1847. };
  1848.  
  1849. vop1_pwm: voppwm@ff8f01a0 {
  1850. compatible = "rockchip,vop-pwm";
  1851. reg = <0x0 0xff8f01a0 0x0 0x10>;
  1852. #pwm-cells = <3>;
  1853. pinctrl-names = "active";
  1854. pinctrl-0 = <&vop1_pwm_pin>;
  1855. clocks = <&cru 108>;
  1856. clock-names = "pwm";
  1857. status = "disabled";
  1858. };
  1859.  
  1860. vopl_mmu: iommu@ff8f3f00 {
  1861. compatible = "rockchip,iommu";
  1862. reg = <0x0 0xff8f3f00 0x0 0x100>;
  1863. interrupts = <0 119 4 0>;
  1864. interrupt-names = "vopl_mmu";
  1865. clocks = <&cru 219>, <&cru 475>;
  1866. clock-names = "aclk", "hclk";
  1867. power-domains = <&power 18>;
  1868. #iommu-cells = <0>;
  1869. status = "disabled";
  1870. };
  1871.  
  1872. vopb: vop@ff900000 {
  1873. compatible = "rockchip,rk3399-vop-big";
  1874. reg = <0x0 0xff900000 0x0 0x600>,
  1875. <0x0 0xff901c00 0x0 0x200>,
  1876. <0x0 0xff902000 0x0 0x1000>;
  1877. reg-names = "regs", "cabc_lut", "gamma_lut";
  1878. interrupts = <0 118 4 0>;
  1879. clocks = <&cru 217>, <&cru 180>, <&cru 473>, <&cru 182>;
  1880. clock-names = "aclk_vop", "dclk_vop", "hclk_vop", "dclk_source";
  1881. resets = <&cru 274>, <&cru 278>, <&cru 280>;
  1882. reset-names = "axi", "ahb", "dclk";
  1883. power-domains = <&power 17>;
  1884. iommus = <&vopb_mmu>;
  1885. status = "disabled";
  1886.  
  1887. vopb_out: port {
  1888. #address-cells = <1>;
  1889. #size-cells = <0>;
  1890.  
  1891. vopb_out_edp: endpoint@0 {
  1892. reg = <0>;
  1893. remote-endpoint = <&edp_in_vopb>;
  1894. };
  1895.  
  1896. vopb_out_dsi: endpoint@1 {
  1897. reg = <1>;
  1898. remote-endpoint = <&dsi_in_vopb>;
  1899. };
  1900.  
  1901. vopb_out_hdmi: endpoint@2 {
  1902. reg = <2>;
  1903. remote-endpoint = <&hdmi_in_vopb>;
  1904. };
  1905.  
  1906. vopb_out_dp: endpoint@3 {
  1907. reg = <3>;
  1908. remote-endpoint = <&dp_in_vopb>;
  1909. };
  1910.  
  1911. vopb_out_dsi1: endpoint@4 {
  1912. reg = <4>;
  1913. remote-endpoint = <&dsi1_in_vopb>;
  1914. };
  1915. };
  1916. };
  1917.  
  1918. vop0_pwm: voppwm@ff9001a0 {
  1919. compatible = "rockchip,vop-pwm";
  1920. reg = <0x0 0xff9001a0 0x0 0x10>;
  1921. #pwm-cells = <3>;
  1922. pinctrl-names = "active";
  1923. pinctrl-0 = <&vop0_pwm_pin>;
  1924. clocks = <&cru 107>;
  1925. clock-names = "pwm";
  1926. status = "disabled";
  1927. };
  1928.  
  1929. vopb_mmu: iommu@ff903f00 {
  1930. compatible = "rockchip,iommu";
  1931. reg = <0x0 0xff903f00 0x0 0x100>;
  1932. interrupts = <0 118 4 0>;
  1933. interrupt-names = "vopb_mmu";
  1934. clocks = <&cru 217>, <&cru 473>;
  1935. clock-names = "aclk", "hclk";
  1936. power-domains = <&power 17>;
  1937. #iommu-cells = <0>;
  1938. status = "disabled";
  1939. };
  1940.  
  1941. rkisp1_0: rkisp1@ff910000 {
  1942. compatible = "rockchip,rk3399-rkisp1";
  1943. reg = <0x0 0xff910000 0x0 0x4000>;
  1944. interrupts = <0 43 4 0>;
  1945. clocks = <&cru 110>,
  1946. <&cru 229>, <&cru 479>,
  1947. <&cru 233>, <&cru 483>;
  1948. clock-names = "clk_isp",
  1949. "aclk_isp", "hclk_isp",
  1950. "aclk_isp_wrap", "hclk_isp_wrap";
  1951. devfreq = <&dmc>;
  1952. power-domains = <&power 19>;
  1953. iommus = <&isp0_mmu>;
  1954. status = "disabled";
  1955. };
  1956.  
  1957. isp0_mmu: iommu@ff914000 {
  1958. compatible = "rockchip,iommu";
  1959. reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
  1960. interrupts = <0 43 4 0>;
  1961. interrupt-names = "isp0_mmu";
  1962. #iommu-cells = <0>;
  1963. clocks = <&cru 233>, <&cru 483>;
  1964. clock-names = "aclk", "hclk";
  1965. power-domains = <&power 19>;
  1966. rk_iommu,disable_reset_quirk;
  1967. status = "disabled";
  1968. };
  1969.  
  1970. rkisp1_1: rkisp1@ff920000 {
  1971. compatible = "rockchip,rk3399-rkisp1";
  1972. reg = <0x0 0xff920000 0x0 0x4000>;
  1973. interrupts = <0 44 4 0>;
  1974. clocks = <&cru 111>,
  1975. <&cru 230>, <&cru 480>,
  1976. <&cru 234>, <&cru 484>,
  1977. <&cru 379>;
  1978. clock-names = "clk_isp",
  1979. "aclk_isp", "hclk_isp",
  1980. "aclk_isp_wrap", "hclk_isp_wrap",
  1981. "pclk_isp_wrap";
  1982. devfreq = <&dmc>;
  1983. power-domains = <&power 20>;
  1984. iommus = <&isp1_mmu>;
  1985. status = "disabled";
  1986. };
  1987.  
  1988. isp1_mmu: iommu@ff924000 {
  1989. compatible = "rockchip,iommu";
  1990. reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
  1991. interrupts = <0 44 4 0>;
  1992. interrupt-names = "isp1_mmu";
  1993. #iommu-cells = <0>;
  1994. clocks = <&cru 234>, <&cru 484>;
  1995. clock-names = "aclk", "hclk";
  1996. power-domains = <&power 20>;
  1997. rk_iommu,disable_reset_quirk;
  1998. status = "disabled";
  1999. };
  2000.  
  2001. hdmi: hdmi@ff940000 {
  2002. compatible = "rockchip,rk3399-dw-hdmi";
  2003. reg = <0x0 0xff940000 0x0 0x20000>;
  2004. pinctrl-names = "default";
  2005. pinctrl-0 = <&hdmi_i2c_xfer>;
  2006. interrupts = <0 23 4 0>;
  2007. clocks = <&cru 372>,
  2008. <&cru 113>,
  2009. <&cru 7>,
  2010. <&cru 367>;
  2011. clock-names = "iahb", "isfr", "vpll", "grf";
  2012. power-domains = <&power 21>;
  2013. reg-io-width = <4>;
  2014. rockchip,grf = <&grf>;
  2015. status = "okay";
  2016.  
  2017. ports {
  2018. hdmi_in: port {
  2019. #address-cells = <1>;
  2020. #size-cells = <0>;
  2021. hdmi_in_vopb: endpoint@0 {
  2022. reg = <0>;
  2023. remote-endpoint = <&vopb_out_hdmi>;
  2024. };
  2025. hdmi_in_vopl: endpoint@1 {
  2026. reg = <1>;
  2027. remote-endpoint = <&vopl_out_hdmi>;
  2028. };
  2029. };
  2030. };
  2031. };
  2032.  
  2033. dsi: dsi@ff960000 {
  2034. compatible = "rockchip,rk3399-mipi-dsi";
  2035. reg = <0x0 0xff960000 0x0 0x8000>;
  2036. interrupts = <0 45 4 0>;
  2037. clocks = <&cru 162>, <&cru 368>,
  2038. <&cru 163>;
  2039. clock-names = "ref", "pclk", "phy_cfg";
  2040. power-domains = <&power 15>;
  2041. resets = <&cru 251>;
  2042. reset-names = "apb";
  2043. rockchip,grf = <&grf>;
  2044. status = "disabled";
  2045. #address-cells = <1>;
  2046. #size-cells = <0>;
  2047.  
  2048. ports {
  2049. port {
  2050. #address-cells = <1>;
  2051. #size-cells = <0>;
  2052.  
  2053. dsi_in_vopb: endpoint@0 {
  2054. reg = <0>;
  2055. remote-endpoint = <&vopb_out_dsi>;
  2056. };
  2057.  
  2058. dsi_in_vopl: endpoint@1 {
  2059. reg = <1>;
  2060. remote-endpoint = <&vopl_out_dsi>;
  2061. };
  2062. };
  2063. };
  2064. };
  2065.  
  2066. dsi1: dsi@ff968000 {
  2067. compatible = "rockchip,rk3399-mipi-dsi";
  2068. reg = <0x0 0xff968000 0x0 0x8000>;
  2069. interrupts = <0 46 4 0>;
  2070. clocks = <&cru 162>, <&cru 369>,
  2071. <&cru 164>;
  2072. clock-names = "ref", "pclk", "phy_cfg";
  2073. power-domains = <&power 15>;
  2074. resets = <&cru 252>;
  2075. reset-names = "apb";
  2076. rockchip,grf = <&grf>;
  2077. status = "disabled";
  2078. #address-cells = <1>;
  2079. #size-cells = <0>;
  2080.  
  2081. ports {
  2082. port {
  2083. #address-cells = <1>;
  2084. #size-cells = <0>;
  2085.  
  2086. dsi1_in_vopb: endpoint@0 {
  2087. reg = <0>;
  2088. remote-endpoint = <&vopb_out_dsi1>;
  2089. };
  2090.  
  2091. dsi1_in_vopl: endpoint@1 {
  2092. reg = <1>;
  2093. remote-endpoint = <&vopl_out_dsi1>;
  2094. };
  2095. };
  2096. };
  2097. };
  2098.  
  2099. mipi_dphy_tx1rx1: mipi-dphy-tx1rx1@0xff968000 {
  2100. compatible = "rockchip,rk3399-mipi-dphy";
  2101. reg = <0x0 0xff968000 0x0 0x8000>;
  2102. clocks = <&cru 119>,
  2103. <&cru 164>,
  2104. <&cru 367>,
  2105. <&cru 369>;
  2106. clock-names = "dphy-ref", "dphy-cfg",
  2107. "grf", "pclk_mipi_dsi";
  2108. rockchip,grf = <&grf>;
  2109. power-domains = <&power 15>;
  2110. status = "disabled";
  2111. };
  2112.  
  2113. edp: edp@ff970000 {
  2114. compatible = "rockchip,rk3399-edp";
  2115. reg = <0x0 0xff970000 0x0 0x8000>;
  2116. interrupts = <0 10 4 0>;
  2117. clocks = <&cru 362>, <&cru 364>;
  2118. clock-names = "dp", "pclk";
  2119. power-domains = <&power 25>;
  2120. resets = <&cru 285>;
  2121. reset-names = "dp";
  2122. rockchip,grf = <&grf>;
  2123. status = "disabled";
  2124. pinctrl-names = "default";
  2125. pinctrl-0 = <&edp_hpd>;
  2126.  
  2127. ports {
  2128. #address-cells = <1>;
  2129. #size-cells = <0>;
  2130.  
  2131. edp_in: port@0 {
  2132. reg = <0>;
  2133. #address-cells = <1>;
  2134. #size-cells = <0>;
  2135.  
  2136. edp_in_vopb: endpoint@0 {
  2137. reg = <0>;
  2138. remote-endpoint = <&vopb_out_edp>;
  2139. };
  2140.  
  2141. edp_in_vopl: endpoint@1 {
  2142. reg = <1>;
  2143. remote-endpoint = <&vopl_out_edp>;
  2144. };
  2145. };
  2146. };
  2147. };
  2148.  
  2149. hdmi_hdcp2: hdmi-hdcp2@ff988000 {
  2150. compatible = "rockchip,rk3399-hdmi-hdcp2";
  2151. reg = <0x0 0xff988000 0x0 0x2000>;
  2152. interrupts = <0 22 4 0>;
  2153. clocks = <&cru 224>, <&cru 374>,
  2154. <&cru 489>;
  2155. clock-names ="aclk_hdcp2", "pclk_hdcp2", "hdcp2_clk_hdmi";
  2156. status = "disabled";
  2157. };
  2158.  
  2159. display_subsystem: display-subsystem {
  2160. compatible = "rockchip,display-subsystem";
  2161. ports = <&vopl_out>, <&vopb_out>;
  2162. clocks = <&cru 7>, <&cru 4>;
  2163. clock-names = "hdmi-tmds-pll", "default-vop-pll";
  2164. devfreq = <&dmc>;
  2165. status = "okay";
  2166. };
  2167.  
  2168. nocp_cci_msch0: nocp-cci-msch0@ffa86000 {
  2169. compatible = "rockchip,rk3399-nocp";
  2170. reg = <0x0 0xffa86000 0x0 0x400>;
  2171. };
  2172.  
  2173. nocp_gpu_msch0: nocp-gpu-msch0@ffa86400 {
  2174. compatible = "rockchip,rk3399-nocp";
  2175. reg = <0x0 0xffa86400 0x0 0x400>;
  2176. };
  2177.  
  2178. nocp_hp_msch0: nocp-hp-msch0@ffa86800 {
  2179. compatible = "rockchip,rk3399-nocp";
  2180. reg = <0x0 0xffa86800 0x0 0x400>;
  2181. };
  2182.  
  2183. nocp_lp_msch0: nocp-lp-msch0@ffa86c00 {
  2184. compatible = "rockchip,rk3399-nocp";
  2185. reg = <0x0 0xffa86c00 0x0 0x400>;
  2186. };
  2187.  
  2188. nocp_video_msch0: nocp-video-msch0@ffa87000 {
  2189. compatible = "rockchip,rk3399-nocp";
  2190. reg = <0x0 0xffa87000 0x0 0x400>;
  2191. };
  2192.  
  2193. nocp_vio0_msch0: nocp-vio0-msch0@ffa87400 {
  2194. compatible = "rockchip,rk3399-nocp";
  2195. reg = <0x0 0xffa87400 0x0 0x400>;
  2196. };
  2197.  
  2198. nocp_vio1_msch0: nocp-vio1-msch0@ffa87800 {
  2199. compatible = "rockchip,rk3399-nocp";
  2200. reg = <0x0 0xffa87800 0x0 0x400>;
  2201. };
  2202.  
  2203. nocp_cci_msch1: nocp-cci-msch1@ffa8e000 {
  2204. compatible = "rockchip,rk3399-nocp";
  2205. reg = <0x0 0xffa8e000 0x0 0x400>;
  2206. };
  2207.  
  2208. nocp_gpu_msch1: nocp-gpu-msch1@ffa8e400 {
  2209. compatible = "rockchip,rk3399-nocp";
  2210. reg = <0x0 0xffa8e400 0x0 0x400>;
  2211. };
  2212.  
  2213. nocp_hp_msch1: nocp-hp-msch1@ffa8e800 {
  2214. compatible = "rockchip,rk3399-nocp";
  2215. reg = <0x0 0xffa8e800 0x0 0x400>;
  2216. };
  2217.  
  2218. nocp_lp_msch1: nocp-lp-msch1@ffa8ec00 {
  2219. compatible = "rockchip,rk3399-nocp";
  2220. reg = <0x0 0xffa8ec00 0x0 0x400>;
  2221. };
  2222.  
  2223. nocp_video_msch1: nocp-video-msch1@ffa8f000 {
  2224. compatible = "rockchip,rk3399-nocp";
  2225. reg = <0x0 0xffa8f000 0x0 0x400>;
  2226. };
  2227.  
  2228. nocp_vio0_msch1: nocp-vio0-msch1@ffa8f400 {
  2229. compatible = "rockchip,rk3399-nocp";
  2230. reg = <0x0 0xffa8f400 0x0 0x400>;
  2231. };
  2232.  
  2233. nocp_vio1_msch1: nocp-vio1-msch1@ffa8f800 {
  2234. compatible = "rockchip,rk3399-nocp";
  2235. reg = <0x0 0xffa8f800 0x0 0x400>;
  2236. };
  2237.  
  2238. pinctrl: pinctrl {
  2239. compatible = "rockchip,rk3399-pinctrl";
  2240. rockchip,grf = <&grf>;
  2241. rockchip,pmu = <&pmugrf>;
  2242. #address-cells = <2>;
  2243. #size-cells = <2>;
  2244. ranges;
  2245.  
  2246. gpio0: gpio0@ff720000 {
  2247. compatible = "rockchip,gpio-bank";
  2248. reg = <0x0 0xff720000 0x0 0x100>;
  2249. clocks = <&pmucru 23>;
  2250. interrupts = <0 14 4 0>;
  2251.  
  2252. gpio-controller;
  2253. #gpio-cells = <0x2>;
  2254.  
  2255. interrupt-controller;
  2256. #interrupt-cells = <0x2>;
  2257. };
  2258.  
  2259. gpio1: gpio1@ff730000 {
  2260. compatible = "rockchip,gpio-bank";
  2261. reg = <0x0 0xff730000 0x0 0x100>;
  2262. clocks = <&pmucru 24>;
  2263. interrupts = <0 15 4 0>;
  2264.  
  2265. gpio-controller;
  2266. #gpio-cells = <0x2>;
  2267.  
  2268. interrupt-controller;
  2269. #interrupt-cells = <0x2>;
  2270. };
  2271.  
  2272. gpio2: gpio2@ff780000 {
  2273. compatible = "rockchip,gpio-bank";
  2274. reg = <0x0 0xff780000 0x0 0x100>;
  2275. clocks = <&cru 336>;
  2276. interrupts = <0 16 4 0>;
  2277.  
  2278. gpio-controller;
  2279. #gpio-cells = <0x2>;
  2280.  
  2281. interrupt-controller;
  2282. #interrupt-cells = <0x2>;
  2283. };
  2284.  
  2285. gpio3: gpio3@ff788000 {
  2286. compatible = "rockchip,gpio-bank";
  2287. reg = <0x0 0xff788000 0x0 0x100>;
  2288. clocks = <&cru 337>;
  2289. interrupts = <0 17 4 0>;
  2290.  
  2291. gpio-controller;
  2292. #gpio-cells = <0x2>;
  2293.  
  2294. interrupt-controller;
  2295. #interrupt-cells = <0x2>;
  2296. };
  2297.  
  2298. gpio4: gpio4@ff790000 {
  2299. compatible = "rockchip,gpio-bank";
  2300. reg = <0x0 0xff790000 0x0 0x100>;
  2301. clocks = <&cru 338>;
  2302. interrupts = <0 18 4 0>;
  2303.  
  2304. gpio-controller;
  2305. #gpio-cells = <0x2>;
  2306.  
  2307. interrupt-controller;
  2308. #interrupt-cells = <0x2>;
  2309. };
  2310.  
  2311. pcfg_pull_up: pcfg-pull-up {
  2312. bias-pull-up;
  2313. };
  2314.  
  2315. pcfg_pull_down: pcfg-pull-down {
  2316. bias-pull-down;
  2317. };
  2318.  
  2319. pcfg_pull_none: pcfg-pull-none {
  2320. bias-disable;
  2321. };
  2322.  
  2323. pcfg_pull_up_20ma: pcfg-pull-up-20ma {
  2324. bias-pull-up;
  2325. drive-strength = <20>;
  2326. };
  2327.  
  2328. pcfg_pull_none_20ma: pcfg-pull-none-20ma {
  2329. bias-disable;
  2330. drive-strength = <20>;
  2331. };
  2332.  
  2333. pcfg_pull_none_18ma: pcfg-pull-none-18ma {
  2334. bias-disable;
  2335. drive-strength = <18>;
  2336. };
  2337.  
  2338. pcfg_pull_none_12ma: pcfg-pull-none-12ma {
  2339. bias-disable;
  2340. drive-strength = <12>;
  2341. };
  2342.  
  2343. pcfg_pull_up_8ma: pcfg-pull-up-8ma {
  2344. bias-pull-up;
  2345. drive-strength = <8>;
  2346. };
  2347.  
  2348. pcfg_pull_down_4ma: pcfg-pull-down-4ma {
  2349. bias-pull-down;
  2350. drive-strength = <4>;
  2351. };
  2352.  
  2353. pcfg_pull_up_2ma: pcfg-pull-up-2ma {
  2354. bias-pull-up;
  2355. drive-strength = <2>;
  2356. };
  2357.  
  2358. pcfg_pull_down_12ma: pcfg-pull-down-12ma {
  2359. bias-pull-down;
  2360. drive-strength = <12>;
  2361. };
  2362.  
  2363. pcfg_pull_none_13ma: pcfg-pull-none-13ma {
  2364. bias-disable;
  2365. drive-strength = <13>;
  2366. };
  2367.  
  2368. pcfg_output_high: pcfg-output-high {
  2369. output-high;
  2370. };
  2371.  
  2372. pcfg_output_low: pcfg-output-low {
  2373. output-low;
  2374. };
  2375.  
  2376. pcfg_input: pcfg-input {
  2377. input-enable;
  2378. };
  2379.  
  2380. emmc {
  2381. emmc_pwr: emmc-pwr {
  2382. rockchip,pins =
  2383. <0 5 1 &pcfg_pull_up>;
  2384. };
  2385. };
  2386.  
  2387. gmac {
  2388. rgmii_pins: rgmii-pins {
  2389. rockchip,pins =
  2390.  
  2391. <3 17 1 &pcfg_pull_none_13ma>,
  2392.  
  2393. <3 14 1 &pcfg_pull_none>,
  2394.  
  2395. <3 13 1 &pcfg_pull_none>,
  2396.  
  2397. <3 12 1 &pcfg_pull_none_13ma>,
  2398.  
  2399. <3 11 1 &pcfg_pull_none>,
  2400.  
  2401. <3 9 1 &pcfg_pull_none>,
  2402.  
  2403. <3 8 1 &pcfg_pull_none>,
  2404.  
  2405. <3 7 1 &pcfg_pull_none>,
  2406.  
  2407. <3 6 1 &pcfg_pull_none>,
  2408.  
  2409. <3 5 1 &pcfg_pull_none_13ma>,
  2410.  
  2411. <3 4 1 &pcfg_pull_none_13ma>,
  2412.  
  2413. <3 3 1 &pcfg_pull_none>,
  2414.  
  2415. <3 2 1 &pcfg_pull_none>,
  2416.  
  2417. <3 1 1 &pcfg_pull_none_13ma>,
  2418.  
  2419. <3 0 1 &pcfg_pull_none_13ma>;
  2420. };
  2421.  
  2422. rmii_pins: rmii-pins {
  2423. rockchip,pins =
  2424.  
  2425. <3 13 1 &pcfg_pull_none>,
  2426.  
  2427. <3 12 1 &pcfg_pull_none_13ma>,
  2428.  
  2429. <3 11 1 &pcfg_pull_none>,
  2430.  
  2431. <3 10 1 &pcfg_pull_none>,
  2432.  
  2433. <3 9 1 &pcfg_pull_none>,
  2434.  
  2435. <3 8 1 &pcfg_pull_none>,
  2436.  
  2437. <3 7 1 &pcfg_pull_none>,
  2438.  
  2439. <3 6 1 &pcfg_pull_none>,
  2440.  
  2441. <3 5 1 &pcfg_pull_none_13ma>,
  2442.  
  2443. <3 4 1 &pcfg_pull_none_13ma>;
  2444. };
  2445. };
  2446.  
  2447. i2c0 {
  2448. i2c0_xfer: i2c0-xfer {
  2449. rockchip,pins =
  2450. <1 15 2 &pcfg_pull_none>,
  2451. <1 16 2 &pcfg_pull_none>;
  2452. };
  2453. };
  2454.  
  2455. i2c1 {
  2456. i2c1_xfer: i2c1-xfer {
  2457. rockchip,pins =
  2458. <4 2 1 &pcfg_pull_none>,
  2459. <4 1 1 &pcfg_pull_none>;
  2460. };
  2461. };
  2462.  
  2463. i2c2 {
  2464. i2c2_xfer: i2c2-xfer {
  2465. rockchip,pins =
  2466. <2 1 2 &pcfg_pull_none_12ma>,
  2467. <2 0 2 &pcfg_pull_none_12ma>;
  2468. };
  2469. };
  2470.  
  2471. i2c3 {
  2472. i2c3_xfer: i2c3-xfer {
  2473. rockchip,pins =
  2474. <4 17 1 &pcfg_pull_none>,
  2475. <4 16 1 &pcfg_pull_none>;
  2476. };
  2477.  
  2478. i2c3_gpio: i2c3_gpio {
  2479. rockchip,pins =
  2480. <4 17 0 &pcfg_pull_none>,
  2481. <4 16 0 &pcfg_pull_none>;
  2482. };
  2483.  
  2484. };
  2485.  
  2486. i2c4 {
  2487. i2c4_xfer: i2c4-xfer {
  2488. rockchip,pins =
  2489. <1 12 1 &pcfg_pull_none>,
  2490. <1 11 1 &pcfg_pull_none>;
  2491. };
  2492. };
  2493.  
  2494. i2c5 {
  2495. i2c5_xfer: i2c5-xfer {
  2496. rockchip,pins =
  2497. <3 11 2 &pcfg_pull_none>,
  2498. <3 10 2 &pcfg_pull_none>;
  2499. };
  2500. };
  2501.  
  2502. i2c6 {
  2503. i2c6_xfer: i2c6-xfer {
  2504. rockchip,pins =
  2505. <2 10 2 &pcfg_pull_none>,
  2506. <2 9 2 &pcfg_pull_none>;
  2507. };
  2508. };
  2509.  
  2510. i2c7 {
  2511. i2c7_xfer: i2c7-xfer {
  2512. rockchip,pins =
  2513. <2 8 2 &pcfg_pull_none>,
  2514. <2 7 2 &pcfg_pull_none>;
  2515. };
  2516. };
  2517.  
  2518. i2c8 {
  2519. i2c8_xfer: i2c8-xfer {
  2520. rockchip,pins =
  2521. <1 21 1 &pcfg_pull_none>,
  2522. <1 20 1 &pcfg_pull_none>;
  2523. };
  2524. };
  2525.  
  2526. i2s0 {
  2527. i2s0_8ch_bus: i2s0-8ch-bus {
  2528. rockchip,pins =
  2529. <3 24 1 &pcfg_pull_none>,
  2530. <3 25 1 &pcfg_pull_none>,
  2531. <3 26 1 &pcfg_pull_none>,
  2532. <3 27 1 &pcfg_pull_none>,
  2533. <3 28 1 &pcfg_pull_none>,
  2534. <3 29 1 &pcfg_pull_none>,
  2535. <3 30 1 &pcfg_pull_none>,
  2536. <3 31 1 &pcfg_pull_none>;
  2537. };
  2538.  
  2539. i2s_8ch_mclk: i2s-8ch-mclk {
  2540. rockchip,pins = <4 0 1 &pcfg_pull_none>;
  2541. };
  2542. };
  2543.  
  2544. i2s1 {
  2545. i2s1_2ch_bus: i2s1-2ch-bus {
  2546. rockchip,pins =
  2547. <4 3 1 &pcfg_pull_none>,
  2548. <4 4 1 &pcfg_pull_none>,
  2549. <4 5 1 &pcfg_pull_none>,
  2550. <4 6 1 &pcfg_pull_none>,
  2551. <4 7 1 &pcfg_pull_none>;
  2552. };
  2553. };
  2554.  
  2555. sdio0 {
  2556. sdio0_bus1: sdio0-bus1 {
  2557. rockchip,pins =
  2558. <2 20 1 &pcfg_pull_up>;
  2559. };
  2560.  
  2561. sdio0_bus4: sdio0-bus4 {
  2562. rockchip,pins =
  2563. <2 20 1 &pcfg_pull_up>,
  2564. <2 21 1 &pcfg_pull_up>,
  2565. <2 22 1 &pcfg_pull_up>,
  2566. <2 23 1 &pcfg_pull_up>;
  2567. };
  2568.  
  2569. sdio0_cmd: sdio0-cmd {
  2570. rockchip,pins =
  2571. <2 24 1 &pcfg_pull_up>;
  2572. };
  2573.  
  2574. sdio0_clk: sdio0-clk {
  2575. rockchip,pins =
  2576. <2 25 1 &pcfg_pull_none>;
  2577. };
  2578.  
  2579. sdio0_cd: sdio0-cd {
  2580. rockchip,pins =
  2581. <2 26 1 &pcfg_pull_up>;
  2582. };
  2583.  
  2584. sdio0_pwr: sdio0-pwr {
  2585. rockchip,pins =
  2586. <2 27 1 &pcfg_pull_up>;
  2587. };
  2588.  
  2589. sdio0_bkpwr: sdio0-bkpwr {
  2590. rockchip,pins =
  2591. <2 28 1 &pcfg_pull_up>;
  2592. };
  2593.  
  2594. sdio0_wp: sdio0-wp {
  2595. rockchip,pins =
  2596. <0 3 1 &pcfg_pull_up>;
  2597. };
  2598.  
  2599. sdio0_int: sdio0-int {
  2600. rockchip,pins =
  2601. <0 4 1 &pcfg_pull_up>;
  2602. };
  2603. };
  2604.  
  2605. sdmmc {
  2606. sdmmc_bus1: sdmmc-bus1 {
  2607. rockchip,pins =
  2608. <4 8 1 &pcfg_pull_up>;
  2609. };
  2610.  
  2611. sdmmc_bus4: sdmmc-bus4 {
  2612. rockchip,pins =
  2613. <4 8 1 &pcfg_pull_up>,
  2614. <4 9 1 &pcfg_pull_up>,
  2615. <4 10 1 &pcfg_pull_up>,
  2616. <4 11 1 &pcfg_pull_up>;
  2617. };
  2618.  
  2619. sdmmc_clk: sdmmc-clk {
  2620. rockchip,pins =
  2621. <4 12 1 &pcfg_pull_none>;
  2622. };
  2623.  
  2624. sdmmc_cmd: sdmmc-cmd {
  2625. rockchip,pins =
  2626. <4 13 1 &pcfg_pull_up>;
  2627. };
  2628.  
  2629. sdmmc_cd: sdmcc-cd {
  2630. rockchip,pins =
  2631. <0 7 1 &pcfg_pull_up>;
  2632. };
  2633.  
  2634. sdmmc_wp: sdmmc-wp {
  2635. rockchip,pins =
  2636. <0 8 1 &pcfg_pull_up>;
  2637. };
  2638. };
  2639.  
  2640. spdif {
  2641. spdif_bus: spdif-bus {
  2642. rockchip,pins =
  2643. <4 21 1 &pcfg_pull_none>;
  2644. };
  2645.  
  2646. spdif_bus_1: spdif-bus-1 {
  2647. rockchip,pins =
  2648. <3 16 3 &pcfg_pull_none>;
  2649. };
  2650. };
  2651.  
  2652. spi0 {
  2653. spi0_clk: spi0-clk {
  2654. rockchip,pins =
  2655. <3 6 2 &pcfg_pull_up>;
  2656. };
  2657. spi0_cs0: spi0-cs0 {
  2658. rockchip,pins =
  2659. <3 7 2 &pcfg_pull_up>;
  2660. };
  2661. spi0_cs1: spi0-cs1 {
  2662. rockchip,pins =
  2663. <3 8 2 &pcfg_pull_up>;
  2664. };
  2665. spi0_tx: spi0-tx {
  2666. rockchip,pins =
  2667. <3 5 2 &pcfg_pull_up>;
  2668. };
  2669. spi0_rx: spi0-rx {
  2670. rockchip,pins =
  2671. <3 4 2 &pcfg_pull_up>;
  2672. };
  2673. };
  2674.  
  2675. spi1 {
  2676. spi1_clk: spi1-clk {
  2677. rockchip,pins =
  2678. <1 9 2 &pcfg_pull_up>;
  2679. };
  2680. spi1_cs0: spi1-cs0 {
  2681. rockchip,pins =
  2682. <1 10 2 &pcfg_pull_up>;
  2683. };
  2684. spi1_rx: spi1-rx {
  2685. rockchip,pins =
  2686. <1 7 2 &pcfg_pull_up>;
  2687. };
  2688. spi1_tx: spi1-tx {
  2689. rockchip,pins =
  2690. <1 8 2 &pcfg_pull_up>;
  2691. };
  2692. };
  2693.  
  2694. spi2 {
  2695. spi2_clk: spi2-clk {
  2696. rockchip,pins =
  2697. <2 11 1 &pcfg_pull_up>;
  2698. };
  2699. spi2_cs0: spi2-cs0 {
  2700. rockchip,pins =
  2701. <2 12 1 &pcfg_pull_up>;
  2702. };
  2703. spi2_rx: spi2-rx {
  2704. rockchip,pins =
  2705. <2 9 1 &pcfg_pull_up>;
  2706. };
  2707. spi2_tx: spi2-tx {
  2708. rockchip,pins =
  2709. <2 10 1 &pcfg_pull_up>;
  2710. };
  2711. };
  2712.  
  2713. spi3 {
  2714. spi3_clk: spi3-clk {
  2715. rockchip,pins =
  2716. <1 17 1 &pcfg_pull_up>;
  2717. };
  2718. spi3_cs0: spi3-cs0 {
  2719. rockchip,pins =
  2720. <1 18 1 &pcfg_pull_up>;
  2721. };
  2722. spi3_rx: spi3-rx {
  2723. rockchip,pins =
  2724. <1 15 1 &pcfg_pull_up>;
  2725. };
  2726. spi3_tx: spi3-tx {
  2727. rockchip,pins =
  2728. <1 16 1 &pcfg_pull_up>;
  2729. };
  2730. };
  2731.  
  2732. spi4 {
  2733. spi4_clk: spi4-clk {
  2734. rockchip,pins =
  2735. <3 2 2 &pcfg_pull_up>;
  2736. };
  2737. spi4_cs0: spi4-cs0 {
  2738. rockchip,pins =
  2739. <3 3 2 &pcfg_pull_up>;
  2740. };
  2741. spi4_rx: spi4-rx {
  2742. rockchip,pins =
  2743. <3 0 2 &pcfg_pull_up>;
  2744. };
  2745. spi4_tx: spi4-tx {
  2746. rockchip,pins =
  2747. <3 1 2 &pcfg_pull_up>;
  2748. };
  2749. };
  2750.  
  2751. spi5 {
  2752. spi5_clk: spi5-clk {
  2753. rockchip,pins =
  2754. <2 22 2 &pcfg_pull_up>;
  2755. };
  2756. spi5_cs0: spi5-cs0 {
  2757. rockchip,pins =
  2758. <2 23 2 &pcfg_pull_up>;
  2759. };
  2760. spi5_rx: spi5-rx {
  2761. rockchip,pins =
  2762. <2 20 2 &pcfg_pull_up>;
  2763. };
  2764. spi5_tx: spi5-tx {
  2765. rockchip,pins =
  2766. <2 21 2 &pcfg_pull_up>;
  2767. };
  2768. };
  2769.  
  2770. tsadc {
  2771. otp_gpio: otp-gpio {
  2772. rockchip,pins = <1 6 0 &pcfg_pull_none>;
  2773. };
  2774.  
  2775. otp_out: otp-out {
  2776. rockchip,pins = <1 6 1 &pcfg_pull_none>;
  2777. };
  2778. };
  2779.  
  2780. uart0 {
  2781. uart0_xfer: uart0-xfer {
  2782. rockchip,pins =
  2783. <2 16 1 &pcfg_pull_up>,
  2784. <2 17 1 &pcfg_pull_none>;
  2785. };
  2786.  
  2787. uart0_cts: uart0-cts {
  2788. rockchip,pins =
  2789. <2 18 1 &pcfg_pull_none>;
  2790. };
  2791.  
  2792. uart0_rts: uart0-rts {
  2793. rockchip,pins =
  2794. <2 19 1 &pcfg_pull_none>;
  2795. };
  2796. };
  2797.  
  2798. uart1 {
  2799. uart1_xfer: uart1-xfer {
  2800. rockchip,pins =
  2801. <3 12 2 &pcfg_pull_up>,
  2802. <3 13 2 &pcfg_pull_none>;
  2803. };
  2804. };
  2805.  
  2806. uart2a {
  2807. uart2a_xfer: uart2a-xfer {
  2808. rockchip,pins =
  2809. <4 8 2 &pcfg_pull_up>,
  2810. <4 9 2 &pcfg_pull_none>;
  2811. };
  2812. };
  2813.  
  2814. uart2b {
  2815. uart2b_xfer: uart2b-xfer {
  2816. rockchip,pins =
  2817. <4 16 2 &pcfg_pull_up>,
  2818. <4 17 2 &pcfg_pull_none>;
  2819. };
  2820. };
  2821.  
  2822. uart2c {
  2823. uart2c_xfer: uart2c-xfer {
  2824. rockchip,pins =
  2825. <4 19 1 &pcfg_pull_up>,
  2826. <4 20 1 &pcfg_pull_none>;
  2827. };
  2828. };
  2829.  
  2830. uart3 {
  2831. uart3_xfer: uart3-xfer {
  2832. rockchip,pins =
  2833. <3 14 2 &pcfg_pull_up>,
  2834. <3 15 2 &pcfg_pull_none>;
  2835. };
  2836.  
  2837. uart3_cts: uart3-cts {
  2838. rockchip,pins =
  2839. <3 18 2 &pcfg_pull_none>;
  2840. };
  2841.  
  2842. uart3_rts: uart3-rts {
  2843. rockchip,pins =
  2844. <3 19 2 &pcfg_pull_none>;
  2845. };
  2846. };
  2847.  
  2848. uart4 {
  2849. uart4_xfer: uart4-xfer {
  2850. rockchip,pins =
  2851. <1 7 1 &pcfg_pull_up>,
  2852. <1 8 1 &pcfg_pull_none>;
  2853. };
  2854. };
  2855.  
  2856. uarthdcp {
  2857. uarthdcp_xfer: uarthdcp-xfer {
  2858. rockchip,pins =
  2859. <4 21 2 &pcfg_pull_up>,
  2860. <4 22 2 &pcfg_pull_none>;
  2861. };
  2862. };
  2863.  
  2864. pwm0 {
  2865. pwm0_pin: pwm0-pin {
  2866. rockchip,pins =
  2867. <4 18 1 &pcfg_pull_none>;
  2868. };
  2869.  
  2870. pwm0_pin_pull_down: pwm0-pin-pull-down {
  2871. rockchip,pins =
  2872. <4 18 1 &pcfg_pull_down>;
  2873. };
  2874.  
  2875. vop0_pwm_pin: vop0-pwm-pin {
  2876. rockchip,pins =
  2877. <4 18 2 &pcfg_pull_none>;
  2878. };
  2879.  
  2880. vop1_pwm_pin: vop1-pwm-pin {
  2881. rockchip,pins =
  2882. <4 18 3 &pcfg_pull_none>;
  2883. };
  2884. };
  2885.  
  2886. pwm1 {
  2887. pwm1_pin: pwm1-pin {
  2888. rockchip,pins =
  2889. <4 22 1 &pcfg_pull_none>;
  2890. };
  2891.  
  2892. pwm1_pin_pull_down: pwm1-pin-pull-down {
  2893. rockchip,pins =
  2894. <4 22 1 &pcfg_pull_down>;
  2895. };
  2896. };
  2897.  
  2898. pwm2 {
  2899. pwm2_pin: pwm2-pin {
  2900. rockchip,pins =
  2901. <1 19 1 &pcfg_pull_none>;
  2902. };
  2903.  
  2904. pwm2_pin_pull_down: pwm2-pin-pull-down {
  2905. rockchip,pins =
  2906. <1 19 1 &pcfg_pull_down>;
  2907. };
  2908. };
  2909.  
  2910. pwm3a {
  2911. pwm3a_pin: pwm3a-pin {
  2912. rockchip,pins =
  2913. <0 6 1 &pcfg_pull_none>;
  2914. };
  2915.  
  2916. pwm3a_pin_pull_down: pwm3a-pin-pull-down {
  2917. rockchip,pins =
  2918. <0 6 1 &pcfg_pull_down>;
  2919. };
  2920. };
  2921.  
  2922. pwm3b {
  2923. pwm3b_pin: pwm3b-pin {
  2924. rockchip,pins =
  2925. <1 14 1 &pcfg_pull_none>;
  2926. };
  2927.  
  2928. pwm3b_pin_pull_down: pwm3b-pin-pull-down {
  2929. rockchip,pins =
  2930. <1 14 1 &pcfg_pull_down>;
  2931. };
  2932. };
  2933.  
  2934. edp {
  2935. edp_hpd: edp-hpd {
  2936. rockchip,pins =
  2937. <4 23 2 &pcfg_pull_none>;
  2938. };
  2939. };
  2940.  
  2941. hdmi {
  2942. hdmi_i2c_xfer: hdmi-i2c-xfer {
  2943. rockchip,pins =
  2944. <4 17 3 &pcfg_pull_none>,
  2945. <4 16 3 &pcfg_pull_none>;
  2946. };
  2947.  
  2948. hdmi_cec: hdmi-cec {
  2949. rockchip,pins =
  2950. <4 23 1 &pcfg_pull_none>;
  2951. };
  2952. };
  2953.  
  2954. pcie {
  2955. pcie_clkreqn: pci-clkreqn {
  2956. rockchip,pins =
  2957. <2 26 2 &pcfg_pull_none>;
  2958. };
  2959.  
  2960. pcie_clkreqnb: pci-clkreqnb {
  2961. rockchip,pins =
  2962. <4 24 1 &pcfg_pull_none>;
  2963. };
  2964.  
  2965. pcie_clkreqn_cpm: pci-clkreqn-cpm {
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973. rockchip,pins =
  2974. <2 26 0 &pcfg_pull_none>;
  2975. };
  2976.  
  2977. pcie_clkreqnb_cpm: pci-clkreqnb-cpm {
  2978. rockchip,pins =
  2979. <4 24 0 &pcfg_pull_none>;
  2980. };
  2981. };
  2982. };
  2983.  
  2984. rockchip_suspend: rockchip-suspend {
  2985. compatible = "rockchip,pm-rk3399";
  2986. status = "disabled";
  2987. rockchip,sleep-debug-en = <0>;
  2988. rockchip,virtual-poweroff = <0>;
  2989. rockchip,sleep-mode-config = <
  2990. (0
  2991. | (1 << 1)
  2992. | (1 << 2)
  2993. | (1 << 3)
  2994. | (1 << 4)
  2995. | (1 << 5)
  2996. | (1 << 6)
  2997. | (1 << 7)
  2998. )
  2999. >;
  3000. rockchip,wakeup-config = <
  3001. (0
  3002. | (1 << 2)
  3003. )
  3004. >;
  3005. };
  3006. };
  3007. # 47 "arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dts" 2
  3008. # 1 "arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi" 1
  3009. # 43 "arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi"
  3010. # 1 "arch/arm64/boot/dts/rockchip/rk3399-sched-energy.dtsi" 1
  3011. # 43 "arch/arm64/boot/dts/rockchip/rk3399-sched-energy.dtsi"
  3012. / {
  3013. energy-costs {
  3014. RK3399_CPU_COST_0: rk3399-core-cost0 {
  3015. busy-cost-data = <
  3016. 108 46
  3017. 159 67
  3018. 216 90
  3019. 267 120
  3020. 318 153
  3021. 375 198
  3022. 401 222
  3023. >;
  3024. idle-cost-data = <
  3025. 6
  3026. 6
  3027. 0
  3028. 0
  3029. >;
  3030. };
  3031.  
  3032. RK3399_CPU_COST_1: rk3399-core-cost1 {
  3033. busy-cost-data = <
  3034. 210 129
  3035. 308 184
  3036. 419 246
  3037. 518 335
  3038. 617 428
  3039. 728 573
  3040. 827 724
  3041. 925 900
  3042. 1024 1108
  3043. >;
  3044. idle-cost-data = <
  3045. 15
  3046. 15
  3047. 0
  3048. 0
  3049. >;
  3050. };
  3051.  
  3052. RK3399_CLUSTER_COST_0: rk3399-cluster-cost0 {
  3053. busy-cost-data = <
  3054. 108 46
  3055. 159 67
  3056. 216 90
  3057. 267 120
  3058. 318 153
  3059. 375 198
  3060. 401 222
  3061. >;
  3062. idle-cost-data = <
  3063. 56
  3064. 56
  3065. 56
  3066. 56
  3067. >;
  3068. };
  3069.  
  3070. RK3399_CLUSTER_COST_1: rk3399-cluster-cost1 {
  3071. busy-cost-data = <
  3072. 210 129
  3073. 308 184
  3074. 419 246
  3075. 518 335
  3076. 617 428
  3077. 728 573
  3078. 827 724
  3079. 925 900
  3080. 1024 1108
  3081. >;
  3082. idle-cost-data = <
  3083. 65
  3084. 65
  3085. 65
  3086. 65
  3087. >;
  3088. };
  3089. };
  3090. };
  3091. # 44 "arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi" 2
  3092.  
  3093. / {
  3094. cluster0_opp: opp-table0 {
  3095. compatible = "operating-points-v2";
  3096. opp-shared;
  3097.  
  3098. nvmem-cells = <&cpul_leakage>;
  3099. nvmem-cell-names = "cpu_leakage";
  3100.  
  3101. rockchip,pvtm-voltage-sel = <
  3102. 0 143500 0
  3103. 143501 148500 1
  3104. 148501 152000 2
  3105. 152001 999999 3
  3106. >;
  3107. rockchip,pvtm-freq = <408000>;
  3108. rockchip,pvtm-volt = <1000000>;
  3109. rockchip,pvtm-ch = <0 0>;
  3110. rockchip,pvtm-sample-time = <1000>;
  3111. rockchip,pvtm-number = <10>;
  3112. rockchip,pvtm-error = <1000>;
  3113. rockchip,pvtm-ref-temp = <41>;
  3114. rockchip,pvtm-temp-prop = <115 66>;
  3115. rockchip,thermal-zone = "soc-thermal";
  3116.  
  3117. opp-408000000 {
  3118. opp-hz = /bits/ 64 <408000000>;
  3119. opp-microvolt = <800000 800000 1200000>;
  3120. opp-microvolt-L0 = <800000 800000 1200000>;
  3121. opp-microvolt-L1 = <800000 800000 1200000>;
  3122. opp-microvolt-L2 = <800000 800000 1200000>;
  3123. opp-microvolt-L3 = <800000 800000 1200000>;
  3124. clock-latency-ns = <40000>;
  3125. };
  3126. opp-600000000 {
  3127. opp-hz = /bits/ 64 <600000000>;
  3128. opp-microvolt = <800000 800000 1200000>;
  3129. opp-microvolt-L0 = <800000 800000 1200000>;
  3130. opp-microvolt-L1 = <800000 800000 1200000>;
  3131. opp-microvolt-L2 = <800000 800000 1200000>;
  3132. opp-microvolt-L3 = <800000 800000 1200000>;
  3133. clock-latency-ns = <40000>;
  3134. };
  3135. opp-816000000 {
  3136. opp-hz = /bits/ 64 <816000000>;
  3137. opp-microvolt = <850000 850000 1200000>;
  3138. opp-microvolt-L0 = <850000 850000 1200000>;
  3139. opp-microvolt-L1 = <825000 825000 1200000>;
  3140. opp-microvolt-L2 = <800000 800000 1200000>;
  3141. opp-microvolt-L3 = <800000 800000 1200000>;
  3142. clock-latency-ns = <40000>;
  3143. opp-suspend;
  3144. };
  3145. opp-1008000000 {
  3146. opp-hz = /bits/ 64 <1008000000>;
  3147. opp-microvolt = <925000 925000 1200000>;
  3148. opp-microvolt-L0 = <925000 925000 1200000>;
  3149. opp-microvolt-L1 = <900000 900000 1200000>;
  3150. opp-microvolt-L2 = <875000 875000 1200000>;
  3151. opp-microvolt-L3 = <850000 850000 1200000>;
  3152. clock-latency-ns = <40000>;
  3153. };
  3154. opp-1200000000 {
  3155. opp-hz = /bits/ 64 <1200000000>;
  3156. opp-microvolt = <1000000 1000000 1200000>;
  3157. opp-microvolt-L0 = <1000000 1000000 1200000>;
  3158. opp-microvolt-L1 = <975000 975000 1200000>;
  3159. opp-microvolt-L2 = <950000 950000 1200000>;
  3160. opp-microvolt-L3 = <925000 925000 1200000>;
  3161. clock-latency-ns = <40000>;
  3162. };
  3163. opp-1416000000 {
  3164. opp-hz = /bits/ 64 <1416000000>;
  3165. opp-microvolt = <1125000 1125000 1200000>;
  3166. opp-microvolt-L0 = <1125000 1125000 1200000>;
  3167. opp-microvolt-L1 = <1100000 1100000 1200000>;
  3168. opp-microvolt-L2 = <1075000 1075000 1200000>;
  3169. opp-microvolt-L3 = <1050000 1050000 1200000>;
  3170. clock-latency-ns = <40000>;
  3171. };
  3172. };
  3173.  
  3174. cluster1_opp: opp-table1 {
  3175. compatible = "operating-points-v2";
  3176. opp-shared;
  3177.  
  3178. nvmem-cells = <&cpub_leakage>;
  3179. nvmem-cell-names = "cpu_leakage";
  3180.  
  3181. rockchip,pvtm-voltage-sel = <
  3182. 0 149000 0
  3183. 149001 155000 1
  3184. 155001 160000 2
  3185. 160001 999999 3
  3186. >;
  3187. rockchip,pvtm-freq = <408000>;
  3188. rockchip,pvtm-volt = <1000000>;
  3189. rockchip,pvtm-ch = <1 0>;
  3190. rockchip,pvtm-sample-time = <1000>;
  3191. rockchip,pvtm-number = <10>;
  3192. rockchip,pvtm-error = <1000>;
  3193. rockchip,pvtm-ref-temp = <41>;
  3194. rockchip,pvtm-temp-prop = <71 35>;
  3195. rockchip,thermal-zone = "soc-thermal";
  3196.  
  3197. opp-408000000 {
  3198. opp-hz = /bits/ 64 <408000000>;
  3199. opp-microvolt = <800000 800000 1200000>;
  3200. opp-microvolt-L0 = <800000 800000 1200000>;
  3201. opp-microvolt-L1 = <800000 800000 1200000>;
  3202. opp-microvolt-L2 = <800000 800000 1200000>;
  3203. opp-microvolt-L3 = <800000 800000 1200000>;
  3204. clock-latency-ns = <40000>;
  3205. };
  3206. opp-600000000 {
  3207. opp-hz = /bits/ 64 <600000000>;
  3208. opp-microvolt = <800000 800000 1200000>;
  3209. opp-microvolt-L0 = <800000 800000 1200000>;
  3210. opp-microvolt-L1 = <800000 800000 1200000>;
  3211. opp-microvolt-L2 = <800000 800000 1200000>;
  3212. opp-microvolt-L3 = <800000 800000 1200000>;
  3213. clock-latency-ns = <40000>;
  3214. };
  3215. opp-816000000 {
  3216. opp-hz = /bits/ 64 <816000000>;
  3217. opp-microvolt = <825000 825000 1200000>;
  3218. opp-microvolt-L0 = <825000 825000 1200000>;
  3219. opp-microvolt-L1 = <825000 825000 1200000>;
  3220. opp-microvolt-L2 = <800000 800000 1200000>;
  3221. opp-microvolt-L3 = <800000 800000 1200000>;
  3222. clock-latency-ns = <40000>;
  3223. opp-suspend;
  3224. };
  3225. opp-1008000000 {
  3226. opp-hz = /bits/ 64 <1008000000>;
  3227. opp-microvolt = <875000 875000 1200000>;
  3228. opp-microvolt-L0 = <875000 875000 1200000>;
  3229. opp-microvolt-L1 = <850000 850000 1200000>;
  3230. opp-microvolt-L2 = <850000 850000 1200000>;
  3231. opp-microvolt-L3 = <850000 850000 1200000>;
  3232. clock-latency-ns = <40000>;
  3233. };
  3234. opp-1200000000 {
  3235. opp-hz = /bits/ 64 <1200000000>;
  3236. opp-microvolt = <950000 950000 1200000>;
  3237. opp-microvolt-L0 = <950000 950000 1200000>;
  3238. opp-microvolt-L1 = <925000 925000 1200000>;
  3239. opp-microvolt-L2 = <900000 900000 1200000>;
  3240. opp-microvolt-L3 = <875000 875000 1200000>;
  3241. clock-latency-ns = <40000>;
  3242. };
  3243. opp-1416000000 {
  3244. opp-hz = /bits/ 64 <1416000000>;
  3245. opp-microvolt = <1025000 1025000 1200000>;
  3246. opp-microvolt-L0 = <1025000 1025000 1200000>;
  3247. opp-microvolt-L1 = <1000000 1000000 1200000>;
  3248. opp-microvolt-L2 = <1000000 1000000 1200000>;
  3249. opp-microvolt-L3 = <975000 975000 1200000>;
  3250. clock-latency-ns = <40000>;
  3251. };
  3252. opp-1608000000 {
  3253. opp-hz = /bits/ 64 <1608000000>;
  3254. opp-microvolt = <1100000 1100000 1200000>;
  3255. opp-microvolt-L0 = <1100000 1100000 1200000>;
  3256. opp-microvolt-L1 = <1075000 1075000 1200000>;
  3257. opp-microvolt-L2 = <1050000 1050000 1200000>;
  3258. opp-microvolt-L3 = <1025000 1025000 1200000>;
  3259. clock-latency-ns = <40000>;
  3260. };
  3261. opp-1800000000 {
  3262. opp-hz = /bits/ 64 <1800000000>;
  3263. opp-microvolt = <1200000 1200000 1200000>;
  3264. opp-microvolt-L0 = <1200000 1200000 1200000>;
  3265. opp-microvolt-L1 = <1175000 1175000 1200000>;
  3266. opp-microvolt-L2 = <1150000 1150000 1200000>;
  3267. opp-microvolt-L3 = <1125000 1125000 1200000>;
  3268. clock-latency-ns = <40000>;
  3269. };
  3270. };
  3271.  
  3272. gpu_opp_table: opp-table2 {
  3273. compatible = "operating-points-v2";
  3274.  
  3275. nvmem-cells = <&gpu_leakage>;
  3276. nvmem-cell-names = "gpu_leakage";
  3277.  
  3278. rockchip,pvtm-voltage-sel = <
  3279. 0 121000 0
  3280. 121001 125500 1
  3281. 125501 128500 2
  3282. 128501 999999 3
  3283. >;
  3284. rockchip,pvtm-freq = <200000>;
  3285. rockchip,pvtm-volt = <900000>;
  3286. rockchip,pvtm-ch = <3 0>;
  3287. rockchip,pvtm-sample-time = <1000>;
  3288. rockchip,pvtm-number = <10>;
  3289. rockchip,pvtm-error = <1000>;
  3290. rockchip,pvtm-ref-temp = <41>;
  3291. rockchip,pvtm-temp-prop = <46 12>;
  3292. rockchip,thermal-zone = "gpu-thermal";
  3293.  
  3294. opp-200000000 {
  3295. opp-hz = /bits/ 64 <200000000>;
  3296. opp-microvolt = <800000>;
  3297. opp-microvolt-L0 = <800000>;
  3298. opp-microvolt-L1 = <800000>;
  3299. opp-microvolt-L2 = <800000>;
  3300. opp-microvolt-L3 = <800000>;
  3301. };
  3302. opp-300000000 {
  3303. opp-hz = /bits/ 64 <300000000>;
  3304. opp-microvolt = <800000>;
  3305. opp-microvolt-L0 = <800000>;
  3306. opp-microvolt-L1 = <800000>;
  3307. opp-microvolt-L2 = <800000>;
  3308. opp-microvolt-L3 = <800000>;
  3309. };
  3310. opp-400000000 {
  3311. opp-hz = /bits/ 64 <400000000>;
  3312. opp-microvolt = <825000>;
  3313. opp-microvolt-L0 = <825000>;
  3314. opp-microvolt-L1 = <825000>;
  3315. opp-microvolt-L2 = <800000>;
  3316. opp-microvolt-L3 = <800000>;
  3317. };
  3318. opp-600000000 {
  3319. opp-hz = /bits/ 64 <600000000>;
  3320. opp-microvolt = <925000>;
  3321. opp-microvolt-L0 = <925000>;
  3322. opp-microvolt-L1 = <925000>;
  3323. opp-microvolt-L2 = <900000>;
  3324. opp-microvolt-L3 = <900000>;
  3325. };
  3326. opp-800000000 {
  3327. opp-hz = /bits/ 64 <800000000>;
  3328. opp-microvolt = <1100000>;
  3329. opp-microvolt-L0 = <1100000>;
  3330. opp-microvolt-L1 = <1075000>;
  3331. opp-microvolt-L2 = <1050000>;
  3332. opp-microvolt-L3 = <1025000>;
  3333. };
  3334. };
  3335.  
  3336. dmc_opp_table: opp-table3 {
  3337. compatible = "operating-points-v2";
  3338.  
  3339. opp-200000000 {
  3340. opp-hz = /bits/ 64 <200000000>;
  3341. opp-microvolt = <900000>;
  3342. };
  3343. opp-300000000 {
  3344. opp-hz = /bits/ 64 <300000000>;
  3345. opp-microvolt = <900000>;
  3346. };
  3347. opp-400000000 {
  3348. opp-hz = /bits/ 64 <400000000>;
  3349. opp-microvolt = <900000>;
  3350. };
  3351. opp-528000000 {
  3352. opp-hz = /bits/ 64 <528000000>;
  3353. opp-microvolt = <900000>;
  3354. };
  3355. opp-600000000 {
  3356. opp-hz = /bits/ 64 <600000000>;
  3357. opp-microvolt = <900000>;
  3358. };
  3359. opp-800000000 {
  3360. opp-hz = /bits/ 64 <800000000>;
  3361. opp-microvolt = <900000>;
  3362. };
  3363. };
  3364. };
  3365.  
  3366. &cpu_l0 {
  3367. operating-points-v2 = <&cluster0_opp>;
  3368. sched-energy-costs = <&RK3399_CPU_COST_0 &RK3399_CLUSTER_COST_0>;
  3369. };
  3370.  
  3371. &cpu_l1 {
  3372. operating-points-v2 = <&cluster0_opp>;
  3373. sched-energy-costs = <&RK3399_CPU_COST_0 &RK3399_CLUSTER_COST_0>;
  3374. };
  3375.  
  3376. &cpu_l2 {
  3377. operating-points-v2 = <&cluster0_opp>;
  3378. sched-energy-costs = <&RK3399_CPU_COST_0 &RK3399_CLUSTER_COST_0>;
  3379. };
  3380.  
  3381. &cpu_l3 {
  3382. operating-points-v2 = <&cluster0_opp>;
  3383. sched-energy-costs = <&RK3399_CPU_COST_0 &RK3399_CLUSTER_COST_0>;
  3384. };
  3385.  
  3386. &cpu_b0 {
  3387. operating-points-v2 = <&cluster1_opp>;
  3388. sched-energy-costs = <&RK3399_CPU_COST_1 &RK3399_CLUSTER_COST_1>;
  3389. };
  3390.  
  3391. &cpu_b1 {
  3392. operating-points-v2 = <&cluster1_opp>;
  3393. sched-energy-costs = <&RK3399_CPU_COST_1 &RK3399_CLUSTER_COST_1>;
  3394. };
  3395.  
  3396. &gpu {
  3397. operating-points-v2 = <&gpu_opp_table>;
  3398. };
  3399.  
  3400. &dmc {
  3401. operating-points-v2 = <&dmc_opp_table>;
  3402. };
  3403. # 48 "arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dts" 2
  3404. # 1 "arch/arm64/boot/dts/rockchip/rk3399-linux.dtsi" 1
  3405. # 43 "arch/arm64/boot/dts/rockchip/rk3399-linux.dtsi"
  3406. # 1 "./scripts/dtc/include-prefixes/dt-bindings/display/drm_mipi_dsi.h" 1
  3407. # 44 "arch/arm64/boot/dts/rockchip/rk3399-linux.dtsi" 2
  3408. # 1 "arch/arm64/boot/dts/rockchip/rk3399-vop-clk-set.dtsi" 1
  3409. # 51 "arch/arm64/boot/dts/rockchip/rk3399-vop-clk-set.dtsi"
  3410. &sdhci {
  3411. assigned-clocks = <&cru 78>;
  3412. assigned-clock-parents = <&cru 5>;
  3413. assigned-clock-rates = <200000000>;
  3414. };
  3415.  
  3416. &uart0 {
  3417. assigned-clocks = <&cru 172>;
  3418. assigned-clock-parents = <&cru 5>;
  3419. };
  3420.  
  3421. &uart1 {
  3422. assigned-clocks = <&cru 173>;
  3423. assigned-clock-parents = <&cru 5>;
  3424. };
  3425.  
  3426. &uart2 {
  3427. assigned-clocks = <&cru 173>;
  3428. assigned-clock-parents = <&cru 5>;
  3429. };
  3430.  
  3431. &uart3 {
  3432. assigned-clocks = <&cru 173>;
  3433. assigned-clock-parents = <&cru 5>;
  3434. };
  3435.  
  3436. &uart4 {
  3437. assigned-clocks = <&pmucru 12>;
  3438. assigned-clock-parents = <&pmucru 1>;
  3439. };
  3440.  
  3441. &spdif {
  3442. assigned-clocks = <&cru 177>;
  3443. assigned-clock-parents = <&cru 5>;
  3444. };
  3445.  
  3446. &i2s0{
  3447. assigned-clocks = <&cru 174>;
  3448. assigned-clock-parents = <&cru 5>;
  3449. };
  3450.  
  3451. &i2s1 {
  3452. assigned-clocks = <&cru 175>;
  3453. assigned-clock-parents = <&cru 5>;
  3454. };
  3455.  
  3456. &i2s2 {
  3457. assigned-clocks = <&cru 176>;
  3458. assigned-clock-parents = <&cru 5>;
  3459. };
  3460.  
  3461. &cru {
  3462. assigned-clocks =
  3463. <&cru 192>, <&cru 194>,
  3464. <&cru 450>, <&cru 76>,
  3465. <&cru 240>, <&cru 205>,
  3466. <&cru 461>, <&cru 159>,
  3467. <&cru 158>, <&cru 244>,
  3468. <&cru 190>, <&cru 201>,
  3469. <&cru 390>, <&cru 213>,
  3470. <&cru 136>, <&cru 135>,
  3471. <&cru 8>, <&cru 9>,
  3472. <&cru 6>, <&cru 208>,
  3473. <&cru 5>, <&cru 192>,
  3474. <&cru 448>, <&cru 320>,
  3475. <&cru 194>, <&cru 449>,
  3476. <&cru 322>, <&cru 450>,
  3477. <&cru 323>, <&cru 65>,
  3478. <&cru 66>, <&cru 67>,
  3479. <&cru 68>, <&cru 69>,
  3480. <&cru 70>, <&cru 71>,
  3481. <&cru 72>, <&cru 73>,
  3482. <&cru 74>, <&cru 75>,
  3483. <&cru 250>, <&cru 229>,
  3484. <&cru 230>, <&cru 107>,
  3485. <&cru 108>, <&cru 362>,
  3486. <&cru 222>, <&cru 227>,
  3487. <&cru 461>, <&cru 133>,
  3488. <&cru 134>, <&cru 78>,
  3489. <&cru 240>, <&cru 205>,
  3490. <&cru 225>, <&cru 220>,
  3491. <&cru 109>, <&cru 237>,
  3492. <&cru 235>, <&cru 376>,
  3493. <&cru 213>, <&cru 159>,
  3494. <&cru 158>, <&cru 244>,
  3495. <&cru 190>, <&cru 201>,
  3496. <&cru 390>, <&cru 136>,
  3497. <&cru 135>, <&cru 217>,
  3498. <&cru 473>, <&cru 219>,
  3499. <&cru 475>;
  3500. assigned-clock-rates =
  3501. <75000000>, <50000000>,
  3502. <50000000>, <50000000>,
  3503. <50000000>, <100000000>,
  3504. <50000000>, <150000000>,
  3505. <150000000>, <150000000>,
  3506. <50000000>, <150000000>,
  3507. <50000000>, <100000000>,
  3508. <75000000>, <75000000>,
  3509. <816000000>, <816000000>,
  3510. <600000000>, <200000000>,
  3511. <800000000>, <150000000>,
  3512. <75000000>, <37500000>,
  3513. <100000000>, <100000000>,
  3514. <50000000>, <100000000>,
  3515. <50000000>, <100000000>,
  3516. <100000000>, <100000000>,
  3517. <100000000>, <100000000>,
  3518. <100000000>, <50000000>,
  3519. <50000000>, <50000000>,
  3520. <50000000>, <50000000>,
  3521. <200000000>, <400000000>,
  3522. <400000000>, <100000000>,
  3523. <100000000>, <100000000>,
  3524. <400000000>, <400000000>,
  3525. <200000000>, <100000000>,
  3526. <200000000>, <200000000>,
  3527. <100000000>, <400000000>,
  3528. <400000000>, <400000000>,
  3529. <400000000>, <300000000>,
  3530. <400000000>, <200000000>,
  3531. <400000000>, <300000000>,
  3532. <300000000>, <300000000>,
  3533. <300000000>, <300000000>,
  3534. <100000000>, <150000000>,
  3535. <150000000>, <400000000>,
  3536. <100000000>, <400000000>,
  3537. <100000000>;
  3538. };
  3539. # 45 "arch/arm64/boot/dts/rockchip/rk3399-linux.dtsi" 2
  3540.  
  3541. / {
  3542. compatible = "rockchip,linux", "rockchip,rk3399";
  3543.  
  3544. chosen {
  3545. bootargs = "earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 console=ttyFIQ0 rw root=PARTUUID=614e0000-0000 rootfstype=ext4 rootwait";
  3546. };
  3547.  
  3548. reserved-memory {
  3549. #address-cells = <2>;
  3550. #size-cells = <2>;
  3551. ranges;
  3552.  
  3553. drm_logo: drm-logo@00000000 {
  3554. compatible = "rockchip,drm-logo";
  3555. reg = <0x0 0x0 0x0 0x0>;
  3556. };
  3557. };
  3558.  
  3559. cif_isp0: cif_isp@ff910000 {
  3560. compatible = "rockchip,rk3399-cif-isp";
  3561. rockchip,grf = <&grf>;
  3562. reg = <0x0 0xff910000 0x0 0x4000>, <0x0 0xff968000 0x0 0x8000>;
  3563. reg-names = "register", "dsihost-register";
  3564. clocks =
  3565. <&cru 231>, <&cru 233>,
  3566. <&cru 481>, <&cru 483>,
  3567. <&cru 110>, <&cru 165>,
  3568. <&cru 137>, <&cru 137>,
  3569. <&cru 119>;
  3570. clock-names =
  3571. "aclk_isp0_noc", "aclk_isp0_wrapper",
  3572. "hclk_isp0_noc", "hclk_isp0_wrapper",
  3573. "clk_isp0", "pclk_dphyrx",
  3574. "clk_cif_out", "clk_cif_pll",
  3575. "pclk_dphy_ref";
  3576. interrupts = <0 43 4 0>;
  3577. interrupt-names = "cif_isp10_irq";
  3578. power-domains = <&power 19>;
  3579. rockchip,isp,iommu-enable = <1>;
  3580. iommus = <&isp0_mmu>;
  3581. status = "disabled";
  3582. };
  3583.  
  3584. cif_isp1: cif_isp@ff920000 {
  3585. compatible = "rockchip,rk3399-cif-isp";
  3586. rockchip,grf = <&grf>;
  3587. reg = <0x0 0xff920000 0x0 0x4000>, <0x0 0xff968000 0x0 0x8000>;
  3588. reg-names = "register", "dsihost-register";
  3589. clocks =
  3590. <&cru 232>, <&cru 234>,
  3591. <&cru 482>, <&cru 484>,
  3592. <&cru 111>, <&cru 379>,
  3593. <&cru 164>,
  3594. <&cru 369>, <&cru 120>,
  3595. <&cru 137>, <&cru 137>,
  3596. <&cru 119>;
  3597. clock-names =
  3598. "aclk_isp1_noc", "aclk_isp1_wrapper",
  3599. "hclk_isp1_noc", "hclk_isp1_wrapper",
  3600. "clk_isp1", "pclkin_isp1",
  3601. "pclk_dphytxrx",
  3602. "pclk_mipi_dsi","mipi_dphy_cfg",
  3603. "clk_cif_out", "clk_cif_pll",
  3604. "pclk_dphy_ref";
  3605. interrupts = <0 44 4 0>;
  3606. interrupt-names = "cif_isp10_irq";
  3607. power-domains = <&power 20>;
  3608. rockchip,isp,iommu-enable = <1>;
  3609. iommus = <&isp1_mmu>;
  3610. status = "disabled";
  3611. };
  3612. };
  3613.  
  3614. &display_subsystem {
  3615. status = "okay";
  3616.  
  3617. ports = <&vopb_out>, <&vopl_out>;
  3618. logo-memory-region = <&drm_logo>;
  3619.  
  3620. route {
  3621. route_hdmi: route-hdmi {
  3622. status = "okay";
  3623. logo,uboot = "logo.bmp";
  3624. logo,kernel = "logo_kernel.bmp";
  3625. logo,mode = "center";
  3626. charge_logo,mode = "center";
  3627. connect = <&vopl_out_hdmi>;
  3628. };
  3629.  
  3630. route_dsi: route-dsi {
  3631. status = "disabled";
  3632. logo,uboot = "logo.bmp";
  3633. logo,kernel = "logo_kernel.bmp";
  3634. logo,mode = "center";
  3635. charge_logo,mode = "center";
  3636. connect = <&vopb_out_dsi>;
  3637. };
  3638.  
  3639. route_edp: route-edp {
  3640. status = "disabled";
  3641. logo,uboot = "logo.bmp";
  3642. logo,kernel = "logo_kernel.bmp";
  3643. logo,mode = "center";
  3644. charge_logo,mode = "center";
  3645. connect = <&vopb_out_edp>;
  3646. };
  3647. };
  3648. };
  3649.  
  3650. &pinctrl {
  3651. isp {
  3652. cif_clkout: cif-clkout {
  3653. rockchip,pins =
  3654.  
  3655. <2 11 3 &pcfg_pull_none>;
  3656. };
  3657.  
  3658. isp_dvp_d0d7: isp-dvp-d0d7 {
  3659. rockchip,pins =
  3660. <4 27 0 &pcfg_pull_none>,
  3661.  
  3662. <2 11 3 &pcfg_pull_none>,
  3663.  
  3664. <2 0 3 &pcfg_pull_none>,
  3665.  
  3666. <2 1 3 &pcfg_pull_none>,
  3667.  
  3668. <2 2 3 &pcfg_pull_none>,
  3669.  
  3670. <2 3 3 &pcfg_pull_none>,
  3671.  
  3672. <2 4 3 &pcfg_pull_none>,
  3673.  
  3674. <2 5 3 &pcfg_pull_none>,
  3675.  
  3676. <2 6 3 &pcfg_pull_none>,
  3677.  
  3678. <2 7 3 &pcfg_pull_none>,
  3679.  
  3680. <2 8 3 &pcfg_pull_none>,
  3681.  
  3682. <2 9 3 &pcfg_pull_none>,
  3683.  
  3684. <2 10 3 &pcfg_pull_none>;
  3685. };
  3686.  
  3687. isp_shutter: isp-shutter {
  3688. rockchip,pins =
  3689.  
  3690. <1 1 1 &pcfg_pull_none>,
  3691.  
  3692. <1 0 1 &pcfg_pull_none>;
  3693. };
  3694.  
  3695. isp_flash_trigger: isp-flash-trigger {
  3696.  
  3697. rockchip,pins = <1 3 1 &pcfg_pull_none>;
  3698. };
  3699.  
  3700. isp_flash_trigger_as_gpio: isp-flash-trigger-as-gpio {
  3701.  
  3702. rockchip,pins = <0 17 0 &pcfg_pull_none>;
  3703. };
  3704. };
  3705.  
  3706. cam_pins {
  3707. cam0_default_pins: cam0-default-pins {
  3708. rockchip,pins =
  3709. <4 27 0 &pcfg_pull_none>,
  3710. <2 11 3 &pcfg_pull_none>;
  3711. };
  3712. cam0_sleep_pins: cam0-sleep-pins {
  3713. rockchip,pins =
  3714. <4 27 3 &pcfg_pull_none>,
  3715. <2 11 0 &pcfg_pull_none>;
  3716. };
  3717. };
  3718. };
  3719. # 49 "arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dts" 2
  3720. # 1 "./scripts/dtc/include-prefixes/dt-bindings/input/input.h" 1
  3721. # 12 "./scripts/dtc/include-prefixes/dt-bindings/input/input.h"
  3722. # 1 "./scripts/dtc/include-prefixes/dt-bindings/input/linux-event-codes.h" 1
  3723. # 13 "./scripts/dtc/include-prefixes/dt-bindings/input/input.h" 2
  3724. # 50 "arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dts" 2
  3725.  
  3726. / {
  3727. model = "Rockchip RK3399 Firefly Board (Linux Opensource)";
  3728. compatible = "rockchip,rk3399-firefly-linux", "rockchip,rk3399";
  3729.  
  3730. backlight: backlight {
  3731. status = "disabled";
  3732. compatible = "pwm-backlight";
  3733. pwms = <&pwm0 0 25000 0>;
  3734. brightness-levels = <
  3735. 0 1 2 3 4 5 6 7
  3736. 8 9 10 11 12 13 14 15
  3737. 16 17 18 19 20 21 22 23
  3738. 24 25 26 27 28 29 30 31
  3739. 32 33 34 35 36 37 38 39
  3740. 40 41 42 43 44 45 46 47
  3741. 48 49 50 51 52 53 54 55
  3742. 56 57 58 59 60 61 62 63
  3743. 64 65 66 67 68 69 70 71
  3744. 72 73 74 75 76 77 78 79
  3745. 80 81 82 83 84 85 86 87
  3746. 88 89 90 91 92 93 94 95
  3747. 96 97 98 99 100 101 102 103
  3748. 104 105 106 107 108 109 110 111
  3749. 112 113 114 115 116 117 118 119
  3750. 120 121 122 123 124 125 126 127
  3751. 128 129 130 131 132 133 134 135
  3752. 136 137 138 139 140 141 142 143
  3753. 144 145 146 147 148 149 150 151
  3754. 152 153 154 155 156 157 158 159
  3755. 160 161 162 163 164 165 166 167
  3756. 168 169 170 171 172 173 174 175
  3757. 176 177 178 179 180 181 182 183
  3758. 184 185 186 187 188 189 190 191
  3759. 192 193 194 195 196 197 198 199
  3760. 200 201 202 203 204 205 206 207
  3761. 208 209 210 211 212 213 214 215
  3762. 216 217 218 219 220 221 222 223
  3763. 224 225 226 227 228 229 230 231
  3764. 232 233 234 235 236 237 238 239
  3765. 240 241 242 243 244 245 246 247
  3766. 248 249 250 251 252 253 254 255>;
  3767. default-brightness-level = <200>;
  3768. };
  3769.  
  3770. clkin_gmac: external-gmac-clock {
  3771. compatible = "fixed-clock";
  3772. clock-frequency = <125000000>;
  3773. clock-output-names = "clkin_gmac";
  3774. #clock-cells = <0>;
  3775. };
  3776.  
  3777. dw_hdmi_audio: dw-hdmi-audio {
  3778. status = "disabled";
  3779. compatible = "rockchip,dw-hdmi-audio";
  3780. #sound-dai-cells = <0>;
  3781. };
  3782.  
  3783. edp_panel: edp-panel {
  3784. status = "disabled";
  3785. compatible = "sharp,lcd-f402", "panel-simple";
  3786. backlight = <&backlight>;
  3787. power-supply = <&vcc_lcd>;
  3788. enable-gpios = <&gpio4 29 0>;
  3789. pinctrl-names = "default";
  3790. pinctrl-0 = <&lcd_panel_reset>;
  3791.  
  3792. ports {
  3793. panel_in_edp: endpoint {
  3794. remote-endpoint = <&edp_out_panel>;
  3795. };
  3796. };
  3797. };
  3798.  
  3799. fiq_debugger: fiq-debugger {
  3800. compatible = "rockchip,fiq-debugger";
  3801. rockchip,serial-id = <2>;
  3802. rockchip,signal-irq = <182>;
  3803. rockchip,wake-irq = <0>;
  3804. rockchip,irq-mode-enable = <1>;
  3805. rockchip,baudrate = <1500000>;
  3806. pinctrl-names = "default";
  3807. pinctrl-0 = <&uart2c_xfer>;
  3808. };
  3809.  
  3810. gpio-keys {
  3811. compatible = "gpio-keys";
  3812. #address-cells = <1>;
  3813. #size-cells = <0>;
  3814. autorepeat;
  3815.  
  3816. pinctrl-names = "default";
  3817. pinctrl-0 = <&pwrbtn>;
  3818.  
  3819. button@0 {
  3820. gpios = <&gpio0 5 1>;
  3821. linux,code = <116>;
  3822. label = "GPIO Key Power";
  3823. linux,input-type = <1>;
  3824. gpio-key,wakeup = <1>;
  3825. debounce-interval = <100>;
  3826. };
  3827. };
  3828.  
  3829. rt5640-sound {
  3830. compatible = "simple-audio-card";
  3831. simple-audio-card,format = "i2s";
  3832. simple-audio-card,name = "rockchip,rt5640-codec";
  3833. simple-audio-card,mclk-fs = <256>;
  3834. simple-audio-card,widgets =
  3835. "Microphone", "Mic Jack",
  3836. "Headphone", "Headphone Jack";
  3837. simple-audio-card,routing =
  3838. "Mic Jack", "MICBIAS1",
  3839. "IN1P", "Mic Jack",
  3840. "Headphone Jack", "HPOL",
  3841. "Headphone Jack", "HPOR";
  3842. simple-audio-card,cpu {
  3843. sound-dai = <&i2s1>;
  3844. };
  3845. simple-audio-card,codec {
  3846. sound-dai = <&rt5640>;
  3847. };
  3848. };
  3849.  
  3850. hdmi-dp-sound {
  3851. status = "okay";
  3852. compatible = "rockchip,rk3399-hdmi-dp";
  3853. rockchip,cpu = <0xcb>;
  3854. rockchip,codec = <0xcc 0xcd>;
  3855. };
  3856.  
  3857. hdmi_codec: hdmi-codec {
  3858. compatible = "simple-audio-card";
  3859. simple-audio-card,format = "i2s";
  3860. simple-audio-card,mclk-fs = <256>;
  3861. simple-audio-card,name = "HDMI-CODEC";
  3862.  
  3863. simple-audio-card,cpu {
  3864. sound-dai = <&i2s2>;
  3865. };
  3866.  
  3867. simple-audio-card,codec {
  3868. sound-dai = <&hdmi>;
  3869. };
  3870. };
  3871.  
  3872. spdif-sound {
  3873. status = "okay";
  3874. compatible = "simple-audio-card";
  3875. simple-audio-card,name = "ROCKCHIP,SPDIF";
  3876. simple-audio-card,cpu {
  3877. sound-dai = <&spdif>;
  3878. };
  3879. simple-audio-card,codec {
  3880. sound-dai = <&spdif_out>;
  3881. };
  3882. };
  3883.  
  3884. spdif_out: spdif-out {
  3885. status = "okay";
  3886. compatible = "linux,spdif-dit";
  3887. #sound-dai-cells = <0>;
  3888. };
  3889.  
  3890. sdio_pwrseq: sdio-pwrseq {
  3891. compatible = "mmc-pwrseq-simple";
  3892. clocks = <&rk808 1>;
  3893. clock-names = "ext_clock";
  3894. pinctrl-names = "default";
  3895. pinctrl-0 = <&wifi_enable_h>;
  3896.  
  3897.  
  3898.  
  3899.  
  3900.  
  3901.  
  3902.  
  3903. reset-gpios = <&gpio0 10 1>;
  3904. };
  3905.  
  3906. vcc3v3_pcie: vcc3v3-pcie-regulator {
  3907. compatible = "regulator-fixed";
  3908. enable-active-high;
  3909. regulator-always-on;
  3910. regulator-boot-on;
  3911. gpio = <&gpio1 17 0>;
  3912. pinctrl-names = "default";
  3913. pinctrl-0 = <&pcie_drv>;
  3914. regulator-name = "vcc3v3_pcie";
  3915. };
  3916.  
  3917. vcc3v3_sys: vcc3v3-sys {
  3918. compatible = "regulator-fixed";
  3919. regulator-name = "vcc3v3_sys";
  3920. regulator-always-on;
  3921. regulator-boot-on;
  3922. regulator-min-microvolt = <3300000>;
  3923. regulator-max-microvolt = <3300000>;
  3924. };
  3925.  
  3926. vcc5v0_host: vcc5v0-host-regulator {
  3927. compatible = "regulator-fixed";
  3928. enable-active-high;
  3929. gpio = <&gpio1 0 0>;
  3930. pinctrl-names = "default";
  3931. pinctrl-0 = <&host_vbus_drv>;
  3932. regulator-name = "vcc5v0_host";
  3933. regulator-always-on;
  3934. };
  3935.  
  3936. vcc5v0_sys: vcc5v0-sys {
  3937. compatible = "regulator-fixed";
  3938. regulator-name = "vcc5v0_sys";
  3939. regulator-always-on;
  3940. regulator-boot-on;
  3941. regulator-min-microvolt = <5000000>;
  3942. regulator-max-microvolt = <5000000>;
  3943. };
  3944.  
  3945. vcc_phy: vcc-phy-regulator {
  3946. compatible = "regulator-fixed";
  3947. regulator-name = "vcc_phy";
  3948. regulator-always-on;
  3949. regulator-boot-on;
  3950. };
  3951.  
  3952. vdd_log: vdd-log {
  3953. compatible = "pwm-regulator";
  3954. pwms = <&pwm2 0 25000 1>;
  3955. regulator-name = "vdd_log";
  3956. regulator-min-microvolt = <800000>;
  3957. regulator-max-microvolt = <1400000>;
  3958. regulator-always-on;
  3959. regulator-boot-on;
  3960.  
  3961.  
  3962. rockchip,pwm_id= <2>;
  3963. rockchip,pwm_voltage = <900000>;
  3964. };
  3965.  
  3966. vccadc_ref: vccadc-ref {
  3967. compatible = "regulator-fixed";
  3968. regulator-name = "vcc1v8_sys";
  3969. regulator-always-on;
  3970. regulator-boot-on;
  3971. regulator-min-microvolt = <1800000>;
  3972. regulator-max-microvolt = <1800000>;
  3973. };
  3974.  
  3975. vcc_lcd: vcc-lcd-regulator {
  3976. compatible = "regulator-fixed";
  3977. regulator-always-on;
  3978. regulator-boot-on;
  3979. enable-active-high;
  3980. gpio = <&gpio1 1 0>;
  3981. pinctrl-names = "default";
  3982. pinctrl-0 = <&lcd_en>;
  3983. regulator-name = "vcc_lcd";
  3984. };
  3985.  
  3986. xin32k: xin32k {
  3987. compatible = "fixed-clock";
  3988. clock-frequency = <32768>;
  3989. clock-output-names = "xin32k";
  3990. #clock-cells = <0>;
  3991. };
  3992.  
  3993. wireless-wlan {
  3994. compatible = "wlan-platdata";
  3995. rockchip,grf = <&grf>;
  3996. wifi_chip_type = "ap6354";
  3997. sdio_vref = <1800>;
  3998. WIFI,host_wake_irq = <&gpio0 3 0>;
  3999. status = "okay";
  4000. };
  4001.  
  4002. wireless-bluetooth {
  4003. compatible = "bluetooth-platdata";
  4004.  
  4005. uart_rts_gpios = <&gpio2 19 1>;
  4006. pinctrl-names = "default", "rts_gpio";
  4007. pinctrl-0 = <&uart0_rts>;
  4008. pinctrl-1 = <&uart0_gpios>;
  4009.  
  4010. BT,reset_gpio = <&gpio0 9 0>;
  4011. BT,wake_gpio = <&gpio2 26 0>;
  4012. BT,wake_host_irq = <&gpio0 4 0>;
  4013. status = "okay";
  4014. };
  4015. };
  4016.  
  4017. &cpu_l0 {
  4018. cpu-supply = <&vdd_cpu_l>;
  4019. };
  4020.  
  4021. &cpu_l1 {
  4022. cpu-supply = <&vdd_cpu_l>;
  4023. };
  4024.  
  4025. &cpu_l2 {
  4026. cpu-supply = <&vdd_cpu_l>;
  4027. };
  4028.  
  4029. &cpu_l3 {
  4030. cpu-supply = <&vdd_cpu_l>;
  4031. };
  4032.  
  4033. &cpu_b0 {
  4034. cpu-supply = <&vdd_cpu_b>;
  4035. };
  4036.  
  4037. &cpu_b1 {
  4038. cpu-supply = <&vdd_cpu_b>;
  4039. };
  4040.  
  4041. &display_subsystem {
  4042. status = "okay";
  4043. };
  4044.  
  4045. &edp {
  4046. status = "disabled";
  4047.  
  4048. ports {
  4049. edp_out: port@1 {
  4050. reg = <1>;
  4051. #address-cells = <1>;
  4052. #size-cells = <0>;
  4053.  
  4054. edp_out_panel: endpoint@0 {
  4055. reg = <0>;
  4056. remote-endpoint = <&panel_in_edp>;
  4057. };
  4058. };
  4059. };
  4060. };
  4061.  
  4062. &emmc_phy {
  4063. status = "okay";
  4064. };
  4065.  
  4066. &gmac {
  4067. phy-supply = <&vcc_phy>;
  4068. phy-mode = "rgmii";
  4069. clock_in_out = "input";
  4070. snps,reset-gpio = <&gpio3 15 1>;
  4071. snps,reset-active-low;
  4072. snps,reset-delays-us = <0 10000 50000>;
  4073. assigned-clocks = <&cru 166>;
  4074. assigned-clock-parents = <&clkin_gmac>;
  4075. pinctrl-names = "default";
  4076. pinctrl-0 = <&rgmii_pins>;
  4077. tx_delay = <0x28>;
  4078. rx_delay = <0x11>;
  4079. status = "okay";
  4080. };
  4081.  
  4082. &gpu {
  4083. status = "okay";
  4084. mali-supply = <&vdd_gpu>;
  4085. };
  4086.  
  4087. &hdmi {
  4088. #address-cells = <1>;
  4089. #size-cells = <0>;
  4090. #sound-dai-cells = <0>;
  4091. status = "okay";
  4092. };
  4093.  
  4094. &i2c0 {
  4095. status = "okay";
  4096. i2c-scl-rising-time-ns = <168>;
  4097. i2c-scl-falling-time-ns = <4>;
  4098. clock-frequency = <400000>;
  4099.  
  4100. vdd_cpu_b: syr827@40 {
  4101. compatible = "silergy,syr827";
  4102. reg = <0x40>;
  4103. vin-supply = <&vcc5v0_sys>;
  4104. regulator-compatible = "fan53555-reg";
  4105. regulator-name = "vdd_cpu_b";
  4106. regulator-min-microvolt = <712500>;
  4107. regulator-max-microvolt = <1500000>;
  4108. regulator-ramp-delay = <1000>;
  4109. vsel-gpios = <&gpio1 18 0>;
  4110. fcs,suspend-voltage-selector = <1>;
  4111. regulator-always-on;
  4112. regulator-boot-on;
  4113. regulator-initial-state = <3>;
  4114. regulator-state-mem {
  4115. regulator-off-in-suspend;
  4116. };
  4117. };
  4118.  
  4119. vdd_gpu: syr828@41 {
  4120. compatible = "silergy,syr828";
  4121. reg = <0x41>;
  4122. vin-supply = <&vcc5v0_sys>;
  4123. regulator-compatible = "fan53555-reg";
  4124. regulator-name = "vdd_gpu";
  4125. regulator-min-microvolt = <712500>;
  4126. regulator-max-microvolt = <1500000>;
  4127. regulator-ramp-delay = <1000>;
  4128. fcs,suspend-voltage-selector = <1>;
  4129. regulator-always-on;
  4130. regulator-boot-on;
  4131. regulator-initial-state = <3>;
  4132. regulator-state-mem {
  4133. regulator-off-in-suspend;
  4134. };
  4135. };
  4136.  
  4137. rk808: pmic@1b {
  4138. compatible = "rockchip,rk808";
  4139. reg = <0x1b>;
  4140. interrupt-parent = <&gpio1>;
  4141. interrupts = <21 8>;
  4142. pinctrl-names = "default";
  4143. pinctrl-0 = <&pmic_int_l &pmic_dvs2>;
  4144. rockchip,system-power-controller;
  4145. wakeup-source;
  4146. #clock-cells = <1>;
  4147. clock-output-names = "rk808-clkout1", "rk808-clkout2";
  4148.  
  4149. vcc1-supply = <&vcc3v3_sys>;
  4150. vcc2-supply = <&vcc3v3_sys>;
  4151. vcc3-supply = <&vcc3v3_sys>;
  4152. vcc4-supply = <&vcc3v3_sys>;
  4153. vcc6-supply = <&vcc3v3_sys>;
  4154. vcc7-supply = <&vcc3v3_sys>;
  4155. vcc8-supply = <&vcc3v3_sys>;
  4156. vcc9-supply = <&vcc3v3_sys>;
  4157. vcc10-supply = <&vcc3v3_sys>;
  4158. vcc11-supply = <&vcc3v3_sys>;
  4159. vcc12-supply = <&vcc3v3_sys>;
  4160. vddio-supply = <&vcc1v8_pmu>;
  4161.  
  4162. regulators {
  4163. vdd_center: DCDC_REG1 {
  4164. regulator-always-on;
  4165. regulator-boot-on;
  4166. regulator-min-microvolt = <750000>;
  4167. regulator-max-microvolt = <1350000>;
  4168. regulator-ramp-delay = <6001>;
  4169. regulator-name = "vdd_center";
  4170. regulator-state-mem {
  4171. regulator-off-in-suspend;
  4172. };
  4173. };
  4174.  
  4175. vdd_cpu_l: DCDC_REG2 {
  4176. regulator-always-on;
  4177. regulator-boot-on;
  4178. regulator-min-microvolt = <750000>;
  4179. regulator-max-microvolt = <1350000>;
  4180. regulator-ramp-delay = <6001>;
  4181. regulator-name = "vdd_cpu_l";
  4182. regulator-state-mem {
  4183. regulator-off-in-suspend;
  4184. };
  4185. };
  4186.  
  4187. vcc_ddr: DCDC_REG3 {
  4188. regulator-always-on;
  4189. regulator-boot-on;
  4190. regulator-name = "vcc_ddr";
  4191. regulator-state-mem {
  4192. regulator-on-in-suspend;
  4193. };
  4194. };
  4195.  
  4196. vcc_1v8: DCDC_REG4 {
  4197. regulator-always-on;
  4198. regulator-boot-on;
  4199. regulator-min-microvolt = <1800000>;
  4200. regulator-max-microvolt = <1800000>;
  4201. regulator-name = "vcc_1v8";
  4202. regulator-state-mem {
  4203. regulator-on-in-suspend;
  4204. regulator-suspend-microvolt = <1800000>;
  4205. };
  4206. };
  4207.  
  4208. vcc1v8_dvp: LDO_REG1 {
  4209. regulator-always-on;
  4210. regulator-boot-on;
  4211. regulator-min-microvolt = <1800000>;
  4212. regulator-max-microvolt = <1800000>;
  4213. regulator-name = "vcc1v8_dvp";
  4214. regulator-state-mem {
  4215. regulator-off-in-suspend;
  4216. };
  4217. };
  4218.  
  4219.  
  4220. vcc3v0_tp: LDO_REG2 {
  4221. regulator-name = "vcca1v8_hdmi";
  4222. regulator-min-microvolt = <0x1b7740>;
  4223. regulator-max-microvolt = <0x1b7740>;
  4224. regulator-always-on;
  4225. regulator-boot-on;
  4226.  
  4227. regulator-state-mem {
  4228. regulator-on-in-suspend;
  4229. regulator-suspend-microvolt = <0x1b7740>;
  4230. };
  4231. };
  4232.  
  4233. vcc1v8_pmu: LDO_REG3 {
  4234. regulator-always-on;
  4235. regulator-boot-on;
  4236. regulator-min-microvolt = <1800000>;
  4237. regulator-max-microvolt = <1800000>;
  4238. regulator-name = "vcc1v8_pmu";
  4239. regulator-state-mem {
  4240. regulator-on-in-suspend;
  4241. regulator-suspend-microvolt = <1800000>;
  4242. };
  4243. };
  4244.  
  4245. vcc_sd: LDO_REG4 {
  4246. regulator-always-on;
  4247. regulator-boot-on;
  4248. regulator-min-microvolt = <1800000>;
  4249. regulator-max-microvolt = <3000000>;
  4250. regulator-name = "vcc_sd";
  4251. regulator-state-mem {
  4252. regulator-on-in-suspend;
  4253. regulator-suspend-microvolt = <3000000>;
  4254. };
  4255. };
  4256.  
  4257. vcca3v0_codec: LDO_REG5 {
  4258. regulator-name = "vcc3v0_sd";
  4259. regulator-min-microvolt = <0x2dc6c0>;
  4260. regulator-max-microvolt = <0x2dc6c0>;
  4261. regulator-always-on;
  4262. regulator-boot-on;
  4263.  
  4264. regulator-state-mem {
  4265. regulator-on-in-suspend;
  4266. regulator-suspend-microvolt = <0x2dc6c0>;
  4267. };
  4268. };
  4269.  
  4270. vcc_1v5: LDO_REG6 {
  4271. regulator-always-on;
  4272. regulator-boot-on;
  4273. regulator-min-microvolt = <1500000>;
  4274. regulator-max-microvolt = <1500000>;
  4275. regulator-name = "vcc_1v5";
  4276. regulator-state-mem {
  4277. regulator-on-in-suspend;
  4278. regulator-suspend-microvolt = <1500000>;
  4279. };
  4280. };
  4281.  
  4282. vcca1v8_codec: LDO_REG7 {
  4283. regulator-name = "vcca0v9_hdmi";
  4284. regulator-min-microvolt = <0xdbba0>;
  4285. regulator-max-microvolt = <0xdbba0>;
  4286. regulator-always-on;
  4287. regulator-boot-on;
  4288.  
  4289. regulator-state-mem {
  4290. regulator-on-in-suspend;
  4291. regulator-suspend-microvolt = <0xdbba0>;
  4292. };
  4293. };
  4294.  
  4295. vcc_3v0: LDO_REG8 {
  4296. regulator-always-on;
  4297. regulator-boot-on;
  4298. regulator-min-microvolt = <3000000>;
  4299. regulator-max-microvolt = <3000000>;
  4300. regulator-name = "vcc_3v0";
  4301. regulator-state-mem {
  4302. regulator-on-in-suspend;
  4303. regulator-suspend-microvolt = <3000000>;
  4304. };
  4305. };
  4306.  
  4307. vcc3v3_s3: SWITCH_REG1 {
  4308. regulator-always-on;
  4309. regulator-boot-on;
  4310. regulator-name = "vcc3v3_s3";
  4311. regulator-state-mem {
  4312. regulator-off-in-suspend;
  4313. };
  4314. };
  4315.  
  4316. vcc3v3_s0: SWITCH_REG2 {
  4317. regulator-always-on;
  4318. regulator-boot-on;
  4319. regulator-name = "vcc3v3_s0";
  4320. regulator-state-mem {
  4321. regulator-off-in-suspend;
  4322. };
  4323. };
  4324. };
  4325. };
  4326. };
  4327.  
  4328. &i2c1 {
  4329. status = "okay";
  4330. i2c-scl-rising-time-ns = <300>;
  4331. i2c-scl-falling-time-ns = <15>;
  4332.  
  4333. rt5640: rt5640@1c {
  4334. #sound-dai-cells = <0>;
  4335. compatible = "realtek,rt5640";
  4336. reg = <0x1c>;
  4337. clocks = <&cru 89>;
  4338. clock-names = "mclk";
  4339. realtek,in1-differential;
  4340. pinctrl-names = "default";
  4341. pinctrl-0 = <&rt5640_hpcon &i2s_8ch_mclk>;
  4342. hp-con-gpio = <&gpio4 21 0>;
  4343.  
  4344. io-channels = <&saradc 4>;
  4345. hp-det-adc-value = <500>;
  4346. };
  4347.  
  4348. camera0: ov13850@10 {
  4349. status = "okay";
  4350. compatible = "omnivision,ov13850-v4l2-i2c-subdev";
  4351. reg = < 0x10 >;
  4352. device_type = "v4l2-i2c-subdev";
  4353.  
  4354. clocks = <&cru 137>;
  4355. clock-names = "clk_cif_out";
  4356.  
  4357. pinctrl-names = "rockchip,camera_default", "rockchip,camera_sleep";
  4358. pinctrl-0 = <&cam0_default_pins>;
  4359. pinctrl-1 = <&cam0_sleep_pins>;
  4360.  
  4361. rockchip,pd-gpio = <&gpio2 12 1>;
  4362. rockchip,pwr-gpio = <&gpio1 23 0>;
  4363. rockchip,pwr-2nd-gpio = <&gpio1 22 0>;
  4364. rockchip,rst-gpio = <&gpio0 8 1>;
  4365.  
  4366. rockchip,camera-module-mclk-name = "clk_cif_out";
  4367. rockchip,camera-module-facing = "back";
  4368. rockchip,camera-module-name = "cmk-cb0695-fv1";
  4369. rockchip,camera-module-len-name = "lg9569a2";
  4370. rockchip,camera-module-fov-h = "66.0";
  4371. rockchip,camera-module-fov-v = "50.1";
  4372. rockchip,camera-module-orientation = <0>;
  4373. rockchip,camera-module-iq-flip = <0>;
  4374. rockchip,camera-module-iq-mirror = <0>;
  4375. rockchip,camera-module-flip = <1>;
  4376. rockchip,camera-module-mirror = <0>;
  4377.  
  4378. rockchip,camera-module-defrect0 = <2112 1568 0 0 2112 1568>;
  4379. rockchip,camera-module-defrect1 = <4224 3136 0 0 4224 3136>;
  4380. rockchip,camera-module-defrect3 = <3264 2448 0 0 3264 2448>;
  4381. rockchip,camera-module-flash-support = <0>;
  4382. rockchip,camera-module-mipi-dphy-index = <0>;
  4383. };
  4384. };
  4385.  
  4386. &i2c3 {
  4387. status = "okay";
  4388. i2c-scl-rising-time-ns = <450>;
  4389. i2c-scl-falling-time-ns = <15>;
  4390. };
  4391.  
  4392. &i2c4 {
  4393. status = "okay";
  4394. i2c-scl-rising-time-ns = <600>;
  4395. i2c-scl-falling-time-ns = <20>;
  4396.  
  4397. fusb0: fusb30x@22 {
  4398. compatible = "fairchild,fusb302";
  4399. reg = <0x22>;
  4400. pinctrl-names = "default";
  4401. pinctrl-0 = <&fusb0_int>;
  4402. int-n-gpios = <&gpio1 2 0>;
  4403. vbus-5v-gpios = <&gpio2 0 0>;
  4404. status = "okay";
  4405. };
  4406.  
  4407. gsl3680: gsl3680@41 {
  4408. status = "disabled";
  4409. compatible = "gslX680-pad";
  4410. reg = <0x41>;
  4411. screen_max_x = <1536>;
  4412. screen_max_y = <2048>;
  4413. touch-gpio = <&gpio1 20 8>;
  4414. reset-gpio = <&gpio0 12 0>;
  4415. };
  4416.  
  4417. mpu6050: mpu@68 {
  4418. status = "disabled";
  4419. compatible = "invensense,mpu6050";
  4420. reg = <0x68>;
  4421. mpu-int_config = <0x10>;
  4422. mpu-level_shifter = <0>;
  4423. mpu-orientation = <0 1 0 1 0 0 0 0 1>;
  4424. orientation-x= <1>;
  4425. orientation-y= <1>;
  4426. orientation-z= <1>;
  4427. irq-gpio = <&gpio1 4 8>;
  4428. mpu-debug = <1>;
  4429. };
  4430. };
  4431.  
  4432. &i2s0 {
  4433. status = "okay";
  4434. rockchip,i2s-broken-burst-len;
  4435. rockchip,playback-channels = <8>;
  4436. rockchip,capture-channels = <8>;
  4437. #sound-dai-cells = <0>;
  4438. };
  4439.  
  4440. &i2s1 {
  4441. status = "okay";
  4442. rockchip,i2s-broken-burst-len;
  4443. rockchip,playback-channels = <2>;
  4444. rockchip,capture-channels = <2>;
  4445. #sound-dai-cells = <0>;
  4446. };
  4447.  
  4448. &i2s2 {
  4449. #sound-dai-cells = <0>;
  4450. status = "okay";
  4451. };
  4452.  
  4453. &io_domains {
  4454. status = "okay";
  4455.  
  4456. bt656-supply = <&vcc1v8_dvp>;
  4457. audio-supply = <&vcca1v8_codec>;
  4458. sdmmc-supply = <&vcc_sd>;
  4459. gpio1830-supply = <&vcc_3v0>;
  4460. };
  4461.  
  4462. &pcie_phy {
  4463. status = "okay";
  4464. };
  4465.  
  4466. &pcie0 {
  4467. ep-gpios = <&gpio4 25 0>;
  4468. num-lanes = <4>;
  4469. pinctrl-names = "default";
  4470. pinctrl-0 = <&pcie_clkreqn_cpm>;
  4471. status = "okay";
  4472. };
  4473.  
  4474. &pmu_io_domains {
  4475. status = "okay";
  4476. pmu1830-supply = <&vcc_3v0>;
  4477. };
  4478.  
  4479. &pinctrl {
  4480. buttons {
  4481. pwrbtn: pwrbtn {
  4482. rockchip,pins = <0 5 0 &pcfg_pull_up>;
  4483. };
  4484. };
  4485.  
  4486. lcd-panel {
  4487. lcd_panel_reset: lcd-panel-reset {
  4488. rockchip,pins = <4 29 0 &pcfg_pull_up>;
  4489. };
  4490.  
  4491. lcd_en: lcd-en {
  4492. rockchip,pins = <1 1 0 &pcfg_pull_up>;
  4493. };
  4494. };
  4495.  
  4496. pcie {
  4497. pcie_drv: pcie-drv {
  4498. rockchip,pins =
  4499. <1 17 0 &pcfg_pull_none>;
  4500. };
  4501. pcie_3g_drv: pcie-3g-drv {
  4502. rockchip,pins =
  4503. <0 2 0 &pcfg_pull_up>;
  4504. };
  4505. };
  4506.  
  4507. pmic {
  4508. vsel1_gpio: vsel1-gpio {
  4509. rockchip,pins =
  4510. <1 18 0 &pcfg_pull_down>;
  4511. };
  4512.  
  4513. vsel2_gpio: vsel2-gpio {
  4514. rockchip,pins =
  4515. <1 14 0 &pcfg_pull_down>;
  4516. };
  4517. };
  4518.  
  4519. sdio-pwrseq {
  4520. wifi_enable_h: wifi-enable-h {
  4521. rockchip,pins =
  4522. <0 10 0 &pcfg_pull_none>;
  4523. };
  4524. };
  4525.  
  4526. wireless-bluetooth {
  4527. uart0_gpios: uart0-gpios {
  4528. rockchip,pins =
  4529. <2 19 0 &pcfg_pull_none>;
  4530. };
  4531. };
  4532.  
  4533. rt5640 {
  4534. rt5640_hpcon: rt5640-hpcon {
  4535. rockchip,pins = <4 21 0 &pcfg_pull_none>;
  4536. };
  4537. };
  4538.  
  4539. pmic {
  4540. pmic_int_l: pmic-int-l {
  4541. rockchip,pins =
  4542. <1 21 0 &pcfg_pull_up>;
  4543. };
  4544.  
  4545. pmic_dvs2: pmic-dvs2 {
  4546. rockchip,pins =
  4547. <1 18 0 &pcfg_pull_down>;
  4548. };
  4549. };
  4550.  
  4551. usb2 {
  4552. host_vbus_drv: host-vbus-drv {
  4553. rockchip,pins =
  4554. <4 25 0 &pcfg_pull_none>;
  4555. };
  4556. };
  4557.  
  4558. fusb30x {
  4559. fusb0_int: fusb0-int {
  4560. rockchip,pins = <1 2 0 &pcfg_pull_up>;
  4561. };
  4562. };
  4563. };
  4564.  
  4565. &pwm0 {
  4566. status = "okay";
  4567. };
  4568.  
  4569. &pwm2 {
  4570. status = "okay";
  4571. pinctrl-names = "active";
  4572. pinctrl-0 = <&pwm2_pin_pull_down>;
  4573. };
  4574.  
  4575. &rkvdec {
  4576. status = "okay";
  4577. };
  4578.  
  4579. &rockchip_suspend {
  4580. rockchip,power-ctrl =
  4581. <&gpio1 18 1>,
  4582. <&gpio1 14 0>;
  4583. };
  4584.  
  4585. &route_edp {
  4586. status = "disabled";
  4587. };
  4588.  
  4589. &saradc {
  4590. status = "okay";
  4591. vref-supply = <&vccadc_ref>;
  4592. };
  4593.  
  4594. &sdhci {
  4595. bus-width = <8>;
  4596. keep-power-in-suspend;
  4597. mmc-hs400-1_8v;
  4598. mmc-hs400-enhanced-strobe;
  4599. non-removable;
  4600. status = "okay";
  4601. supports-emmc;
  4602. };
  4603.  
  4604. &sdmmc {
  4605. max-frequency = <150000000>;
  4606. supports-sd;
  4607. bus-width = <4>;
  4608. cap-mmc-highspeed;
  4609. cap-sd-highspeed;
  4610. disable-wp;
  4611. num-slots = <1>;
  4612. vqmmc-supply = <&vcc_sd>;
  4613. pinctrl-names = "default";
  4614. pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
  4615. status = "okay";
  4616. };
  4617.  
  4618. &sdio0 {
  4619. max-frequency = <50000000>;
  4620. supports-sdio;
  4621. bus-width = <4>;
  4622. disable-wp;
  4623. cap-sd-highspeed;
  4624. keep-power-in-suspend;
  4625. mmc-pwrseq = <&sdio_pwrseq>;
  4626. non-removable;
  4627. num-slots = <1>;
  4628. pinctrl-names = "default";
  4629. pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
  4630. sd-uhs-sdr104;
  4631. status = "okay";
  4632. };
  4633.  
  4634. &spdif {
  4635. status = "okay";
  4636. pinctrl-0 = <&spdif_bus_1>;
  4637. i2c-scl-rising-time-ns = <450>;
  4638. i2c-scl-falling-time-ns = <15>;
  4639. #sound-dai-cells = <0>;
  4640. };
  4641.  
  4642. &tcphy0 {
  4643. extcon = <&fusb0>;
  4644. status = "okay";
  4645. };
  4646.  
  4647. &tcphy1 {
  4648. status = "okay";
  4649. };
  4650.  
  4651. &tsadc {
  4652.  
  4653. rockchip,hw-tshut-mode = <1>;
  4654.  
  4655. rockchip,hw-tshut-polarity = <1>;
  4656. status = "okay";
  4657. };
  4658.  
  4659. &u2phy0 {
  4660. status = "okay";
  4661. extcon = <&fusb0>;
  4662.  
  4663. u2phy0_otg: otg-port {
  4664. status = "okay";
  4665. };
  4666.  
  4667. u2phy0_host: host-port {
  4668. phy-supply = <&vcc5v0_host>;
  4669. status = "okay";
  4670. };
  4671. };
  4672.  
  4673. &u2phy1 {
  4674. status = "okay";
  4675.  
  4676. u2phy1_otg: otg-port {
  4677. status = "okay";
  4678. };
  4679.  
  4680. u2phy1_host: host-port {
  4681. phy-supply = <&vcc5v0_host>;
  4682. status = "okay";
  4683. };
  4684. };
  4685.  
  4686. &uart0 {
  4687. pinctrl-names = "default";
  4688. pinctrl-0 = <&uart0_xfer &uart0_cts>;
  4689. status = "okay";
  4690. };
  4691.  
  4692. &uart2 {
  4693. status = "okay";
  4694. };
  4695.  
  4696. &usbdrd3_0 {
  4697. status = "okay";
  4698. extcon = <&fusb0>;
  4699. };
  4700.  
  4701. &usbdrd3_1 {
  4702. status = "okay";
  4703. };
  4704.  
  4705. &usbdrd_dwc3_0 {
  4706. status = "okay";
  4707. };
  4708.  
  4709. &usbdrd_dwc3_1 {
  4710. status = "okay";
  4711. dr_mode = "host";
  4712. };
  4713.  
  4714. &usb_host0_ehci {
  4715. status = "okay";
  4716. };
  4717.  
  4718. &usb_host0_ohci {
  4719. status = "okay";
  4720. };
  4721.  
  4722. &usb_host1_ehci {
  4723. status = "okay";
  4724. };
  4725.  
  4726. &usb_host1_ohci {
  4727. status = "okay";
  4728. };
  4729.  
  4730. &cif_isp0 {
  4731. rockchip,camera-modules-attached = <&camera0>;
  4732. status = "okay";
  4733. };
  4734.  
  4735. &isp0_mmu {
  4736. status = "okay";
  4737. };
  4738.  
  4739. &vopb {
  4740. status = "okay";
  4741. };
  4742.  
  4743. &vopb_mmu {
  4744. status = "okay";
  4745. };
  4746.  
  4747. &vopl {
  4748. status = "okay";
  4749. };
  4750.  
  4751. &vopl_mmu {
  4752. status = "okay";
  4753. };
  4754.  
  4755. &vpu {
  4756. status = "okay";
  4757. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement