Message ID | 20211117143347.314294-10-s.hauer@pengutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/rockchip: RK356x VOP2 support | expand |
On Wed, Nov 17, 2021 at 8:34 AM Sascha Hauer <s.hauer@pengutronix.de> wrote: > > Add support for the HDMI port found on RK3568. > > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> > --- > arch/arm64/boot/dts/rockchip/rk356x.dtsi | 65 ++++++++++++++++++++++++ > 1 file changed, 65 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi > index 6ebf7c14e096a..53be61a7ce595 100644 > --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi > +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi > @@ -472,18 +472,36 @@ vp0: port@0 { > #address-cells = <1>; > #size-cells = <0>; > reg = <0>; > + > + vp0_out_hdmi: endpoint@0 { > + reg = <0>; > + remote-endpoint = <&hdmi_in_vp0>; > + status = "disabled"; > + }; > }; > > vp1: port@1 { > #address-cells = <1>; > #size-cells = <0>; > reg = <1>; > + > + vp1_out_hdmi: endpoint@0 { > + reg = <0>; > + remote-endpoint = <&hdmi_in_vp1>; > + status = "disabled"; > + }; > }; > > vp2: port@2 { > #address-cells = <1>; > #size-cells = <0>; > reg = <2>; > + > + vp2_out_hdmi: endpoint@0 { > + reg = <0>; > + remote-endpoint = <&hdmi_in_vp2>; > + status = "disabled"; > + }; > }; > }; > }; > @@ -499,6 +517,53 @@ vop_mmu: iommu@fe043e00 { > status = "disabled"; > }; > > + hdmi: hdmi@fe0a0000 { > + compatible = "rockchip,rk3568-dw-hdmi"; > + reg = <0x0 0xfe0a0000 0x0 0x20000>; > + interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cru PCLK_HDMI_HOST>, > + <&cru CLK_HDMI_SFR>, > + <&cru CLK_HDMI_CEC>, > + <&cru HCLK_VOP>; > + clock-names = "iahb", "isfr", "cec", "hclk"; > + power-domains = <&power RK3568_PD_VO>; > + reg-io-width = <4>; > + rockchip,grf = <&grf>; > + #sound-dai-cells = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&hdmitx_scl &hdmitx_sda &hdmitxm0_cec>; > + status = "disabled"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + hdmi_in: port@0 { The schema says there is only 1 'port' node. Please run schema validation when making DT changes. However, an HDMI bridge should also define an output port to a connector node (or another bridge). So the fix is to allow 'port@0' and add an output port. > + reg = <0>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + hdmi_in_vp0: endpoint@0 { > + reg = <0>; > + remote-endpoint = <&vp0_out_hdmi>; > + status = "disabled"; > + }; > + > + hdmi_in_vp1: endpoint@1 { > + reg = <1>; > + remote-endpoint = <&vp1_out_hdmi>; > + status = "disabled"; > + }; > + > + hdmi_in_vp2: endpoint@2 { > + reg = <2>; > + remote-endpoint = <&vp2_out_hdmi>; > + status = "disabled"; > + }; > + }; > + }; > + }; > + > qos_gpu: qos@fe128000 { > compatible = "rockchip,rk3568-qos", "syscon"; > reg = <0x0 0xfe128000 0x0 0x20>; > -- > 2.30.2 >
On Wed, Nov 17, 2021 at 09:13:33AM -0600, Rob Herring wrote: > On Wed, Nov 17, 2021 at 8:34 AM Sascha Hauer <s.hauer@pengutronix.de> wrote: > > > > Add support for the HDMI port found on RK3568. > > > > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> > > --- > > arch/arm64/boot/dts/rockchip/rk356x.dtsi | 65 ++++++++++++++++++++++++ > > 1 file changed, 65 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi > > index 6ebf7c14e096a..53be61a7ce595 100644 > > --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi > > +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi > > @@ -472,18 +472,36 @@ vp0: port@0 { > > #address-cells = <1>; > > #size-cells = <0>; > > reg = <0>; > > + > > + vp0_out_hdmi: endpoint@0 { > > + reg = <0>; > > + remote-endpoint = <&hdmi_in_vp0>; > > + status = "disabled"; > > + }; > > }; > > > > vp1: port@1 { > > #address-cells = <1>; > > #size-cells = <0>; > > reg = <1>; > > + > > + vp1_out_hdmi: endpoint@0 { > > + reg = <0>; > > + remote-endpoint = <&hdmi_in_vp1>; > > + status = "disabled"; > > + }; > > }; > > > > vp2: port@2 { > > #address-cells = <1>; > > #size-cells = <0>; > > reg = <2>; > > + > > + vp2_out_hdmi: endpoint@0 { > > + reg = <0>; > > + remote-endpoint = <&hdmi_in_vp2>; > > + status = "disabled"; > > + }; > > }; > > }; > > }; > > @@ -499,6 +517,53 @@ vop_mmu: iommu@fe043e00 { > > status = "disabled"; > > }; > > > > + hdmi: hdmi@fe0a0000 { > > + compatible = "rockchip,rk3568-dw-hdmi"; > > + reg = <0x0 0xfe0a0000 0x0 0x20000>; > > + interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; > > + clocks = <&cru PCLK_HDMI_HOST>, > > + <&cru CLK_HDMI_SFR>, > > + <&cru CLK_HDMI_CEC>, > > + <&cru HCLK_VOP>; > > + clock-names = "iahb", "isfr", "cec", "hclk"; > > + power-domains = <&power RK3568_PD_VO>; > > + reg-io-width = <4>; > > + rockchip,grf = <&grf>; > > + #sound-dai-cells = <0>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&hdmitx_scl &hdmitx_sda &hdmitxm0_cec>; > > + status = "disabled"; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + hdmi_in: port@0 { > > > The schema says there is only 1 'port' node. Please run schema > validation when making DT changes. > > However, an HDMI bridge should also define an output port to a > connector node (or another bridge). So the fix is to allow 'port@0' > and add an output port. The rockchip bindings traditionally don't have a connector explicitly specified in their device trees. I'll stick to that for the next round. If necessary I'll look later what it takes to add a connector node. Sascha
diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi index 6ebf7c14e096a..53be61a7ce595 100644 --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi @@ -472,18 +472,36 @@ vp0: port@0 { #address-cells = <1>; #size-cells = <0>; reg = <0>; + + vp0_out_hdmi: endpoint@0 { + reg = <0>; + remote-endpoint = <&hdmi_in_vp0>; + status = "disabled"; + }; }; vp1: port@1 { #address-cells = <1>; #size-cells = <0>; reg = <1>; + + vp1_out_hdmi: endpoint@0 { + reg = <0>; + remote-endpoint = <&hdmi_in_vp1>; + status = "disabled"; + }; }; vp2: port@2 { #address-cells = <1>; #size-cells = <0>; reg = <2>; + + vp2_out_hdmi: endpoint@0 { + reg = <0>; + remote-endpoint = <&hdmi_in_vp2>; + status = "disabled"; + }; }; }; }; @@ -499,6 +517,53 @@ vop_mmu: iommu@fe043e00 { status = "disabled"; }; + hdmi: hdmi@fe0a0000 { + compatible = "rockchip,rk3568-dw-hdmi"; + reg = <0x0 0xfe0a0000 0x0 0x20000>; + interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cru PCLK_HDMI_HOST>, + <&cru CLK_HDMI_SFR>, + <&cru CLK_HDMI_CEC>, + <&cru HCLK_VOP>; + clock-names = "iahb", "isfr", "cec", "hclk"; + power-domains = <&power RK3568_PD_VO>; + reg-io-width = <4>; + rockchip,grf = <&grf>; + #sound-dai-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hdmitx_scl &hdmitx_sda &hdmitxm0_cec>; + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + hdmi_in: port@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + + hdmi_in_vp0: endpoint@0 { + reg = <0>; + remote-endpoint = <&vp0_out_hdmi>; + status = "disabled"; + }; + + hdmi_in_vp1: endpoint@1 { + reg = <1>; + remote-endpoint = <&vp1_out_hdmi>; + status = "disabled"; + }; + + hdmi_in_vp2: endpoint@2 { + reg = <2>; + remote-endpoint = <&vp2_out_hdmi>; + status = "disabled"; + }; + }; + }; + }; + qos_gpu: qos@fe128000 { compatible = "rockchip,rk3568-qos", "syscon"; reg = <0x0 0xfe128000 0x0 0x20>;
Add support for the HDMI port found on RK3568. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> --- arch/arm64/boot/dts/rockchip/rk356x.dtsi | 65 ++++++++++++++++++++++++ 1 file changed, 65 insertions(+)