[PATCH 1/3] arm64: dts: rockchip: Add Radxa ROCK 4C+ DSI DT-overlay

Heiko Stübner heiko at sntech.de
Fri Jan 5 04:07:35 PST 2024


Hi Jagan,

Am Montag, 13. November 2023, 16:15:34 CET schrieb Jagan Teki:
> On Thu, 5 Oct 2023 at 06:07, Heiko Stübner <heiko at sntech.de> wrote:
> >
> > Am Montag, 31. Juli 2023, 22:05:57 CEST schrieb Jagan Teki:
> > > Add DSI pipeline for Radxa ROCK 4C+ board via DT-overlay.
> > >
> > > The DSI connector in Radxa ROCK 4C+ board support different
> > > resolution panels and those compatible is added in another
> > > DT-overlay.
> > >
> > > Signed-off-by: Jagan Teki <jagan at edgeble.ai>
> > > ---
> > >  arch/arm64/boot/dts/rockchip/Makefile         |  1 +
> > >  .../rk3399-rock-4c-plus-mipi-dsi.dtso         | 69 +++++++++++++++++++
> > >  2 files changed, 70 insertions(+)
> > >  create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-rock-4c-plus-mipi-dsi.dtso
> > >
> > > diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
> > > index 1ebbb3e9c2f9..3a4c4cd769eb 100644
> > > --- a/arch/arm64/boot/dts/rockchip/Makefile
> > > +++ b/arch/arm64/boot/dts/rockchip/Makefile
> > > @@ -58,6 +58,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc.dtb
> > >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-mezzanine.dtb
> > >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-plus.dtb
> > >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-4c-plus.dtb
> > > +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-4c-plus-mipi-dsi.dtbo
> > >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-4se.dtb
> > >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4a.dtb
> > >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4a-plus.dtb
> > > diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-4c-plus-mipi-dsi.dtso b/arch/arm64/boot/dts/rockchip/rk3399-rock-4c-plus-mipi-dsi.dtso
> > > new file mode 100644
> > > index 000000000000..271717040b6c
> > > --- /dev/null
> > > +++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-4c-plus-mipi-dsi.dtso
> > > @@ -0,0 +1,69 @@
> > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > +/*
> > > + * Copyright (c) 2023 Radxa Computer Co., Ltd.
> > > + * Copyright (c) 2023 Edgeble AI Technologies Pvt. Ltd.
> > > + *
> > > + * DT-overlay for Radxa ROCK 4C+ DSI Connector.
> > > + */
> > > +
> > > +/dts-v1/;
> > > +/plugin/;
> > > +
> > > +#include <dt-bindings/gpio/gpio.h>
> > > +#include <dt-bindings/pinctrl/rockchip.h>
> > > +
> > > +&{/} {
> > > +     backlight: backlight {
> > > +             compatible = "pwm-backlight";
> > > +             pwms = <&pwm2 0 25000 0>;
> > > +     };
> > > +};
> > > +
> > > +&mipi_dsi {
> > > +     clock-master;
> > > +     #address-cells = <1>;
> > > +     #size-cells = <0>;
> > > +     status = "okay";
> > > +
> > > +     ports {
> > > +             #address-cells = <1>;
> > > +             #size-cells = <0>;
> > > +
> > > +             mipi_out: port at 1 {
> > > +                     reg = <1>;
> > > +
> > > +                     mipi_out_panel: endpoint {
> > > +                             remote-endpoint = <&mipi_in_panel>;
> > > +                     };
> > > +             };
> > > +     };
> > > +
> > > +     panel: panel at 0 {
> > > +             /* different resolution panels are used, compatibles are in DTO */
> >
> > then I guess, the panel node should get a disabled here (and the mipi_dsi
> > should stay disabled at this point) and both should get enabled in the final
> > dtbo where the compatible lives?
> 
> Do you mean dsi also needs to be disabled here and enabled in dtbo? if
> so why? if panel disabled then dsi won't probe even if it enabled.

I'm not sure how dtbo's are loaded nowadays, but if by some form of
accident only this dtbo gets loaded without a panel compatible you've
essentially broken the whole display output, as the dsi will defer
indefinitly.

Also, in more general thinking, the savings in terms of node duplication is
quite minimal with this setup. Can't you just have the tiny dsi+backlight
nodes in each panel dtbo?


Thanks
Heiko





More information about the linux-arm-kernel mailing list