Commit 0a09f2f1173d877a007fe64c7e130c04c5085662

Authored by Simon Glass
Committed by Philipp Tomsich
1 parent d244474f38

rockchip: Adjust rk3399 device tree to be closer to linux

This file has changed upstream, with some additions and changes. Move the
U-Boot version towards this.

Some USB changes seem to be incompatible with how the bindings work on
rockchip in U-Boot. Testing is needed to make sure that USB still works
correct, and adjust the code (not device tree) if not.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

Showing 1 changed file with 371 additions and 61 deletions Side-by-side Diff

arch/arm/dts/rk3399.dtsi
... ... @@ -349,46 +349,106 @@
349 349 status = "disabled";
350 350 };
351 351  
352   - dwc3_typec0: usb@fe800000 {
353   - compatible = "rockchip,rk3399-xhci";
354   - reg = <0x0 0xfe800000 0x0 0x100000>;
  352 + usbdrd3_0: dwc3_typec0: usb@fe800000 {
  353 + compatible = "rockchip,rk3399-dwc3";
  354 + #address-cells = <2>;
  355 + #size-cells = <2>;
  356 + ranges;
  357 + clocks = <&cru SCLK_USB3OTG0_REF>, <&cru SCLK_USB3OTG0_SUSPEND>,
  358 + <&cru ACLK_USB3OTG0>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
  359 + <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
  360 + clock-names = "ref_clk", "suspend_clk",
  361 + "bus_clk", "aclk_usb3_rksoc_axi_perf",
  362 + "aclk_usb3", "grf_clk";
  363 + resets = <&cru SRST_A_USB3_OTG0>;
  364 + reset-names = "usb3-otg";
355 365 status = "disabled";
356   - snps,dis-enblslpm-quirk;
357   - snps,phyif-utmi-bits = <16>;
358   - snps,dis-u2-freeclk-exists-quirk;
359   - snps,dis-u2-susphy-quirk;
360 366  
  367 + usbdrd_dwc3_0: dwc3 {
  368 + compatible = "snps,dwc3";
  369 + reg = <0x0 0xfe800000 0x0 0x100000>;
  370 + interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
  371 + dr_mode = "otg";
  372 + phys = <&u2phy0_otg>, <&tcphy0_usb3>;
  373 + phy-names = "usb2-phy", "usb3-phy";
  374 + phy_type = "utmi_wide";
  375 + snps,dis_enblslpm_quirk;
  376 + snps,dis-u2-freeclk-exists-quirk;
  377 + snps,dis_u2_susphy_quirk;
  378 + snps,dis-del-phy-power-chg-quirk;
  379 + snps,dis-tx-ipgap-linecheck-quirk;
  380 + power-domains = <&power RK3399_PD_USB3>;
  381 + status = "disabled";
  382 + };
  383 + };
  384 +
  385 + dwc3_typec1: usbdrd3_1: usb@fe900000 {
  386 + compatible = "rockchip,rk3399-dwc3";
361 387 #address-cells = <2>;
362 388 #size-cells = <2>;
363   - hub {
364   - compatible = "usb-hub";
365   - usb,device-class = <USB_CLASS_HUB>;
  389 + ranges;
  390 + clocks = <&cru SCLK_USB3OTG1_REF>, <&cru SCLK_USB3OTG1_SUSPEND>,
  391 + <&cru ACLK_USB3OTG1>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
  392 + <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
  393 + clock-names = "ref_clk", "suspend_clk",
  394 + "bus_clk", "aclk_usb3_rksoc_axi_perf",
  395 + "aclk_usb3", "grf_clk";
  396 + resets = <&cru SRST_A_USB3_OTG1>;
  397 + reset-names = "usb3-otg";
  398 + status = "disabled";
  399 +
  400 + usbdrd_dwc3_1: dwc3 {
  401 + compatible = "snps,dwc3";
  402 + reg = <0x0 0xfe900000 0x0 0x100000>;
  403 + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
  404 + dr_mode = "otg";
  405 + phys = <&u2phy1_otg>, <&tcphy1_usb3>;
  406 + phy-names = "usb2-phy", "usb3-phy";
  407 + phy_type = "utmi_wide";
  408 + snps,dis_enblslpm_quirk;
  409 + snps,dis-u2-freeclk-exists-quirk;
  410 + snps,dis_u2_susphy_quirk;
  411 + snps,dis-del-phy-power-chg-quirk;
  412 + snps,dis-tx-ipgap-linecheck-quirk;
  413 + power-domains = <&power RK3399_PD_USB3>;
  414 + status = "disabled";
366 415 };
367   - typec_phy0 {
368   - compatible = "rockchip,rk3399-usb3-phy";
369   - reg = <0x0 0xff7c0000 0x0 0x40000>;
370   - };
371 416 };
372 417  
373   - dwc3_typec1: usb@fe900000 {
374   - compatible = "rockchip,rk3399-xhci";
375   - reg = <0x0 0xfe900000 0x0 0x100000>;
  418 + cdn_dp: dp@fec00000 {
  419 + compatible = "rockchip,rk3399-cdn-dp";
  420 + reg = <0x0 0xfec00000 0x0 0x100000>;
  421 + interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
  422 + assigned-clocks = <&cru SCLK_DP_CORE>, <&cru SCLK_SPDIF_REC_DPTX>;
  423 + assigned-clock-rates = <100000000>, <200000000>;
  424 + clocks = <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>,
  425 + <&cru SCLK_SPDIF_REC_DPTX>, <&cru PCLK_VIO_GRF>;
  426 + clock-names = "core-clk", "pclk", "spdif", "grf";
  427 + phys = <&tcphy0_dp>, <&tcphy1_dp>;
  428 + power-domains = <&power RK3399_PD_HDCP>;
  429 + resets = <&cru SRST_DPTX_SPDIF_REC>, <&cru SRST_P_UPHY0_DPTX>,
  430 + <&cru SRST_P_UPHY0_APB>, <&cru SRST_DP_CORE>;
  431 + reset-names = "spdif", "dptx", "apb", "core";
  432 + rockchip,grf = <&grf>;
  433 + #sound-dai-cells = <1>;
376 434 status = "disabled";
377   - snps,dis-enblslpm-quirk;
378   - snps,phyif-utmi-bits = <16>;
379   - snps,dis-u2-freeclk-exists-quirk;
380   - snps,dis-u2-susphy-quirk;
381 435  
382   - #address-cells = <2>;
383   - #size-cells = <2>;
384   - hub {
385   - compatible = "usb-hub";
386   - usb,device-class = <USB_CLASS_HUB>;
  436 + ports {
  437 + dp_in: port {
  438 + #address-cells = <1>;
  439 + #size-cells = <0>;
  440 +
  441 + dp_in_vopb: endpoint@0 {
  442 + reg = <0>;
  443 + remote-endpoint = <&vopb_out_dp>;
  444 + };
  445 +
  446 + dp_in_vopl: endpoint@1 {
  447 + reg = <1>;
  448 + remote-endpoint = <&vopl_out_dp>;
  449 + };
  450 + };
387 451 };
388   - typec_phy1 {
389   - compatible = "rockchip,rk3399-usb3-phy";
390   - reg = <0x0 0xff800000 0x0 0x40000>;
391   - };
392 452 };
393 453  
394 454 gic: interrupt-controller@fee00000 {
... ... @@ -1054,6 +1114,21 @@
1054 1114 status = "disabled";
1055 1115 };
1056 1116  
  1117 + i2c0: i2c@ff3c0000 {
  1118 + compatible = "rockchip,rk3399-i2c";
  1119 + reg = <0x0 0xff3c0000 0x0 0x1000>;
  1120 + assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
  1121 + assigned-clock-rates = <200000000>;
  1122 + clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
  1123 + clock-names = "i2c", "pclk";
  1124 + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
  1125 + pinctrl-names = "default";
  1126 + pinctrl-0 = <&i2c0_xfer>;
  1127 + #address-cells = <1>;
  1128 + #size-cells = <0>;
  1129 + status = "disabled";
  1130 + };
  1131 +
1057 1132 i2c4: i2c@ff3d0000 {
1058 1133 compatible = "rockchip,rk3399-i2c";
1059 1134 reg = <0x0 0xff3d0000 0x0 0x1000>;
... ... @@ -1217,7 +1292,10 @@
1217 1292 <&cru PCLK_PERIHP>,
1218 1293 <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
1219 1294 <&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
1220   - <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>;
  1295 + <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>,
  1296 + <&cru ACLK_VIO>, <&cru ACLK_HDCP>,
  1297 + <&cru ACLK_GIC_PRE>,
  1298 + <&cru PCLK_DDR>;
1221 1299 assigned-clock-rates =
1222 1300 <594000000>, <800000000>,
1223 1301 <1000000000>,
... ... @@ -1225,7 +1303,10 @@
1225 1303 <37500000>,
1226 1304 <100000000>, <100000000>,
1227 1305 <50000000>, <600000000>,
1228   - <100000000>, <50000000>;
  1306 + <100000000>, <50000000>,
  1307 + <400000000>, <400000000>,
  1308 + <200000000>,
  1309 + <200000000>;
1229 1310 };
1230 1311  
1231 1312 grf: syscon@ff770000 {
... ... @@ -1314,6 +1395,56 @@
1314 1395 };
1315 1396 };
1316 1397  
  1398 + tcphy0: phy@ff7c0000 {
  1399 + compatible = "rockchip,rk3399-typec-phy";
  1400 + reg = <0x0 0xff7c0000 0x0 0x40000>;
  1401 + clocks = <&cru SCLK_UPHY0_TCPDCORE>,
  1402 + <&cru SCLK_UPHY0_TCPDPHY_REF>;
  1403 + clock-names = "tcpdcore", "tcpdphy-ref";
  1404 + assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
  1405 + assigned-clock-rates = <50000000>;
  1406 + power-domains = <&power RK3399_PD_TCPD0>;
  1407 + resets = <&cru SRST_UPHY0>,
  1408 + <&cru SRST_UPHY0_PIPE_L00>,
  1409 + <&cru SRST_P_UPHY0_TCPHY>;
  1410 + reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
  1411 + rockchip,grf = <&grf>;
  1412 + status = "disabled";
  1413 +
  1414 + tcphy0_dp: dp-port {
  1415 + #phy-cells = <0>;
  1416 + };
  1417 +
  1418 + tcphy0_usb3: usb3-port {
  1419 + #phy-cells = <0>;
  1420 + };
  1421 + };
  1422 +
  1423 + tcphy1: phy@ff800000 {
  1424 + compatible = "rockchip,rk3399-typec-phy";
  1425 + reg = <0x0 0xff800000 0x0 0x40000>;
  1426 + clocks = <&cru SCLK_UPHY1_TCPDCORE>,
  1427 + <&cru SCLK_UPHY1_TCPDPHY_REF>;
  1428 + clock-names = "tcpdcore", "tcpdphy-ref";
  1429 + assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
  1430 + assigned-clock-rates = <50000000>;
  1431 + power-domains = <&power RK3399_PD_TCPD1>;
  1432 + resets = <&cru SRST_UPHY1>,
  1433 + <&cru SRST_UPHY1_PIPE_L00>,
  1434 + <&cru SRST_P_UPHY1_TCPHY>;
  1435 + reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
  1436 + rockchip,grf = <&grf>;
  1437 + status = "disabled";
  1438 +
  1439 + tcphy1_dp: dp-port {
  1440 + #phy-cells = <0>;
  1441 + };
  1442 +
  1443 + tcphy1_usb3: usb3-port {
  1444 + #phy-cells = <0>;
  1445 + };
  1446 + };
  1447 +
1317 1448 watchdog@ff848000 {
1318 1449 compatible = "snps,dw-wdt";
1319 1450 reg = <0x0 0xff848000 0x0 0x100>;
... ... @@ -1340,6 +1471,7 @@
1340 1471 pinctrl-names = "default";
1341 1472 pinctrl-0 = <&spdif_bus>;
1342 1473 power-domains = <&power RK3399_PD_SDIOAUDIO>;
  1474 + #sound-dai-cells = <0>;
1343 1475 status = "disabled";
1344 1476 };
1345 1477  
... ... @@ -1355,6 +1487,7 @@
1355 1487 pinctrl-names = "default";
1356 1488 pinctrl-0 = <&i2s0_8ch_bus>;
1357 1489 power-domains = <&power RK3399_PD_SDIOAUDIO>;
  1490 + #sound-dai-cells = <0>;
1358 1491 status = "disabled";
1359 1492 };
1360 1493  
... ... @@ -1369,6 +1502,7 @@
1369 1502 pinctrl-names = "default";
1370 1503 pinctrl-0 = <&i2s1_2ch_bus>;
1371 1504 power-domains = <&power RK3399_PD_SDIOAUDIO>;
  1505 + #sound-dai-cells = <0>;
1372 1506 status = "disabled";
1373 1507 };
1374 1508  
1375 1509  
1376 1510  
1377 1511  
1378 1512  
1379 1513  
1380 1514  
1381 1515  
1382 1516  
1383 1517  
1384 1518  
1385 1519  
1386 1520  
1387 1521  
1388 1522  
1389 1523  
1390 1524  
1391 1525  
1392 1526  
1393 1527  
1394 1528  
1395 1529  
1396 1530  
... ... @@ -1381,92 +1515,186 @@
1381 1515 clock-names = "i2s_clk", "i2s_hclk";
1382 1516 clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
1383 1517 power-domains = <&power RK3399_PD_SDIOAUDIO>;
  1518 + #sound-dai-cells = <0>;
1384 1519 status = "disabled";
1385 1520 };
1386 1521  
1387   - i2c0: i2c@ff3c0000 {
1388   - compatible = "rockchip,rk3399-i2c";
1389   - reg = <0x0 0xff3c0000 0x0 0x1000>;
1390   - assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
1391   - assigned-clock-rates = <200000000>;
1392   - clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
1393   - clock-names = "i2c", "pclk";
1394   - interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
1395   - pinctrl-names = "default";
1396   - pinctrl-0 = <&i2c0_xfer>;
1397   - #address-cells = <1>;
1398   - #size-cells = <0>;
1399   - status = "disabled";
1400   - };
1401   -
1402 1522 vopl: vop@ff8f0000 {
1403 1523 u-boot,dm-pre-reloc;
1404 1524 compatible = "rockchip,rk3399-vop-lit";
1405 1525 reg = <0x0 0xff8f0000 0x0 0x3efc>;
1406 1526 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
  1527 + assigned-clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
  1528 + assigned-clock-rates = <400000000>, <100000000>;
1407 1529 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
1408 1530 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
  1531 + iommus = <&vopl_mmu>;
  1532 + power-domains = <&power RK3399_PD_VOPL>;
1409 1533 resets = <&cru SRST_A_VOP1>, <&cru SRST_H_VOP1>, <&cru SRST_D_VOP1>;
1410 1534 reset-names = "axi", "ahb", "dclk";
1411 1535 status = "disabled";
  1536 +
1412 1537 vopl_out: port {
1413 1538 #address-cells = <1>;
1414 1539 #size-cells = <0>;
  1540 +
1415 1541 vopl_out_mipi: endpoint@0 {
1416   - reg = <3>;
  1542 + reg = <0>;
1417 1543 remote-endpoint = <&mipi_in_vopl>;
1418 1544 };
1419 1545  
1420   - vopl_out_hdmi: endpoint@1 {
  1546 + vopl_out_edp: endpoint@1 {
1421 1547 reg = <1>;
  1548 + remote-endpoint = <&edp_in_vopl>;
  1549 + };
  1550 +
  1551 + vopl_out_hdmi: endpoint@2 {
  1552 + reg = <2>;
1422 1553 remote-endpoint = <&hdmi_in_vopl>;
1423 1554 };
  1555 +
  1556 + vopl_out_mipi1: endpoint@3 {
  1557 + reg = <3>;
  1558 + remote-endpoint = <&mipi1_in_vopl>;
  1559 + };
  1560 +
  1561 + vopl_out_dp: endpoint@4 {
  1562 + reg = <4>;
  1563 + remote-endpoint = <&dp_in_vopl>;
  1564 + };
1424 1565 };
1425 1566 };
1426 1567  
  1568 + vopl_mmu: iommu@ff8f3f00 {
  1569 + compatible = "rockchip,iommu";
  1570 + reg = <0x0 0xff8f3f00 0x0 0x100>;
  1571 + interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
  1572 + interrupt-names = "vopl_mmu";
  1573 + clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
  1574 + clock-names = "aclk", "iface";
  1575 + power-domains = <&power RK3399_PD_VOPL>;
  1576 + #iommu-cells = <0>;
  1577 + status = "disabled";
  1578 + };
  1579 +
1427 1580 vopb: vop@ff900000 {
1428 1581 u-boot,dm-pre-reloc;
1429 1582 compatible = "rockchip,rk3399-vop-big";
1430 1583 reg = <0x0 0xff900000 0x0 0x3efc>;
1431 1584 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
  1585 + assigned-clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
  1586 + assigned-clock-rates = <400000000>, <100000000>;
1432 1587 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
1433   - #clock-cells = <0>;
1434 1588 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
  1589 + iommus = <&vopb_mmu>;
  1590 + power-domains = <&power RK3399_PD_VOPB>;
1435 1591 resets = <&cru SRST_A_VOP0>, <&cru SRST_H_VOP0>, <&cru SRST_D_VOP0>;
1436 1592 reset-names = "axi", "ahb", "dclk";
1437 1593 status = "disabled";
  1594 +
1438 1595 vopb_out: port {
1439 1596 #address-cells = <1>;
1440 1597 #size-cells = <0>;
1441   - vopb_out_mipi: endpoint@0 {
1442   - reg = <3>;
1443   - remote-endpoint = <&mipi_in_vopb>;
  1598 +
  1599 + vopb_out_edp: endpoint@0 {
  1600 + reg = <0>;
  1601 + remote-endpoint = <&edp_in_vopb>;
1444 1602 };
1445 1603  
1446   - vopb_out_hdmi: endpoint@1 {
  1604 + vopb_out_mipi: endpoint@1 {
1447 1605 reg = <1>;
  1606 + remote-endpoint = <&mipi_in_vopb>;
  1607 + };
  1608 +
  1609 + vopb_out_hdmi: endpoint@2 {
  1610 + reg = <2>;
1448 1611 remote-endpoint = <&hdmi_in_vopb>;
1449 1612 };
  1613 +
  1614 + vopb_out_mipi1: endpoint@3 {
  1615 + reg = <3>;
  1616 + remote-endpoint = <&mipi1_in_vopb>;
  1617 + };
  1618 +
  1619 + vopb_out_dp: endpoint@4 {
  1620 + reg = <4>;
  1621 + remote-endpoint = <&dp_in_vopb>;
  1622 + };
1450 1623 };
1451 1624 };
1452 1625  
  1626 + vopb_mmu: iommu@ff903f00 {
  1627 + compatible = "rockchip,iommu";
  1628 + reg = <0x0 0xff903f00 0x0 0x100>;
  1629 + interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
  1630 + interrupt-names = "vopb_mmu";
  1631 + clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
  1632 + clock-names = "aclk", "iface";
  1633 + power-domains = <&power RK3399_PD_VOPB>;
  1634 + #iommu-cells = <0>;
  1635 + status = "disabled";
  1636 + };
  1637 +
  1638 + isp0_mmu: iommu@ff914000 {
  1639 + compatible = "rockchip,iommu";
  1640 + reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
  1641 + interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
  1642 + interrupt-names = "isp0_mmu";
  1643 + clocks = <&cru ACLK_ISP0_NOC>, <&cru HCLK_ISP0_NOC>;
  1644 + clock-names = "aclk", "iface";
  1645 + #iommu-cells = <0>;
  1646 + rockchip,disable-mmu-reset;
  1647 + status = "disabled";
  1648 + };
  1649 +
  1650 + isp1_mmu: iommu@ff924000 {
  1651 + compatible = "rockchip,iommu";
  1652 + reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
  1653 + interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
  1654 + interrupt-names = "isp1_mmu";
  1655 + clocks = <&cru ACLK_ISP1_NOC>, <&cru HCLK_ISP1_NOC>;
  1656 + clock-names = "aclk", "iface";
  1657 + #iommu-cells = <0>;
  1658 + rockchip,disable-mmu-reset;
  1659 + status = "disabled";
  1660 + };
  1661 +
  1662 + hdmi_sound: hdmi-sound {
  1663 + compatible = "simple-audio-card";
  1664 + simple-audio-card,format = "i2s";
  1665 + simple-audio-card,mclk-fs = <256>;
  1666 + simple-audio-card,name = "hdmi-sound";
  1667 + status = "disabled";
  1668 +
  1669 + simple-audio-card,cpu {
  1670 + sound-dai = <&i2s2>;
  1671 + };
  1672 + simple-audio-card,codec {
  1673 + sound-dai = <&hdmi>;
  1674 + };
  1675 + };
  1676 +
1453 1677 hdmi: hdmi@ff940000 {
1454 1678 compatible = "rockchip,rk3399-dw-hdmi";
1455 1679 reg = <0x0 0xff940000 0x0 0x20000>;
  1680 + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
  1681 + clocks = <&cru PCLK_HDMI_CTRL>,
  1682 + <&cru SCLK_HDMI_SFR>,
  1683 + <&cru PLL_VPLL>,
  1684 + <&cru PCLK_VIO_GRF>,
  1685 + <&cru SCLK_HDMI_CEC>;
  1686 + clock-names = "iahb", "isfr", "vpll", "grf", "cec";
  1687 + power-domains = <&power RK3399_PD_HDCP>;
1456 1688 reg-io-width = <4>;
1457 1689 rockchip,grf = <&grf>;
1458   - pinctrl-names = "default";
1459   - pinctrl-0 = <&hdmi_i2c_xfer>;
1460   - power-domains = <&power RK3399_PD_HDCP>;
1461   - interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
1462   - clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_SFR>, <&cru PLL_VPLL>, <&cru PCLK_VIO_GRF>;
1463   - clock-names = "iahb", "isfr", "vpll", "grf";
  1690 + #sound-dai-cells = <0>;
1464 1691 status = "disabled";
1465 1692  
1466 1693 ports {
1467 1694 hdmi_in: port {
1468 1695 #address-cells = <1>;
1469 1696 #size-cells = <0>;
  1697 +
1470 1698 hdmi_in_vopb: endpoint@0 {
1471 1699 reg = <0>;
1472 1700 remote-endpoint = <&vopb_out_hdmi>;
... ... @@ -1507,6 +1735,88 @@
1507 1735 };
1508 1736 };
1509 1737  
  1738 + mipi_dsi1: mipi@ff968000 {
  1739 + compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
  1740 + reg = <0x0 0xff968000 0x0 0x8000>;
  1741 + interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH 0>;
  1742 + clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI1>,
  1743 + <&cru SCLK_DPHY_TX1RX1_CFG>, <&cru PCLK_VIO_GRF>;
  1744 + clock-names = "ref", "pclk", "phy_cfg", "grf";
  1745 + power-domains = <&power RK3399_PD_VIO>;
  1746 + resets = <&cru SRST_P_MIPI_DSI1>;
  1747 + reset-names = "apb";
  1748 + rockchip,grf = <&grf>;
  1749 + status = "disabled";
  1750 +
  1751 + ports {
  1752 + #address-cells = <1>;
  1753 + #size-cells = <0>;
  1754 +
  1755 + mipi1_in: port@0 {
  1756 + reg = <0>;
  1757 + #address-cells = <1>;
  1758 + #size-cells = <0>;
  1759 +
  1760 + mipi1_in_vopb: endpoint@0 {
  1761 + reg = <0>;
  1762 + remote-endpoint = <&vopb_out_mipi1>;
  1763 + };
  1764 +
  1765 + mipi1_in_vopl: endpoint@1 {
  1766 + reg = <1>;
  1767 + remote-endpoint = <&vopl_out_mipi1>;
  1768 + };
  1769 + };
  1770 + };
  1771 + };
  1772 +
  1773 + edp: edp@ff970000 {
  1774 + compatible = "rockchip,rk3399-edp";
  1775 + reg = <0x0 0xff970000 0x0 0x8000>;
  1776 + interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
  1777 + clocks = <&cru PCLK_EDP>, <&cru PCLK_EDP_CTRL>, <&cru PCLK_VIO_GRF>;
  1778 + clock-names = "dp", "pclk", "grf";
  1779 + pinctrl-names = "default";
  1780 + pinctrl-0 = <&edp_hpd>;
  1781 + power-domains = <&power RK3399_PD_EDP>;
  1782 + resets = <&cru SRST_P_EDP_CTRL>;
  1783 + reset-names = "dp";
  1784 + rockchip,grf = <&grf>;
  1785 + status = "disabled";
  1786 +
  1787 + ports {
  1788 + #address-cells = <1>;
  1789 + #size-cells = <0>;
  1790 + edp_in: port@0 {
  1791 + reg = <0>;
  1792 + #address-cells = <1>;
  1793 + #size-cells = <0>;
  1794 +
  1795 + edp_in_vopb: endpoint@0 {
  1796 + reg = <0>;
  1797 + remote-endpoint = <&vopb_out_edp>;
  1798 + };
  1799 +
  1800 + edp_in_vopl: endpoint@1 {
  1801 + reg = <1>;
  1802 + remote-endpoint = <&vopl_out_edp>;
  1803 + };
  1804 + };
  1805 + };
  1806 + };
  1807 +
  1808 + gpu: gpu@ff9a0000 {
  1809 + compatible = "rockchip,rk3399-mali", "arm,mali-t860";
  1810 + reg = <0x0 0xff9a0000 0x0 0x10000>;
  1811 + interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
  1812 + <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
  1813 + <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
  1814 + interrupt-names = "gpu", "job", "mmu";
  1815 + clocks = <&cru ACLK_GPU>;
  1816 + power-domains = <&power RK3399_PD_GPU>;
  1817 + status = "disabled";
  1818 + };
  1819 +
1510 1820 pinctrl: pinctrl {
1511 1821 u-boot,dm-pre-reloc;
1512 1822 compatible = "rockchip,rk3399-pinctrl";
... ... @@ -1911,7 +2221,7 @@
1911 2221 <4 RK_PB5 RK_FUNC_1 &pcfg_pull_up>;
1912 2222 };
1913 2223  
1914   - sdmmc_cd: sdmcc-cd {
  2224 + sdmmc_cd: sdmmc-cd {
1915 2225 rockchip,pins =
1916 2226 <0 RK_PA7 RK_FUNC_1 &pcfg_pull_up>;
1917 2227 };