[PATCH UNTESTED 3/4] arm64: dts: rockchip: Enable HDMI1 on Orange Pi 5 Plus
Jimmy Hon
honyuenkwun at gmail.com
Fri Mar 7 20:34:48 PST 2025
On Fri, Feb 28, 2025 at 5:15 AM Ondřej Jirman <megi at xff.cz> wrote:
>
> Hello Jimmy,
>
> On Thu, Feb 27, 2025 at 05:56:22PM -0600, Jimmy Hon wrote:
> > Enable the second HDMI output port on the Orange Pi 5 Plus
>
> RK3588 hardware design guide states that:
>
> - When working in HDMI2.1 mode, HDMI0_TX_ON_H is configured as low level,
> Q1700, Q1701, Q1702, and Q1703 are not turned on.
>
> - When working in HDMI2.0 and below modes, HDMI0_TX_ON_H is configured as high
> level, Q5007, Q5004, Q5005, and Q5006 are turned on, and the 499ohm resistor
> to ground and the 50ohm pull-up resistor at the Sink end form a DC bias of
> about 3V.
>
> If you only need to support HDMI2.0 and below modes, Q5007, Q5004, Q5005, and
> Q5006 cannot be omitted. It is necessary to ensure that the tube is not turned
> on when the machine is not turned on, because the HDMI CTS Test ID 7-3 TMDS
> Voff test item requires that the Voff voltage must be within AVcc+-10mV when
> the DUT is not powered on, otherwise this test item cannot pass. 2: The Coss
> of the control MOS tube cannot be too large, otherwise it will affect the
> signal quality. It is recommended to follow the reference figure model or the
> corresponding Coss value.
>
> And Orange Pi 5 schematic (which has almost the same circuit as Plus variant)
> states this explicitely too:
>
> https://megous.com/dl/tmp/5dc98e91dfee3b5a.png
>
> The same applies to HDMI1.
>
> Maybe it would be better to pull up HDMI1_TX_ON_H more explicitely for now via:
>
> &hdmi1 {
> + pinctrl-0 = <&hdmim2_tx1_cec &hdmim0_tx1_hpd
> + &hdmim1_tx1_scl &hdmim1_tx1_sda
> + &hdmi1_tx_on_h>;
> };
>
> &pinctrl {
> ...
> + hdmi {
> + hdmi1_tx_on_h: hdmi1-tx-on-h {
> + rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> + };
> ...
> };
>
> AFAIK FRL is not supported, yet, so this may be a better default for HDMI1_TX_ON_H.
I am going to defer adding a temporary workaround and keep hdmi1
behavior the same as hdmi0. [1] I don't want to introduce something
that will hinder the upcoming FRL development when it tries to support
an old DTB. I'm hoping Cristian could start adding the HDMI0_TX_ON_H
to the dt-bindings, even before the full FRL support is added, so at
least all the DTS could have "enable-gpios" property defined [2], and
then the DTSs be ready to go when FRL support is ready. That way the
HDMI0_TX_ON_H will be pulled correctly depending what mode is being
used.
[1] https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts?h=v6.14-rc1#n113
[2] https://github.com/radxa/kernel/blob/linux-6.1-stan-rkr4.1/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts#L564
>
> In any case,
>
> Reviewed-by: Ondrej Jirman <megi at xff.cz>
>
>
> And I've also tested and used identical patch for a few weeks already on my
> Orange Pi 5+. :)
>
> Kind regards,
> o.
>
> > Signed-off-by: Jimmy Hon <honyuenkwun at gmail.com>
> > ---
> > .../dts/rockchip/rk3588-orangepi-5-plus.dts | 38 +++++++++++++++++++
> > 1 file changed, 38 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts
> > index 0f874b87b47e..53797f633d3a 100644
> > --- a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts
> > +++ b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts
> > @@ -26,6 +26,17 @@ hdmi0_con_in: endpoint {
> > };
> > };
> >
> > + hdmi1-con {
> > + compatible = "hdmi-connector";
> > + type = "a";
> > +
> > + port {
> > + hdmi1_con_in: endpoint {
> > + remote-endpoint = <&hdmi1_out_con>;
> > + };
> > + };
> > + };
> > +
> > ir-receiver {
> > compatible = "gpio-ir-receiver";
> > gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
> > @@ -125,10 +136,30 @@ hdmi0_out_con: endpoint {
> > };
> > };
> >
> > +&hdmi1 {
> > + status = "okay";
> > +};
> > +
> > +&hdmi1_in {
> > + hdmi1_in_vp1: endpoint {
> > + remote-endpoint = <&vp1_out_hdmi1>;
> > + };
> > +};
> > +
> > +&hdmi1_out {
> > + hdmi1_out_con: endpoint {
> > + remote-endpoint = <&hdmi1_con_in>;
> > + };
> > +};
> > +
> > &hdptxphy0 {
> > status = "okay";
> > };
> >
> > +&hdptxphy1 {
> > + status = "okay";
> > +};
> > +
> > &hym8563 {
> > interrupt-parent = <&gpio0>;
> > interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
> > @@ -342,3 +373,10 @@ vp0_out_hdmi0: endpoint at ROCKCHIP_VOP2_EP_HDMI0 {
> > remote-endpoint = <&hdmi0_in_vp0>;
> > };
> > };
> > +
> > +&vp1 {
> > + vp1_out_hdmi1: endpoint at ROCKCHIP_VOP2_EP_HDMI1 {
> > + reg = <ROCKCHIP_VOP2_EP_HDMI1>;
> > + remote-endpoint = <&hdmi1_in_vp1>;
> > + };
> > +};
> > --
> > 2.48.1
> >
More information about the linux-arm-kernel
mailing list