Re: [PATCH UNTESTED 3/4] arm64: dts: rockchip: Enable HDMI1 on Orange Pi 5 Plus

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> >





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux