diff mbox series

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

Message ID 20230731200559.635629-1-jagan@edgeble.ai (mailing list archive)
State New, archived
Headers show
Series [1/3] arm64: dts: rockchip: Add Radxa ROCK 4C+ DSI DT-overlay | expand

Commit Message

Jagan Teki July 31, 2023, 8:05 p.m. UTC
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@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

Comments

Heiko Stübner Oct. 5, 2023, 10:07 a.m. UTC | #1
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@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@1 {
> +			reg = <1>;
> +
> +			mipi_out_panel: endpoint {
> +				remote-endpoint = <&mipi_in_panel>;
> +			};
> +		};
> +	};
> +
> +	panel: panel@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?



> +		reg = <0>;
> +		backlight = <&backlight>;
> +		vdd-supply = <&lcd_3v3>;
> +		vccio-supply = <&vcc_1v8_s0>;
> +		reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&lcd_panel_reset>;
> +
> +		port {
> +			mipi_in_panel: endpoint {
> +				remote-endpoint = <&mipi_out_panel>;
> +			};
> +		};
> +	};
> +};
> +
> +&pinctrl {
> +	lcd {
> +		lcd_panel_reset: lcd-panel-reset {
> +			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
> +		};
> +	};
> +};
> +
> +&pwm2 {
> +	status = "okay";
> +};
>
Jagan Teki Nov. 13, 2023, 3:15 p.m. UTC | #2
On Thu, 5 Oct 2023 at 06:07, Heiko Stübner <heiko@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@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@1 {
> > +                     reg = <1>;
> > +
> > +                     mipi_out_panel: endpoint {
> > +                             remote-endpoint = <&mipi_in_panel>;
> > +                     };
> > +             };
> > +     };
> > +
> > +     panel: panel@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.

Jagan
Heiko Stübner Jan. 5, 2024, 12:07 p.m. UTC | #3
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@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@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@1 {
> > > +                     reg = <1>;
> > > +
> > > +                     mipi_out_panel: endpoint {
> > > +                             remote-endpoint = <&mipi_in_panel>;
> > > +                     };
> > > +             };
> > > +     };
> > > +
> > > +     panel: panel@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
diff mbox series

Patch

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@1 {
+			reg = <1>;
+
+			mipi_out_panel: endpoint {
+				remote-endpoint = <&mipi_in_panel>;
+			};
+		};
+	};
+
+	panel: panel@0 {
+		/* different resolution panels are used, compatibles are in DTO */
+		reg = <0>;
+		backlight = <&backlight>;
+		vdd-supply = <&lcd_3v3>;
+		vccio-supply = <&vcc_1v8_s0>;
+		reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&lcd_panel_reset>;
+
+		port {
+			mipi_in_panel: endpoint {
+				remote-endpoint = <&mipi_out_panel>;
+			};
+		};
+	};
+};
+
+&pinctrl {
+	lcd {
+		lcd_panel_reset: lcd-panel-reset {
+			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
+		};
+	};
+};
+
+&pwm2 {
+	status = "okay";
+};