On Fri, Feb 28, 2025 at 5:15 AM Ondřej Jirman <megi@xxxxxx> 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@xxxxxx> > > > 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@xxxxxxxxx> > > --- > > .../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@ROCKCHIP_VOP2_EP_HDMI0 { > > remote-endpoint = <&hdmi0_in_vp0>; > > }; > > }; > > + > > +&vp1 { > > + vp1_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 { > > + reg = <ROCKCHIP_VOP2_EP_HDMI1>; > > + remote-endpoint = <&hdmi1_in_vp1>; > > + }; > > +}; > > -- > > 2.48.1 > >