ARM: dts: rockchip: add basic display nodes
cover ARM: dts: rockchip: add basic display nodes
The core drm support will be part of 3.19 and the hdmi support will enter the 3.20 kernel - so add at least the basic devicetree nodes.
I've pulled these patches out of the Chromium tree, adapted them to the current mainline dts and have been using them with a bunch of code on top with the vga connector of a firefly board for a week or so.
@Daniel et all: I hope I've kept all the tags and attributions intact. If anything is wrong please holler.
Andy Yan (1):
ARM: dts: rockchip: add rk3288 hdmi nodes
Daniel Kurtz (1):
ARM: dts: rockchip: Add rk3288 vop and display-subsystem
arch/arm/boot/dts/rk3288.dtsi | 76 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+)
Signature · 1 line
2.1.1
PATCH 1/2 ARM: dts: rockchip: Add rk3288 vop and display-subsystem
Add devicetree nodes for rk3288 VOP (Video Output Processors), and the top level display-subsystem root node.
Later patches add endpoints (eDP, HDMI, LVDS, etc) that attach to the VOPs' output ports.
--- arch/arm/boot/dts/rk3288.dtsi | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)
arch/arm/boot/dts/rk3288.dtsi +39 -0
@@ -149,6 +149,11 @@ clock-frequency = <24000000>; }; + display-subsystem { + compatible = "rockchip,display-subsystem"; + ports = <&vopl_out>, <&vopb_out>; + }; + sdmmc: dwmmc at ff0c0000 { compatible = "rockchip,rk3288-dw-mshc"; clock-freq-min-max = <400000 150000000>;
@@ -566,6 +571,23 @@ status = "disabled"; }; + vopb: vop at ff930000 { + compatible = "rockchip,rk3288-vop"; + reg = <0xff930000 0x19c>; + interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>; + clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; + resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>; + reset-names = "axi", "ahb", "dclk"; + iommus = <&vopb_mmu>; + status = "disabled"; + + vopb_out: port { + #address-cells = <1>; + #size-cells = <0>; + }; + }; + vopb_mmu: iommu at ff930300 { compatible = "rockchip,iommu"; reg = <0xff930300 0x100>;
@@ -575,6 +597,23 @@ status = "disabled"; }; + vopl: vop at ff940000 { + compatible = "rockchip,rk3288-vop"; + reg = <0xff940000 0x19c>; + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>; + clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; + resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>; + reset-names = "axi", "ahb", "dclk"; + iommus = <&vopl_mmu>; + status = "disabled"; + + vopl_out: port { + #address-cells = <1>; + #size-cells = <0>; + }; + }; + vopl_mmu: iommu at ff940300 { compatible = "rockchip,iommu"; reg = <0xff940300 0x100>;
Signature · 1 line
2.1.1
PATCH 2/2 ARM: dts: rockchip: add rk3288 hdmi nodes
In reply to Heiko StübnerAdd an hdmi node, and also add hdmi endpoints to vopb and vopl output port nodes.
--- arch/arm/boot/dts/rk3288.dtsi | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+)
arch/arm/boot/dts/rk3288.dtsi +37 -0
@@ -585,6 +585,11 @@ vopb_out: port { #address-cells = <1>; #size-cells = <0>; + + vopb_out_hdmi: endpoint at 0 { + reg = <0>; + remote-endpoint = <&hdmi_in_vopb>; + }; }; };
@@ -611,6 +616,11 @@ vopl_out: port { #address-cells = <1>; #size-cells = <0>; + + vopl_out_hdmi: endpoint at 0 { + reg = <0>; + remote-endpoint = <&hdmi_in_vopl>; + }; }; };
@@ -623,6 +633,33 @@ status = "disabled"; }; + hdmi: hdmi at ff980000 { + compatible = "rockchip,rk3288-dw-hdmi"; + reg = <0xff980000 0x20000>; + reg-io-width = <4>; + ddc-i2c-bus = <&i2c5>; + rockchip,grf = <&grf>; + interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>; + clock-names = "iahb", "isfr"; + status = "disabled"; + + ports { + hdmi_in: port { + #address-cells = <1>; + #size-cells = <0>; + hdmi_in_vopb: endpoint at 0 { + reg = <0>; + remote-endpoint = <&vopb_out_hdmi>; + }; + hdmi_in_vopl: endpoint at 1 { + reg = <1>; + remote-endpoint = <&vopl_out_hdmi>; + }; + }; + }; + }; + gic: interrupt-controller at ffc01000 { compatible = "arm,gic-400"; interrupt-controller;
Signature · 1 line
2.1.1
cover ARM: dts: rockchip: add basic display nodes
In reply to Heiko StübnerQuoted 9 lines · Heiko St?bner
The core drm support will be part of 3.19 and the hdmi support will enter the 3.20 kernel - so add at least the basic devicetree nodes.
I've pulled these patches out of the Chromium tree, adapted them to the current mainline dts and have been using them with a bunch of code on top with the vga connector of a firefly board for a week or so.
@Daniel et all: I hope I've kept all the tags and attributions intact. If anything is wrong please holler.
The series looks good to me.
Thanks!
Quoted 15 lines
Andy Yan (1):
ARM: dts: rockchip: add rk3288 hdmi nodesDaniel Kurtz (1):
ARM: dts: rockchip: Add rk3288 vop and display-subsystemarch/arm/boot/dts/rk3288.dtsi | 76 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+)--
2.1.1
cover ARM: dts: rockchip: add basic display nodes
Am Sonntag, 25. Januar 2015, 10:13:22 schrieb Daniel Kurtz:
Quoted 8 lines · Heiko St?bner
Quoted 7 lines
The core drm support will be part of 3.19 and the hdmi support will enter the 3.20 kernel - so add at least the basic devicetree nodes.
I've pulled these patches out of the Chromium tree, adapted them to the current mainline dts and have been using them with a bunch of code on top with the vga connector of a firefly board for a week or so.
Quoted 5 lines
Quoted 2 lines
@Daniel et all: I hope I've kept all the tags and attributions intact. If anything is wrong please holler.
The series looks good to me.
Thanks!
great :-)
I've added both patches to my dts branch.
Heiko