Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: rockchip: add display nodes for rk322x

Add display_subsystem, hdmi_phy, vop, and hdmi device nodes plus
a few hdmi pinctrl entries to allow for HDMI output.

Signed-off-by: Justin Swartz <justin.swartz@risingedge.co.za>
[added assigned-clock settings for hdmiphy output]
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

authored by

Justin Swartz and committed by
Heiko Stuebner
519574e3 65d9c3fb

+83
+83
arch/arm/boot/dts/rk322x.dtsi
··· 143 143 #clock-cells = <0>; 144 144 }; 145 145 146 + display_subsystem: display-subsystem { 147 + compatible = "rockchip,display-subsystem"; 148 + ports = <&vop_out>; 149 + }; 150 + 146 151 i2s1: i2s1@100b0000 { 147 152 compatible = "rockchip,rk3228-i2s", "rockchip,rk3066-i2s"; 148 153 reg = <0x100b0000 0x4000>; ··· 534 529 status = "disabled"; 535 530 }; 536 531 532 + hdmi_phy: hdmi-phy@12030000 { 533 + compatible = "rockchip,rk3228-hdmi-phy"; 534 + reg = <0x12030000 0x10000>; 535 + clocks = <&cru PCLK_HDMI_PHY>, <&xin24m>, <&cru DCLK_HDMI_PHY>; 536 + clock-names = "sysclk", "refoclk", "refpclk"; 537 + #clock-cells = <0>; 538 + clock-output-names = "hdmiphy_phy"; 539 + #phy-cells = <0>; 540 + status = "disabled"; 541 + }; 542 + 537 543 gpu: gpu@20000000 { 538 544 compatible = "rockchip,rk3228-mali", "arm,mali-400"; 539 545 reg = <0x20000000 0x10000>; ··· 588 572 status = "disabled"; 589 573 }; 590 574 575 + vop: vop@20050000 { 576 + compatible = "rockchip,rk3228-vop"; 577 + reg = <0x20050000 0x1ffc>; 578 + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 579 + clocks = <&cru ACLK_VOP>, <&cru DCLK_VOP>, <&cru HCLK_VOP>; 580 + clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 581 + resets = <&cru SRST_VOP_A>, <&cru SRST_VOP_H>, <&cru SRST_VOP_D>; 582 + reset-names = "axi", "ahb", "dclk"; 583 + iommus = <&vop_mmu>; 584 + status = "disabled"; 585 + 586 + vop_out: port { 587 + #address-cells = <1>; 588 + #size-cells = <0>; 589 + 590 + vop_out_hdmi: endpoint@0 { 591 + reg = <0>; 592 + remote-endpoint = <&hdmi_in_vop>; 593 + }; 594 + }; 595 + }; 596 + 591 597 vop_mmu: iommu@20053f00 { 592 598 compatible = "rockchip,iommu"; 593 599 reg = <0x20053f00 0x100>; ··· 630 592 clock-names = "aclk", "iface"; 631 593 iommu-cells = <0>; 632 594 status = "disabled"; 595 + }; 596 + 597 + hdmi: hdmi@200a0000 { 598 + compatible = "rockchip,rk3228-dw-hdmi"; 599 + reg = <0x200a0000 0x20000>; 600 + reg-io-width = <4>; 601 + interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 602 + assigned-clocks = <&cru SCLK_HDMI_PHY>; 603 + assigned-clock-parents = <&hdmi_phy>; 604 + clocks = <&cru SCLK_HDMI_HDCP>, <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_CEC>; 605 + clock-names = "isfr", "iahb", "cec"; 606 + pinctrl-names = "default"; 607 + pinctrl-0 = <&hdmii2c_xfer &hdmi_hpd &hdmi_cec>; 608 + resets = <&cru SRST_HDMI_P>; 609 + reset-names = "hdmi"; 610 + phys = <&hdmi_phy>; 611 + phy-names = "hdmi"; 612 + rockchip,grf = <&grf>; 613 + status = "disabled"; 614 + 615 + ports { 616 + hdmi_in: port { 617 + #address-cells = <1>; 618 + #size-cells = <0>; 619 + hdmi_in_vop: endpoint@0 { 620 + reg = <0>; 621 + remote-endpoint = <&vop_out_hdmi>; 622 + }; 623 + }; 624 + }; 633 625 }; 634 626 635 627 sdmmc: dwmmc@30000000 { ··· 987 919 phy_pins: phy-pins { 988 920 rockchip,pins = <2 RK_PB6 2 &pcfg_pull_none>, 989 921 <2 RK_PB0 2 &pcfg_pull_none>; 922 + }; 923 + }; 924 + 925 + hdmi { 926 + hdmi_hpd: hdmi-hpd { 927 + rockchip,pins = <0 RK_PB7 1 &pcfg_pull_down>; 928 + }; 929 + 930 + hdmii2c_xfer: hdmii2c-xfer { 931 + rockchip,pins = <0 RK_PA6 2 &pcfg_pull_none>, 932 + <0 RK_PA7 2 &pcfg_pull_none>; 933 + }; 934 + 935 + hdmi_cec: hdmi-cec { 936 + rockchip,pins = <0 RK_PC4 1 &pcfg_pull_none>; 990 937 }; 991 938 }; 992 939