linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] arm64: dts: imx8mp: Add support for the ISPs
@ 2023-11-29  9:31 Paul Elder
  2023-11-29  9:31 ` [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs Paul Elder
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Paul Elder @ 2023-11-29  9:31 UTC (permalink / raw)
  To: linux-media, devicetree
  Cc: kieran.bingham, tomi.valkeinen, umang.jain, Paul Elder

This patch series adds support to the i.MX8MP device tree for the ISPs.

Laurent Pinchart (1):
  arm64: dts: imx8mp: Add overlays for ISP instances

Paul Elder (1):
  arm64: dts: imx8mp: Add DT nodes for the two ISPs

 arch/arm64/boot/dts/freescale/Makefile        |  2 +
 .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36 +++++++++++++
 .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36 +++++++++++++
 arch/arm64/boot/dts/freescale/imx8mp.dtsi     | 50 +++++++++++++++++++
 4 files changed, 124 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso

-- 
2.39.2


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs
  2023-11-29  9:31 [PATCH 0/2] arm64: dts: imx8mp: Add support for the ISPs Paul Elder
@ 2023-11-29  9:31 ` Paul Elder
  2023-11-29 10:17   ` Alexander Stein
                     ` (2 more replies)
  2023-11-29  9:31 ` [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances Paul Elder
  2023-11-29 11:16 ` [PATCH 0/2] arm64: dts: imx8mp: Add support for the ISPs Tommaso Merciai
  2 siblings, 3 replies; 22+ messages in thread
From: Paul Elder @ 2023-11-29  9:31 UTC (permalink / raw)
  To: linux-media, devicetree
  Cc: kieran.bingham, tomi.valkeinen, umang.jain, Paul Elder,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Marek Vasut, Alexander Stein, Lucas Stach,
	Adam Ford, Laurent Pinchart, Frank Li,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	open list

The ISP supports both CSI and parallel interfaces, where port 0
corresponds to the former and port 1 corresponds to the latter. Since
the i.MX8MP's ISPs are connected by the parallel interface to the CSI
receiver, set them both to port 1.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
---
 arch/arm64/boot/dts/freescale/imx8mp.dtsi | 50 +++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index c9a610ba4836..25579d4c58f2 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -1604,6 +1604,56 @@ isi_in_1: endpoint {
 				};
 			};
 
+			isp_0: isp@32e10000 {
+				compatible = "fsl,imx8mp-isp";
+				reg = <0x32e10000 0x10000>;
+				interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
+					 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
+					 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
+				clock-names = "isp", "aclk", "hclk";
+				assigned-clocks = <&clk IMX8MP_CLK_MEDIA_ISP>;
+				assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
+				assigned-clock-rates = <500000000>;
+				power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>;
+				fsl,blk-ctrl = <&media_blk_ctrl 0>;
+				status = "disabled";
+
+				ports {
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					port@1 {
+						reg = <1>;
+					};
+				};
+			};
+
+			isp_1: isp@32e20000 {
+				compatible = "fsl,imx8mp-isp";
+				reg = <0x32e20000 0x10000>;
+				interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
+					 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
+					 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
+				clock-names = "isp", "aclk", "hclk";
+				assigned-clocks = <&clk IMX8MP_CLK_MEDIA_ISP>;
+				assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
+				assigned-clock-rates = <500000000>;
+				power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>;
+				fsl,blk-ctrl = <&media_blk_ctrl 1>;
+				status = "disabled";
+
+				ports {
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					port@1 {
+						reg = <1>;
+					};
+				};
+			};
+
 			dewarp: dwe@32e30000 {
 				compatible = "nxp,imx8mp-dw100";
 				reg = <0x32e30000 0x10000>;
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances
  2023-11-29  9:31 [PATCH 0/2] arm64: dts: imx8mp: Add support for the ISPs Paul Elder
  2023-11-29  9:31 ` [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs Paul Elder
@ 2023-11-29  9:31 ` Paul Elder
  2023-11-29 10:20   ` Alexander Stein
  2023-11-29 11:16 ` [PATCH 0/2] arm64: dts: imx8mp: Add support for the ISPs Tommaso Merciai
  2 siblings, 1 reply; 22+ messages in thread
From: Paul Elder @ 2023-11-29  9:31 UTC (permalink / raw)
  To: linux-media, devicetree
  Cc: kieran.bingham, tomi.valkeinen, umang.jain, Laurent Pinchart,
	Paul Elder, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Tim Harvey, Philippe Schenker, Alexander Stein,
	Marek Vasut, Gregor Herburger, Marcel Ziswiler, open list,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Add two overlay to enable each ISP instance. The ISP is wired directly
to the CSIS for now, bypassing the ISI completely.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
---
 arch/arm64/boot/dts/freescale/Makefile        |  2 ++
 .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36 +++++++++++++++++++
 .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36 +++++++++++++++++++
 3 files changed, 74 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso

diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 300049037eb0..f97dfac11189 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -113,6 +113,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp1.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp2.dtbo
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
new file mode 100644
index 000000000000..cf394ed224ab
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2022 Ideas on Board Oy
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/media/video-interfaces.h>
+
+&isi_0 {
+	status = "disabled";
+
+	ports {
+		port@0 {
+			/delete-node/ endpoint;
+		};
+	};
+};
+
+&isp_0 {
+	status = "okay";
+
+	ports {
+		port@1 {
+			isp0_in: endpoint {
+				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
+				remote-endpoint = <&mipi_csi_0_out>;
+			};
+		};
+	};
+};
+
+&mipi_csi_0_out {
+	remote-endpoint = <&isp0_in>;
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
new file mode 100644
index 000000000000..14e2e7b2617f
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2022 Ideas on Board Oy
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/media/video-interfaces.h>
+
+&isi_0 {
+	status = "disabled";
+
+	ports {
+		port@1 {
+			/delete-node/ endpoint;
+		};
+	};
+};
+
+&isp_1 {
+	status = "okay";
+
+	ports {
+		port@1 {
+			isp1_in: endpoint {
+				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
+				remote-endpoint = <&mipi_csi_1_out>;
+			};
+		};
+	};
+};
+
+&mipi_csi_1_out {
+	remote-endpoint = <&isp1_in>;
+};
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs
  2023-11-29  9:31 ` [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs Paul Elder
@ 2023-11-29 10:17   ` Alexander Stein
  2023-11-29 11:59   ` Fabio Estevam
  2024-03-20 12:35   ` Adam Ford
  2 siblings, 0 replies; 22+ messages in thread
From: Alexander Stein @ 2023-11-29 10:17 UTC (permalink / raw)
  To: linux-media, devicetree, Paul Elder
  Cc: kieran.bingham, tomi.valkeinen, umang.jain, Paul Elder,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Marek Vasut, Lucas Stach, Adam Ford,
	Laurent Pinchart, Frank Li,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	open list

Hi Paul,

Am Mittwoch, 29. November 2023, 10:31:12 CET schrieb Paul Elder:
> The ISP supports both CSI and parallel interfaces, where port 0
> corresponds to the former and port 1 corresponds to the latter. Since
> the i.MX8MP's ISPs are connected by the parallel interface to the CSI
> receiver, set them both to port 1.
> 
> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>

Thanks for the patch. I'm running with for a while now.
Reviewed-by: Alexander Stein <alexander.stein@ew.tq-group.com>

> ---
>  arch/arm64/boot/dts/freescale/imx8mp.dtsi | 50 +++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> b/arch/arm64/boot/dts/freescale/imx8mp.dtsi index
> c9a610ba4836..25579d4c58f2 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> @@ -1604,6 +1604,56 @@ isi_in_1: endpoint {
>  				};
>  			};
> 
> +			isp_0: isp@32e10000 {
> +				compatible = "fsl,imx8mp-isp";
> +				reg = <0x32e10000 0x10000>;
> +				interrupts = <GIC_SPI 74 
IRQ_TYPE_LEVEL_HIGH>;
> +				clocks = <&clk 
IMX8MP_CLK_MEDIA_ISP_ROOT>,
> +					 <&clk 
IMX8MP_CLK_MEDIA_AXI_ROOT>,
> +					 <&clk 
IMX8MP_CLK_MEDIA_APB_ROOT>;
> +				clock-names = "isp", "aclk", "hclk";
> +				assigned-clocks = <&clk 
IMX8MP_CLK_MEDIA_ISP>;
> +				assigned-clock-parents = <&clk 
IMX8MP_SYS_PLL2_500M>;
> +				assigned-clock-rates = <500000000>;
> +				power-domains = <&media_blk_ctrl 
IMX8MP_MEDIABLK_PD_ISP>;
> +				fsl,blk-ctrl = <&media_blk_ctrl 0>;
> +				status = "disabled";
> +
> +				ports {
> +					#address-cells = <1>;
> +					#size-cells = <0>;
> +
> +					port@1 {
> +						reg = <1>;
> +					};
> +				};
> +			};
> +
> +			isp_1: isp@32e20000 {
> +				compatible = "fsl,imx8mp-isp";
> +				reg = <0x32e20000 0x10000>;
> +				interrupts = <GIC_SPI 75 
IRQ_TYPE_LEVEL_HIGH>;
> +				clocks = <&clk 
IMX8MP_CLK_MEDIA_ISP_ROOT>,
> +					 <&clk 
IMX8MP_CLK_MEDIA_AXI_ROOT>,
> +					 <&clk 
IMX8MP_CLK_MEDIA_APB_ROOT>;
> +				clock-names = "isp", "aclk", "hclk";
> +				assigned-clocks = <&clk 
IMX8MP_CLK_MEDIA_ISP>;
> +				assigned-clock-parents = <&clk 
IMX8MP_SYS_PLL2_500M>;
> +				assigned-clock-rates = <500000000>;
> +				power-domains = <&media_blk_ctrl 
IMX8MP_MEDIABLK_PD_ISP>;
> +				fsl,blk-ctrl = <&media_blk_ctrl 1>;
> +				status = "disabled";
> +
> +				ports {
> +					#address-cells = <1>;
> +					#size-cells = <0>;
> +
> +					port@1 {
> +						reg = <1>;
> +					};
> +				};
> +			};
> +
>  			dewarp: dwe@32e30000 {
>  				compatible = "nxp,imx8mp-dw100";
>  				reg = <0x32e30000 0x10000>;


-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances
  2023-11-29  9:31 ` [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances Paul Elder
@ 2023-11-29 10:20   ` Alexander Stein
  2023-11-29 15:16     ` Laurent Pinchart
  0 siblings, 1 reply; 22+ messages in thread
From: Alexander Stein @ 2023-11-29 10:20 UTC (permalink / raw)
  To: linux-media, devicetree, Paul Elder
  Cc: kieran.bingham, tomi.valkeinen, umang.jain, Laurent Pinchart,
	Paul Elder, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Tim Harvey, Philippe Schenker, Marek Vasut,
	Gregor Herburger, Marcel Ziswiler, open list,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

Hi Paul,

thanks for the patch.

Am Mittwoch, 29. November 2023, 10:31:13 CET schrieb Paul Elder:
> From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> 
> Add two overlay to enable each ISP instance. The ISP is wired directly
> to the CSIS for now, bypassing the ISI completely.

I'm not sure if this is worth adding in a separate overlay.

> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> ---
>  arch/arm64/boot/dts/freescale/Makefile        |  2 ++
>  .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36 +++++++++++++++++++
>  .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36 +++++++++++++++++++
>  3 files changed, 74 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
>  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> 
> diff --git a/arch/arm64/boot/dts/freescale/Makefile
> b/arch/arm64/boot/dts/freescale/Makefile index 300049037eb0..f97dfac11189
> 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -113,6 +113,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp1.dtbo
> +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp2.dtbo
>  dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso new file mode 100644
> index 000000000000..cf394ed224ab
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> @@ -0,0 +1,36 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright 2022 Ideas on Board Oy
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/media/video-interfaces.h>
> +
> +&isi_0 {
> +	status = "disabled";

ISI is disabled by default. What is your intention here?

> +
> +	ports {
> +		port@0 {
> +			/delete-node/ endpoint;

This doesn't work in overlays. See [1]. Otherwise the OF graph connections 
look fine to me. I'm using the same in my local overlay.

Best regards,
Alexander

[1] https://lore.kernel.org/all/
CAMuHMdWu4KZbBkvEofUV2wuA1g2S=XHHM3RUN1cNrcZBkhsPZA@mail.gmail.com/

> +		};
> +	};
> +};
> +
> +&isp_0 {
> +	status = "okay";
> +
> +	ports {
> +		port@1 {
> +			isp0_in: endpoint {
> +				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> +				remote-endpoint = <&mipi_csi_0_out>;
> +			};
> +		};
> +	};
> +};
> +
> +&mipi_csi_0_out {
> +	remote-endpoint = <&isp0_in>;
> +};
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso new file mode 100644
> index 000000000000..14e2e7b2617f
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> @@ -0,0 +1,36 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright 2022 Ideas on Board Oy
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/media/video-interfaces.h>
> +
> +&isi_0 {
> +	status = "disabled";
> +
> +	ports {
> +		port@1 {
> +			/delete-node/ endpoint;
> +		};
> +	};
> +};
> +
> +&isp_1 {
> +	status = "okay";
> +
> +	ports {
> +		port@1 {
> +			isp1_in: endpoint {
> +				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> +				remote-endpoint = <&mipi_csi_1_out>;
> +			};
> +		};
> +	};
> +};
> +
> +&mipi_csi_1_out {
> +	remote-endpoint = <&isp1_in>;
> +};


-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 0/2] arm64: dts: imx8mp: Add support for the ISPs
  2023-11-29  9:31 [PATCH 0/2] arm64: dts: imx8mp: Add support for the ISPs Paul Elder
  2023-11-29  9:31 ` [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs Paul Elder
  2023-11-29  9:31 ` [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances Paul Elder
@ 2023-11-29 11:16 ` Tommaso Merciai
  2 siblings, 0 replies; 22+ messages in thread
From: Tommaso Merciai @ 2023-11-29 11:16 UTC (permalink / raw)
  To: Paul Elder
  Cc: linux-media, devicetree, kieran.bingham, tomi.valkeinen, umang.jain

Hi Paul, Laurent,

On Wed, Nov 29, 2023 at 06:31:11PM +0900, Paul Elder wrote:
> This patch series adds support to the i.MX8MP device tree for the ISPs.
> 
> Laurent Pinchart (1):
>   arm64: dts: imx8mp: Add overlays for ISP instances
> 
> Paul Elder (1):
>   arm64: dts: imx8mp: Add DT nodes for the two ISPs

Tested also on my side with the following setup:

imx8mp-evk + ov5640
imx8mp-evk + alvium-1500c-500

Below some logs:

imx8mp-evk + ov5640
----------------------------------------------------------------------------------------------------------------
Media device information
--------------------
driver          rkisp1
model           rkisp1
serial
bus info        platform:rkisp1
hw revision     0xe
driver version  6.7.0

Device topology
- entity 1: rkisp1_isp (4 pads, 4 links)
			type V4L2 subdev subtype Unknown flags 0
			device node name /dev/v4l-subdev0
		pad0: Sink
				[fmt:SRGGB10_1X10/800x600 field:none colorspace:raw xfer:none ycbcr:601 quantization:full-range
				 crop.bounds:(0,0)/800x600
				 crop:(0,0)/800x600]
				<- "csis-32e40000.csi":1 [ENABLED]
		pad1: Sink
				[fmt:unknown/0x0 field:none]
				<- "rkisp1_params":0 [ENABLED,IMMUTABLE]
		pad2: Source
				[fmt:YUYV8_2X8/800x600 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range
				 crop.bounds:(0,0)/800x600
				 crop:(0,0)/800x600]
				-> "rkisp1_resizer_mainpath":0 [ENABLED]
		pad3: Source
				[fmt:unknown/0x0 field:none]
				-> "rkisp1_stats":0 [ENABLED,IMMUTABLE]

- entity 6: rkisp1_resizer_mainpath (2 pads, 2 links)
			type V4L2 subdev subtype Unknown flags 0
			device node name /dev/v4l-subdev1
		pad0: Sink
				[fmt:YUYV8_2X8/800x600 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range
				 crop.bounds:(0,0)/800x600
				 crop:(0,0)/800x600]
				<- "rkisp1_isp":2 [ENABLED]
		pad1: Source
				[fmt:YUYV8_2X8/800x600 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
				-> "rkisp1_mainpath":0 [ENABLED,IMMUTABLE]

- entity 9: rkisp1_mainpath (1 pad, 1 link)
			type Node subtype V4L flags 0
			device node name /dev/video0
		pad0: Sink
				<- "rkisp1_resizer_mainpath":1 [ENABLED,IMMUTABLE]

- entity 13: rkisp1_stats (1 pad, 1 link)
			 type Node subtype V4L flags 0
			 device node name /dev/video1
		pad0: Sink
				<- "rkisp1_isp":3 [ENABLED,IMMUTABLE]

- entity 17: rkisp1_params (1 pad, 1 link)
			 type Node subtype V4L flags 0
			 device node name /dev/video2
		pad0: Source
				-> "rkisp1_isp":1 [ENABLED,IMMUTABLE]

- entity 29: csis-32e40000.csi (2 pads, 2 links)
			 type V4L2 subdev subtype Unknown flags 0
			 device node name /dev/v4l-subdev2
		pad0: Sink
				[fmt:UYVY8_1X16/640x480 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
				<- "ov5640 1-003c":0 []
		pad1: Source
				[fmt:UYVY8_1X16/640x480 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
				-> "rkisp1_isp":0 [ENABLED]

- entity 34: ov5640 1-003c (1 pad, 1 link)
			 type V4L2 subdev subtype Sensor flags 0
			 device node name /dev/v4l-subdev3
		pad0: Source
				[fmt:UYVY8_1X16/640x480@1/30 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range
				 crop.bounds:(0,0)/2624x1964
				 crop:(16,14)/2592x1944]
				-> "csis-32e40000.csi":0 []

root@imx8mp-lpddr4-evk:~#
root@imx8mp-lpddr4-evk:~# uname -a
Linux imx8mp-lpddr4-evk 6.7.0-rc2-gff66adbac1c2 #277 SMP PREEMPT Wed Nov 29 11:40:48 CET 2023 aarch64 GNU/Linux
----------------------------------------------------------------------------------------------------------------

imx8mp-evk + alvium 1500c-500:
----------------------------------------------------------------------------------------------------------------

Media device information
--------------------
driver          rkisp1
model           rkisp1
serial
bus info        platform:rkisp1
hw revision     0xe
driver version  6.7.0

Device topology
- entity 1: rkisp1_isp (4 pads, 4 links)
			type V4L2 subdev subtype Unknown flags 0
			device node name /dev/v4l-subdev0
		pad0: Sink
				[fmt:SRGGB10_1X10/800x600 field:none colorspace:raw xfer:none ycbcr:601 quantization:full-range
				 crop.bounds:(0,0)/800x600
				 crop:(0,0)/800x600]
				<- "csis-32e40000.csi":1 [ENABLED]
		pad1: Sink
				[fmt:unknown/0x0 field:none]
				<- "rkisp1_params":0 [ENABLED,IMMUTABLE]
		pad2: Source
				[fmt:YUYV8_2X8/800x600 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range
				 crop.bounds:(0,0)/800x600
				 crop:(0,0)/800x600]
				-> "rkisp1_resizer_mainpath":0 [ENABLED]
		pad3: Source
				[fmt:unknown/0x0 field:none]
				-> "rkisp1_stats":0 [ENABLED,IMMUTABLE]

- entity 6: rkisp1_resizer_mainpath (2 pads, 2 links)
			type V4L2 subdev subtype Unknown flags 0
			device node name /dev/v4l-subdev1
		pad0: Sink
				[fmt:YUYV8_2X8/800x600 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range
				 crop.bounds:(0,0)/800x600
				 crop:(0,0)/800x600]
				<- "rkisp1_isp":2 [ENABLED]
		pad1: Source
				[fmt:YUYV8_2X8/800x600 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
				-> "rkisp1_mainpath":0 [ENABLED,IMMUTABLE]

- entity 9: rkisp1_mainpath (1 pad, 1 link)
			type Node subtype V4L flags 0
			device node name /dev/video0
		pad0: Sink
				<- "rkisp1_resizer_mainpath":1 [ENABLED,IMMUTABLE]

- entity 13: rkisp1_stats (1 pad, 1 link)
			 type Node subtype V4L flags 0
			 device node name /dev/video1
		pad0: Sink
				<- "rkisp1_isp":3 [ENABLED,IMMUTABLE]

- entity 17: rkisp1_params (1 pad, 1 link)
			 type Node subtype V4L flags 0
			 device node name /dev/video2
		pad0: Source
				-> "rkisp1_isp":1 [ENABLED,IMMUTABLE]

- entity 29: csis-32e40000.csi (2 pads, 2 links)
			 type V4L2 subdev subtype Unknown flags 0
			 device node name /dev/v4l-subdev2
		pad0: Sink
				[fmt:UYVY8_1X16/640x480 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
				<- "alvium-csi2 1-003c":0 []
		pad1: Source
				[fmt:UYVY8_1X16/640x480 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
				-> "rkisp1_isp":0 [ENABLED]

- entity 34: alvium-csi2 1-003c (1 pad, 1 link)
			 type V4L2 subdev subtype Sensor flags 0
			 device node name /dev/v4l-subdev3
		pad0: Source
				[fmt:UYVY8_1X16/640x480@1/10 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range
				 crop.bounds:(0,0)/2592x1944
				 crop:(0,0)/640x480]
				-> "csis-32e40000.csi":0 []

root@imx8mp-lpddr4-evk:~# uname -a
Linux imx8mp-lpddr4-evk 6.7.0-rc2-gff66adbac1c2 #277 SMP PREEMPT Wed Nov 29 11:40:48 CET 2023 aarch64 GNU/Linux


Hope this help.

Thanks & Regards,
Tommaso

> 
>  arch/arm64/boot/dts/freescale/Makefile        |  2 +
>  .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36 +++++++++++++
>  .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36 +++++++++++++
>  arch/arm64/boot/dts/freescale/imx8mp.dtsi     | 50 +++++++++++++++++++
>  4 files changed, 124 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
>  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> 
> -- 
> 2.39.2
> 
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs
  2023-11-29  9:31 ` [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs Paul Elder
  2023-11-29 10:17   ` Alexander Stein
@ 2023-11-29 11:59   ` Fabio Estevam
  2023-11-29 13:49     ` Adam Ford
  2024-03-20 12:35   ` Adam Ford
  2 siblings, 1 reply; 22+ messages in thread
From: Fabio Estevam @ 2023-11-29 11:59 UTC (permalink / raw)
  To: Paul Elder
  Cc: linux-media, devicetree, kieran.bingham, tomi.valkeinen,
	umang.jain, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, NXP Linux Team,
	Marek Vasut, Alexander Stein, Lucas Stach, Adam Ford,
	Laurent Pinchart, Frank Li,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	open list

Hi Paul,

On Wed, Nov 29, 2023 at 6:31 AM Paul Elder <paul.elder@ideasonboard.com> wrote:

> +                       isp_0: isp@32e10000 {
> +                               compatible = "fsl,imx8mp-isp";

This compatible string is still not present in today's linux-next.

Will it be merged soon?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs
  2023-11-29 11:59   ` Fabio Estevam
@ 2023-11-29 13:49     ` Adam Ford
  2023-11-29 14:26       ` Fabio Estevam
  2023-11-29 14:44       ` Laurent Pinchart
  0 siblings, 2 replies; 22+ messages in thread
From: Adam Ford @ 2023-11-29 13:49 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: Paul Elder, linux-media, devicetree, kieran.bingham,
	tomi.valkeinen, umang.jain, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	NXP Linux Team, Marek Vasut, Alexander Stein, Lucas Stach,
	Laurent Pinchart, Frank Li,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	open list

On Wed, Nov 29, 2023 at 5:59 AM Fabio Estevam <festevam@gmail.com> wrote:
>
> Hi Paul,
>
> On Wed, Nov 29, 2023 at 6:31 AM Paul Elder <paul.elder@ideasonboard.com> wrote:
>
> > +                       isp_0: isp@32e10000 {
> > +                               compatible = "fsl,imx8mp-isp";
>
> This compatible string is still not present in today's linux-next.
>
> Will it be merged soon?

Fabio,

Paul posted a series to the media mailing list adding support for the
i.MX8MP ISP:

https://patchwork.linuxtv.org/project/linux-media/list/?series=11776

I am guessing it'll have to go through the review process.  I was CC'd
because I did some previous testing before.  I have a Sony imx219 that
works in 4-lane mode.  I'm likely to review and test tonight or
tomorrow.  I am guessing he posted the DTS changes via a different
series since they usually go through Shawn's branch instead of the
media one.

Hopefully that helps.

adam

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs
  2023-11-29 13:49     ` Adam Ford
@ 2023-11-29 14:26       ` Fabio Estevam
  2023-11-29 14:44       ` Laurent Pinchart
  1 sibling, 0 replies; 22+ messages in thread
From: Fabio Estevam @ 2023-11-29 14:26 UTC (permalink / raw)
  To: Adam Ford
  Cc: Paul Elder, linux-media, devicetree, kieran.bingham,
	tomi.valkeinen, umang.jain, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	NXP Linux Team, Marek Vasut, Alexander Stein, Lucas Stach,
	Laurent Pinchart, Frank Li,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	open list

Hi Adam,

On Wed, Nov 29, 2023 at 10:49 AM Adam Ford <aford173@gmail.com> wrote:

> Fabio,
>
> Paul posted a series to the media mailing list adding support for the
> i.MX8MP ISP:
>
> https://patchwork.linuxtv.org/project/linux-media/list/?series=11776

Thanks for the clarification. It's great to see this series.

Cheers

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs
  2023-11-29 13:49     ` Adam Ford
  2023-11-29 14:26       ` Fabio Estevam
@ 2023-11-29 14:44       ` Laurent Pinchart
  1 sibling, 0 replies; 22+ messages in thread
From: Laurent Pinchart @ 2023-11-29 14:44 UTC (permalink / raw)
  To: Paul Elder
  Cc: Adam Ford, Fabio Estevam, linux-media, devicetree,
	kieran.bingham, tomi.valkeinen, umang.jain, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, NXP Linux Team, Marek Vasut,
	Alexander Stein, Lucas Stach, Frank Li,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	open list

On Wed, Nov 29, 2023 at 07:49:31AM -0600, Adam Ford wrote:
> On Wed, Nov 29, 2023 at 5:59 AM Fabio Estevam <festevam@gmail.com> wrote:
> >
> > Hi Paul,
> >
> > On Wed, Nov 29, 2023 at 6:31 AM Paul Elder <paul.elder@ideasonboard.com> wrote:
> >
> > > +                       isp_0: isp@32e10000 {
> > > +                               compatible = "fsl,imx8mp-isp";
> >
> > This compatible string is still not present in today's linux-next.
> >
> > Will it be merged soon?
> 
> Fabio,
> 
> Paul posted a series to the media mailing list adding support for the
> i.MX8MP ISP:
> 
> https://patchwork.linuxtv.org/project/linux-media/list/?series=11776

Paul, this is the kind of information that needs to go to the cover
letter, along with anything else that reviewers may need to review the
patches. Otherwise, as Fabio pointed out, it gets confusing. Please
expand the cover letter for the next iterations of the series.

> I am guessing it'll have to go through the review process.  I was CC'd
> because I did some previous testing before.  I have a Sony imx219 that
> works in 4-lane mode.  I'm likely to review and test tonight or
> tomorrow.  I am guessing he posted the DTS changes via a different
> series since they usually go through Shawn's branch instead of the
> media one.
> 
> Hopefully that helps.

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances
  2023-11-29 10:20   ` Alexander Stein
@ 2023-11-29 15:16     ` Laurent Pinchart
  2023-11-30  9:51       ` Alexander Stein
  0 siblings, 1 reply; 22+ messages in thread
From: Laurent Pinchart @ 2023-11-29 15:16 UTC (permalink / raw)
  To: Alexander Stein
  Cc: linux-media, devicetree, Paul Elder, kieran.bingham,
	tomi.valkeinen, umang.jain, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Tim Harvey, Philippe Schenker,
	Marek Vasut, Gregor Herburger, Marcel Ziswiler, open list,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

Hi Alexander,

On Wed, Nov 29, 2023 at 11:20:07AM +0100, Alexander Stein wrote:
> Am Mittwoch, 29. November 2023, 10:31:13 CET schrieb Paul Elder:
> > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > 
> > Add two overlay to enable each ISP instance. The ISP is wired directly
> > to the CSIS for now, bypassing the ISI completely.
> 
> I'm not sure if this is worth adding in a separate overlay.

The trouble is that, at this point, selection between the ISP and the
ISI can only be performed through DT :-S That's why this is implemented
as an overlay.

> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> > ---
> >  arch/arm64/boot/dts/freescale/Makefile        |  2 ++
> >  .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36 +++++++++++++++++++
> >  .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36 +++++++++++++++++++
> >  3 files changed, 74 insertions(+)
> >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > 
> > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > b/arch/arm64/boot/dts/freescale/Makefile index 300049037eb0..f97dfac11189
> > 100644
> > --- a/arch/arm64/boot/dts/freescale/Makefile
> > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > @@ -113,6 +113,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
> > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp1.dtbo
> > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp2.dtbo
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso new file mode 100644
> > index 000000000000..cf394ed224ab
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > @@ -0,0 +1,36 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > +/*
> > + * Copyright 2022 Ideas on Board Oy
> > + */
> > +
> > +/dts-v1/;
> > +/plugin/;
> > +
> > +#include <dt-bindings/media/video-interfaces.h>
> > +
> > +&isi_0 {
> > +	status = "disabled";
> 
> ISI is disabled by default. What is your intention here?

It could be enabled by an overlay for a camera module. Ideally we want
to be able to enable both the ISI and ISP at runtime, but that's not
possible yet and will require a very large amount of work.

> > +
> > +	ports {
> > +		port@0 {
> > +			/delete-node/ endpoint;
> 
> This doesn't work in overlays. See [1]. Otherwise the OF graph connections 
> look fine to me. I'm using the same in my local overlay.

Interesting, I wasn't aware of that. Maybe we should fix it :-)

> [1] https://lore.kernel.org/all/CAMuHMdWu4KZbBkvEofUV2wuA1g2S=XHHM3RUN1cNrcZBkhsPZA@mail.gmail.com/
> 
> > +		};
> > +	};
> > +};
> > +
> > +&isp_0 {
> > +	status = "okay";
> > +
> > +	ports {
> > +		port@1 {
> > +			isp0_in: endpoint {
> > +				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > +				remote-endpoint = <&mipi_csi_0_out>;
> > +			};
> > +		};
> > +	};
> > +};
> > +
> > +&mipi_csi_0_out {
> > +	remote-endpoint = <&isp0_in>;
> > +};
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso new file mode 100644
> > index 000000000000..14e2e7b2617f
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > @@ -0,0 +1,36 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > +/*
> > + * Copyright 2022 Ideas on Board Oy
> > + */
> > +
> > +/dts-v1/;
> > +/plugin/;
> > +
> > +#include <dt-bindings/media/video-interfaces.h>
> > +
> > +&isi_0 {
> > +	status = "disabled";
> > +
> > +	ports {
> > +		port@1 {
> > +			/delete-node/ endpoint;
> > +		};
> > +	};
> > +};
> > +
> > +&isp_1 {
> > +	status = "okay";
> > +
> > +	ports {
> > +		port@1 {
> > +			isp1_in: endpoint {
> > +				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > +				remote-endpoint = <&mipi_csi_1_out>;
> > +			};
> > +		};
> > +	};
> > +};
> > +
> > +&mipi_csi_1_out {
> > +	remote-endpoint = <&isp1_in>;
> > +};

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances
  2023-11-29 15:16     ` Laurent Pinchart
@ 2023-11-30  9:51       ` Alexander Stein
  2023-11-30 13:48         ` Adam Ford
  2023-11-30 14:20         ` Laurent Pinchart
  0 siblings, 2 replies; 22+ messages in thread
From: Alexander Stein @ 2023-11-30  9:51 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: linux-media, devicetree, Paul Elder, kieran.bingham,
	tomi.valkeinen, umang.jain, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Tim Harvey, Philippe Schenker,
	Marek Vasut, Gregor Herburger, Marcel Ziswiler, open list,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

Hi Laurent,

Am Mittwoch, 29. November 2023, 16:16:37 CET schrieb Laurent Pinchart:
> Hi Alexander,
> 
> On Wed, Nov 29, 2023 at 11:20:07AM +0100, Alexander Stein wrote:
> > Am Mittwoch, 29. November 2023, 10:31:13 CET schrieb Paul Elder:
> > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > 
> > > Add two overlay to enable each ISP instance. The ISP is wired directly
> > > to the CSIS for now, bypassing the ISI completely.
> > 
> > I'm not sure if this is worth adding in a separate overlay.
> 
> The trouble is that, at this point, selection between the ISP and the
> ISI can only be performed through DT :-S That's why this is implemented
> as an overlay.

I feel a better place would be the overlay which actually adds the sensor. 
This knows best whether ISI or ISP should be used.

> > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> > > ---
> > > 
> > >  arch/arm64/boot/dts/freescale/Makefile        |  2 ++
> > >  .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36 +++++++++++++++++++
> > >  .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36 +++++++++++++++++++
> > >  3 files changed, 74 insertions(+)
> > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > 
> > > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > > b/arch/arm64/boot/dts/freescale/Makefile index
> > > 300049037eb0..f97dfac11189
> > > 100644
> > > --- a/arch/arm64/boot/dts/freescale/Makefile
> > > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > > @@ -113,6 +113,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
> > > 
> > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
> > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
> > > 
> > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp1.dtbo
> > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp2.dtbo
> > > 
> > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
> > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
> > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
> > > 
> > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso new file mode 100644
> > > index 000000000000..cf394ed224ab
> > > --- /dev/null
> > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > @@ -0,0 +1,36 @@
> > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > +/*
> > > + * Copyright 2022 Ideas on Board Oy
> > > + */
> > > +
> > > +/dts-v1/;
> > > +/plugin/;
> > > +
> > > +#include <dt-bindings/media/video-interfaces.h>
> > > +
> > > +&isi_0 {
> > > +	status = "disabled";
> > 
> > ISI is disabled by default. What is your intention here?
> 
> It could be enabled by an overlay for a camera module. Ideally we want
> to be able to enable both the ISI and ISP at runtime, but that's not
> possible yet and will require a very large amount of work.

Again IMHO this is part of sensor setup, in a very specific overlay. To put it 
into different words: I barely see the gain of this small overlay.

Runtime switching would require a combined media controller including both ISI 
and ISP, no?

Best regards,
Alexander

> > > +
> > > +	ports {
> > > +		port@0 {
> > > +			/delete-node/ endpoint;
> > 
> > This doesn't work in overlays. See [1]. Otherwise the OF graph connections
> > look fine to me. I'm using the same in my local overlay.
> 
> Interesting, I wasn't aware of that. Maybe we should fix it :-)
> 
> > [1]
> > https://lore.kernel.org/all/CAMuHMdWu4KZbBkvEofUV2wuA1g2S=XHHM3RUN1cNrcZB
> > khsPZA@mail.gmail.com/> 
> > > +		};
> > > +	};
> > > +};
> > > +
> > > +&isp_0 {
> > > +	status = "okay";
> > > +
> > > +	ports {
> > > +		port@1 {
> > > +			isp0_in: endpoint {
> > > +				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > +				remote-endpoint = <&mipi_csi_0_out>;
> > > +			};
> > > +		};
> > > +	};
> > > +};
> > > +
> > > +&mipi_csi_0_out {
> > > +	remote-endpoint = <&isp0_in>;
> > > +};
> > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso new file mode 100644
> > > index 000000000000..14e2e7b2617f
> > > --- /dev/null
> > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > @@ -0,0 +1,36 @@
> > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > +/*
> > > + * Copyright 2022 Ideas on Board Oy
> > > + */
> > > +
> > > +/dts-v1/;
> > > +/plugin/;
> > > +
> > > +#include <dt-bindings/media/video-interfaces.h>
> > > +
> > > +&isi_0 {
> > > +	status = "disabled";
> > > +
> > > +	ports {
> > > +		port@1 {
> > > +			/delete-node/ endpoint;
> > > +		};
> > > +	};
> > > +};
> > > +
> > > +&isp_1 {
> > > +	status = "okay";
> > > +
> > > +	ports {
> > > +		port@1 {
> > > +			isp1_in: endpoint {
> > > +				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > +				remote-endpoint = <&mipi_csi_1_out>;
> > > +			};
> > > +		};
> > > +	};
> > > +};
> > > +
> > > +&mipi_csi_1_out {
> > > +	remote-endpoint = <&isp1_in>;
> > > +};


-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances
  2023-11-30  9:51       ` Alexander Stein
@ 2023-11-30 13:48         ` Adam Ford
  2023-11-30 14:02           ` Kieran Bingham
  2023-11-30 14:20         ` Laurent Pinchart
  1 sibling, 1 reply; 22+ messages in thread
From: Adam Ford @ 2023-11-30 13:48 UTC (permalink / raw)
  To: Alexander Stein
  Cc: Laurent Pinchart, linux-media, devicetree, Paul Elder,
	kieran.bingham, tomi.valkeinen, umang.jain, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	Tim Harvey, Philippe Schenker, Marek Vasut, Gregor Herburger,
	Marcel Ziswiler, open list,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

On Thu, Nov 30, 2023 at 3:51 AM Alexander Stein
<alexander.stein@ew.tq-group.com> wrote:
>
> Hi Laurent,
>
> Am Mittwoch, 29. November 2023, 16:16:37 CET schrieb Laurent Pinchart:
> > Hi Alexander,
> >
> > On Wed, Nov 29, 2023 at 11:20:07AM +0100, Alexander Stein wrote:
> > > Am Mittwoch, 29. November 2023, 10:31:13 CET schrieb Paul Elder:
> > > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > >
> > > > Add two overlay to enable each ISP instance. The ISP is wired directly
> > > > to the CSIS for now, bypassing the ISI completely.
> > >
> > > I'm not sure if this is worth adding in a separate overlay.
> >
> > The trouble is that, at this point, selection between the ISP and the
> > ISI can only be performed through DT :-S That's why this is implemented
> > as an overlay.
>
> I feel a better place would be the overlay which actually adds the sensor.
> This knows best whether ISI or ISP should be used.
>
> > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> > > > ---
> > > >
> > > >  arch/arm64/boot/dts/freescale/Makefile        |  2 ++
> > > >  .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36 +++++++++++++++++++
> > > >  .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36 +++++++++++++++++++
> > > >  3 files changed, 74 insertions(+)
> > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > >
> > > > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > > > b/arch/arm64/boot/dts/freescale/Makefile index
> > > > 300049037eb0..f97dfac11189
> > > > 100644
> > > > --- a/arch/arm64/boot/dts/freescale/Makefile
> > > > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > > > @@ -113,6 +113,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
> > > >
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
> > > >
> > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp1.dtbo
> > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp2.dtbo
> > > >
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
> > > >
> > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso new file mode 100644
> > > > index 000000000000..cf394ed224ab
> > > > --- /dev/null
> > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > @@ -0,0 +1,36 @@
> > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > +/*
> > > > + * Copyright 2022 Ideas on Board Oy
> > > > + */
> > > > +
> > > > +/dts-v1/;
> > > > +/plugin/;
> > > > +
> > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > +
> > > > +&isi_0 {
> > > > + status = "disabled";
> > >
> > > ISI is disabled by default. What is your intention here?
> >
> > It could be enabled by an overlay for a camera module. Ideally we want
> > to be able to enable both the ISI and ISP at runtime, but that's not
> > possible yet and will require a very large amount of work.
>
> Again IMHO this is part of sensor setup, in a very specific overlay. To put it
> into different words: I barely see the gain of this small overlay.
>
> Runtime switching would require a combined media controller including both ISI
> and ISP, no?
>
> Best regards,
> Alexander
>
> > > > +
> > > > + ports {
> > > > +         port@0 {
> > > > +                 /delete-node/ endpoint;
> > >
> > > This doesn't work in overlays. See [1]. Otherwise the OF graph connections
> > > look fine to me. I'm using the same in my local overlay.
> >
> > Interesting, I wasn't aware of that. Maybe we should fix it :-)

When I did my camera implementation, I thought it was simpler to:

/delete-node/ &isi_in_0;

it's a one-line change.

I would suggest we just drop the overlay and make users who have the
cameras integrate the cameras and the isp routing into their
respective overlays.

adam
> >
> > > [1]
> > > https://lore.kernel.org/all/CAMuHMdWu4KZbBkvEofUV2wuA1g2S=XHHM3RUN1cNrcZB
> > > khsPZA@mail.gmail.com/>
> > > > +         };
> > > > + };
> > > > +};
> > > > +
> > > > +&isp_0 {
> > > > + status = "okay";
> > > > +
> > > > + ports {
> > > > +         port@1 {
> > > > +                 isp0_in: endpoint {
> > > > +                         bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > +                         remote-endpoint = <&mipi_csi_0_out>;
> > > > +                 };
> > > > +         };
> > > > + };
> > > > +};
> > > > +
> > > > +&mipi_csi_0_out {
> > > > + remote-endpoint = <&isp0_in>;
> > > > +};
> > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso new file mode 100644
> > > > index 000000000000..14e2e7b2617f
> > > > --- /dev/null
> > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > @@ -0,0 +1,36 @@
> > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > +/*
> > > > + * Copyright 2022 Ideas on Board Oy
> > > > + */
> > > > +
> > > > +/dts-v1/;
> > > > +/plugin/;
> > > > +
> > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > +
> > > > +&isi_0 {
> > > > + status = "disabled";
> > > > +
> > > > + ports {
> > > > +         port@1 {
> > > > +                 /delete-node/ endpoint;
> > > > +         };
> > > > + };
> > > > +};
> > > > +
> > > > +&isp_1 {
> > > > + status = "okay";
> > > > +
> > > > + ports {
> > > > +         port@1 {
> > > > +                 isp1_in: endpoint {
> > > > +                         bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > +                         remote-endpoint = <&mipi_csi_1_out>;
> > > > +                 };
> > > > +         };
> > > > + };
> > > > +};
> > > > +
> > > > +&mipi_csi_1_out {
> > > > + remote-endpoint = <&isp1_in>;
> > > > +};
>
>
> --
> TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> Amtsgericht München, HRB 105018
> Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> http://www.tq-group.com/
>
>
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances
  2023-11-30 13:48         ` Adam Ford
@ 2023-11-30 14:02           ` Kieran Bingham
  2023-11-30 14:09             ` Adam Ford
  2023-11-30 14:22             ` Alexander Stein
  0 siblings, 2 replies; 22+ messages in thread
From: Kieran Bingham @ 2023-11-30 14:02 UTC (permalink / raw)
  To: Adam Ford, Alexander Stein, Pantelis Antoniou
  Cc: Laurent Pinchart, linux-media, devicetree, Paul Elder,
	tomi.valkeinen, umang.jain, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Tim Harvey, Philippe Schenker,
	Marek Vasut, Gregor Herburger, Marcel Ziswiler, open list,
	ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

+ Pantellis

Quoting Adam Ford (2023-11-30 13:48:58)
> On Thu, Nov 30, 2023 at 3:51 AM Alexander Stein
> <alexander.stein@ew.tq-group.com> wrote:
> >
> > Hi Laurent,
> >
> > Am Mittwoch, 29. November 2023, 16:16:37 CET schrieb Laurent Pinchart:
> > > Hi Alexander,
> > >
> > > On Wed, Nov 29, 2023 at 11:20:07AM +0100, Alexander Stein wrote:
> > > > Am Mittwoch, 29. November 2023, 10:31:13 CET schrieb Paul Elder:
> > > > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > >
> > > > > Add two overlay to enable each ISP instance. The ISP is wired directly
> > > > > to the CSIS for now, bypassing the ISI completely.
> > > >
> > > > I'm not sure if this is worth adding in a separate overlay.
> > >
> > > The trouble is that, at this point, selection between the ISP and the
> > > ISI can only be performed through DT :-S That's why this is implemented
> > > as an overlay.
> >
> > I feel a better place would be the overlay which actually adds the sensor.
> > This knows best whether ISI or ISP should be used.
> >
> > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> > > > > ---
> > > > >
> > > > >  arch/arm64/boot/dts/freescale/Makefile        |  2 ++
> > > > >  .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36 +++++++++++++++++++
> > > > >  .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36 +++++++++++++++++++
> > > > >  3 files changed, 74 insertions(+)
> > > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > >
> > > > > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > > > > b/arch/arm64/boot/dts/freescale/Makefile index
> > > > > 300049037eb0..f97dfac11189
> > > > > 100644
> > > > > --- a/arch/arm64/boot/dts/freescale/Makefile
> > > > > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > > > > @@ -113,6 +113,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
> > > > >
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
> > > > >
> > > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp1.dtbo
> > > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp2.dtbo
> > > > >
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
> > > > >
> > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso new file mode 100644
> > > > > index 000000000000..cf394ed224ab
> > > > > --- /dev/null
> > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > @@ -0,0 +1,36 @@
> > > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > > +/*
> > > > > + * Copyright 2022 Ideas on Board Oy
> > > > > + */
> > > > > +
> > > > > +/dts-v1/;
> > > > > +/plugin/;
> > > > > +
> > > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > > +
> > > > > +&isi_0 {
> > > > > + status = "disabled";
> > > >
> > > > ISI is disabled by default. What is your intention here?
> > >
> > > It could be enabled by an overlay for a camera module. Ideally we want
> > > to be able to enable both the ISI and ISP at runtime, but that's not
> > > possible yet and will require a very large amount of work.
> >
> > Again IMHO this is part of sensor setup, in a very specific overlay. To put it
> > into different words: I barely see the gain of this small overlay.
> >
> > Runtime switching would require a combined media controller including both ISI
> > and ISP, no?
> >
> > Best regards,
> > Alexander
> >
> > > > > +
> > > > > + ports {
> > > > > +         port@0 {
> > > > > +                 /delete-node/ endpoint;
> > > >
> > > > This doesn't work in overlays. See [1]. Otherwise the OF graph connections
> > > > look fine to me. I'm using the same in my local overlay.
> > >
> > > Interesting, I wasn't aware of that. Maybe we should fix it :-)
> 
> When I did my camera implementation, I thought it was simpler to:
> 
> /delete-node/ &isi_in_0;
> 
> it's a one-line change.
> 
> I would suggest we just drop the overlay and make users who have the
> cameras integrate the cameras and the isp routing into their
> respective overlays.
> 

I use these to factor out common parts between multiple cameras that can
be connected to multiple ports.

I can connect any of (Physically available to me right now)
 IMX219, IMX477, IMX708, GC2145, OV5640(7?) IMX335, IMX283, IMX519, Arducam64MP

to either of:

Debix-SOM-A Port CSI-1
Debix-SOM-A Port CSI-2

And I can connect those same cameras to two ports of a Pi5. So now
that's 27 overlays to manage the 9 cameras I have /on my desk/ to
connect to this board.

Uh Oh - sorry I can also connect them to a Debix Model A ... oh no ... I
need to stop thinking about what I can connect them to. I have rockchip
boards they'll work on too!

This explosion of overlays could be ... hard to manage. With /a lot/ of
repetition of the same data.


I'm not opposed to dropping these intermediate helper overlays, but I'd
be interested to know if anyone has ideas on how we could define
'connectors' and then abstract the cameras / overlays that can be moved
between different compatible ports.

The [RFC 0/3] Portable Device Tree Connector [0] might be interesting to
resurrect. Did that go anywhere?

[0] https://lore.kernel.org/all/1464986273-12039-1-git-send-email-pantelis.antoniou@konsulko.com/

--
Kieran

> adam
> > >
> > > > [1]
> > > > https://lore.kernel.org/all/CAMuHMdWu4KZbBkvEofUV2wuA1g2S=XHHM3RUN1cNrcZB
> > > > khsPZA@mail.gmail.com/>
> > > > > +         };
> > > > > + };
> > > > > +};
> > > > > +
> > > > > +&isp_0 {
> > > > > + status = "okay";
> > > > > +
> > > > > + ports {
> > > > > +         port@1 {
> > > > > +                 isp0_in: endpoint {
> > > > > +                         bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > > +                         remote-endpoint = <&mipi_csi_0_out>;
> > > > > +                 };
> > > > > +         };
> > > > > + };
> > > > > +};
> > > > > +
> > > > > +&mipi_csi_0_out {
> > > > > + remote-endpoint = <&isp0_in>;
> > > > > +};
> > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso new file mode 100644
> > > > > index 000000000000..14e2e7b2617f
> > > > > --- /dev/null
> > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > @@ -0,0 +1,36 @@
> > > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > > +/*
> > > > > + * Copyright 2022 Ideas on Board Oy
> > > > > + */
> > > > > +
> > > > > +/dts-v1/;
> > > > > +/plugin/;
> > > > > +
> > > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > > +
> > > > > +&isi_0 {
> > > > > + status = "disabled";
> > > > > +
> > > > > + ports {
> > > > > +         port@1 {
> > > > > +                 /delete-node/ endpoint;
> > > > > +         };
> > > > > + };
> > > > > +};
> > > > > +
> > > > > +&isp_1 {
> > > > > + status = "okay";
> > > > > +
> > > > > + ports {
> > > > > +         port@1 {
> > > > > +                 isp1_in: endpoint {
> > > > > +                         bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > > +                         remote-endpoint = <&mipi_csi_1_out>;
> > > > > +                 };
> > > > > +         };
> > > > > + };
> > > > > +};
> > > > > +
> > > > > +&mipi_csi_1_out {
> > > > > + remote-endpoint = <&isp1_in>;
> > > > > +};
> >
> >
> > --
> > TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> > Amtsgericht München, HRB 105018
> > Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> > http://www.tq-group.com/
> >
> >
> >

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances
  2023-11-30 14:02           ` Kieran Bingham
@ 2023-11-30 14:09             ` Adam Ford
  2023-11-30 14:22             ` Alexander Stein
  1 sibling, 0 replies; 22+ messages in thread
From: Adam Ford @ 2023-11-30 14:09 UTC (permalink / raw)
  To: Kieran Bingham
  Cc: Alexander Stein, Pantelis Antoniou, Laurent Pinchart,
	linux-media, devicetree, Paul Elder, tomi.valkeinen, umang.jain,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Tim Harvey, Philippe Schenker, Marek Vasut,
	Gregor Herburger, Marcel Ziswiler, open list,
	ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

On Thu, Nov 30, 2023 at 8:02 AM Kieran Bingham
<kieran.bingham@ideasonboard.com> wrote:
>
> + Pantellis
>
> Quoting Adam Ford (2023-11-30 13:48:58)
> > On Thu, Nov 30, 2023 at 3:51 AM Alexander Stein
> > <alexander.stein@ew.tq-group.com> wrote:
> > >
> > > Hi Laurent,
> > >
> > > Am Mittwoch, 29. November 2023, 16:16:37 CET schrieb Laurent Pinchart:
> > > > Hi Alexander,
> > > >
> > > > On Wed, Nov 29, 2023 at 11:20:07AM +0100, Alexander Stein wrote:
> > > > > Am Mittwoch, 29. November 2023, 10:31:13 CET schrieb Paul Elder:
> > > > > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > > >
> > > > > > Add two overlay to enable each ISP instance. The ISP is wired directly
> > > > > > to the CSIS for now, bypassing the ISI completely.
> > > > >
> > > > > I'm not sure if this is worth adding in a separate overlay.
> > > >
> > > > The trouble is that, at this point, selection between the ISP and the
> > > > ISI can only be performed through DT :-S That's why this is implemented
> > > > as an overlay.
> > >
> > > I feel a better place would be the overlay which actually adds the sensor.
> > > This knows best whether ISI or ISP should be used.
> > >
> > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> > > > > > ---
> > > > > >
> > > > > >  arch/arm64/boot/dts/freescale/Makefile        |  2 ++
> > > > > >  .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36 +++++++++++++++++++
> > > > > >  .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36 +++++++++++++++++++
> > > > > >  3 files changed, 74 insertions(+)
> > > > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > >
> > > > > > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > > > > > b/arch/arm64/boot/dts/freescale/Makefile index
> > > > > > 300049037eb0..f97dfac11189
> > > > > > 100644
> > > > > > --- a/arch/arm64/boot/dts/freescale/Makefile
> > > > > > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > > > > > @@ -113,6 +113,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
> > > > > >
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
> > > > > >
> > > > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp1.dtbo
> > > > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp2.dtbo
> > > > > >
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
> > > > > >
> > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso new file mode 100644
> > > > > > index 000000000000..cf394ed224ab
> > > > > > --- /dev/null
> > > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > > @@ -0,0 +1,36 @@
> > > > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > > > +/*
> > > > > > + * Copyright 2022 Ideas on Board Oy
> > > > > > + */
> > > > > > +
> > > > > > +/dts-v1/;
> > > > > > +/plugin/;
> > > > > > +
> > > > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > > > +
> > > > > > +&isi_0 {
> > > > > > + status = "disabled";
> > > > >
> > > > > ISI is disabled by default. What is your intention here?
> > > >
> > > > It could be enabled by an overlay for a camera module. Ideally we want
> > > > to be able to enable both the ISI and ISP at runtime, but that's not
> > > > possible yet and will require a very large amount of work.
> > >
> > > Again IMHO this is part of sensor setup, in a very specific overlay. To put it
> > > into different words: I barely see the gain of this small overlay.
> > >
> > > Runtime switching would require a combined media controller including both ISI
> > > and ISP, no?
> > >
> > > Best regards,
> > > Alexander
> > >
> > > > > > +
> > > > > > + ports {
> > > > > > +         port@0 {
> > > > > > +                 /delete-node/ endpoint;
> > > > >
> > > > > This doesn't work in overlays. See [1]. Otherwise the OF graph connections
> > > > > look fine to me. I'm using the same in my local overlay.
> > > >
> > > > Interesting, I wasn't aware of that. Maybe we should fix it :-)
> >
> > When I did my camera implementation, I thought it was simpler to:
> >
> > /delete-node/ &isi_in_0;
> >
> > it's a one-line change.
> >
> > I would suggest we just drop the overlay and make users who have the
> > cameras integrate the cameras and the isp routing into their
> > respective overlays.
> >
>
> I use these to factor out common parts between multiple cameras that can
> be connected to multiple ports.
>
> I can connect any of (Physically available to me right now)
>  IMX219, IMX477, IMX708, GC2145, OV5640(7?) IMX335, IMX283, IMX519, Arducam64MP
>
> to either of:
>
> Debix-SOM-A Port CSI-1
> Debix-SOM-A Port CSI-2
>
> And I can connect those same cameras to two ports of a Pi5. So now
> that's 27 overlays to manage the 9 cameras I have /on my desk/ to
> connect to this board.
>
> Uh Oh - sorry I can also connect them to a Debix Model A ... oh no ... I
> need to stop thinking about what I can connect them to. I have rockchip
> boards they'll work on too!
>
> This explosion of overlays could be ... hard to manage. With /a lot/ of
> repetition of the same data.
>

 That makes sense, I didn't think of it that way.

>
> I'm not opposed to dropping these intermediate helper overlays, but I'd
> be interested to know if anyone has ideas on how we could define
> 'connectors' and then abstract the cameras / overlays that can be moved
> between different compatible ports.
>
> The [RFC 0/3] Portable Device Tree Connector [0] might be interesting to
> resurrect. Did that go anywhere?
>
> [0] https://lore.kernel.org/all/1464986273-12039-1-git-send-email-pantelis.antoniou@konsulko.com/
>
> --
> Kieran
>
> > adam
> > > >
> > > > > [1]
> > > > > https://lore.kernel.org/all/CAMuHMdWu4KZbBkvEofUV2wuA1g2S=XHHM3RUN1cNrcZB
> > > > > khsPZA@mail.gmail.com/>
> > > > > > +         };
> > > > > > + };
> > > > > > +};
> > > > > > +
> > > > > > +&isp_0 {
> > > > > > + status = "okay";
> > > > > > +
> > > > > > + ports {
> > > > > > +         port@1 {
> > > > > > +                 isp0_in: endpoint {
> > > > > > +                         bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > > > +                         remote-endpoint = <&mipi_csi_0_out>;
> > > > > > +                 };
> > > > > > +         };
> > > > > > + };
> > > > > > +};
> > > > > > +
> > > > > > +&mipi_csi_0_out {
> > > > > > + remote-endpoint = <&isp0_in>;
> > > > > > +};
> > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso new file mode 100644
> > > > > > index 000000000000..14e2e7b2617f
> > > > > > --- /dev/null
> > > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > > @@ -0,0 +1,36 @@
> > > > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > > > +/*
> > > > > > + * Copyright 2022 Ideas on Board Oy
> > > > > > + */
> > > > > > +
> > > > > > +/dts-v1/;
> > > > > > +/plugin/;
> > > > > > +
> > > > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > > > +
> > > > > > +&isi_0 {
> > > > > > + status = "disabled";
> > > > > > +
> > > > > > + ports {
> > > > > > +         port@1 {
> > > > > > +                 /delete-node/ endpoint;
> > > > > > +         };
> > > > > > + };
> > > > > > +};
> > > > > > +
> > > > > > +&isp_1 {
> > > > > > + status = "okay";
> > > > > > +
> > > > > > + ports {
> > > > > > +         port@1 {
> > > > > > +                 isp1_in: endpoint {
> > > > > > +                         bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > > > +                         remote-endpoint = <&mipi_csi_1_out>;
> > > > > > +                 };
> > > > > > +         };
> > > > > > + };
> > > > > > +};
> > > > > > +
> > > > > > +&mipi_csi_1_out {
> > > > > > + remote-endpoint = <&isp1_in>;
> > > > > > +};
> > >
> > >
> > > --
> > > TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> > > Amtsgericht München, HRB 105018
> > > Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> > > http://www.tq-group.com/
> > >
> > >
> > >

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances
  2023-11-30  9:51       ` Alexander Stein
  2023-11-30 13:48         ` Adam Ford
@ 2023-11-30 14:20         ` Laurent Pinchart
  2023-11-30 15:34           ` Alexander Stein
  1 sibling, 1 reply; 22+ messages in thread
From: Laurent Pinchart @ 2023-11-30 14:20 UTC (permalink / raw)
  To: Alexander Stein
  Cc: linux-media, devicetree, Paul Elder, kieran.bingham,
	tomi.valkeinen, umang.jain, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Tim Harvey, Philippe Schenker,
	Marek Vasut, Gregor Herburger, Marcel Ziswiler, open list,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

Hi Alexander,

On Thu, Nov 30, 2023 at 10:51:22AM +0100, Alexander Stein wrote:
> Am Mittwoch, 29. November 2023, 16:16:37 CET schrieb Laurent Pinchart:
> > On Wed, Nov 29, 2023 at 11:20:07AM +0100, Alexander Stein wrote:
> > > Am Mittwoch, 29. November 2023, 10:31:13 CET schrieb Paul Elder:
> > > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > 
> > > > Add two overlay to enable each ISP instance. The ISP is wired directly
> > > > to the CSIS for now, bypassing the ISI completely.
> > > 
> > > I'm not sure if this is worth adding in a separate overlay.
> > 
> > The trouble is that, at this point, selection between the ISP and the
> > ISI can only be performed through DT :-S That's why this is implemented
> > as an overlay.
> 
> I feel a better place would be the overlay which actually adds the sensor. 
> This knows best whether ISI or ISP should be used.

Any sensor could be used with either the ISI or the ISP, so I don't
think the camera module overlay would be the best place for this. Unless
you want to duplicate all camera module overlays, with an ISI version
and an ISP version :-)

> > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> > > > ---
> > > > 
> > > >  arch/arm64/boot/dts/freescale/Makefile        |  2 ++
> > > >  .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36 +++++++++++++++++++
> > > >  .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36 +++++++++++++++++++
> > > >  3 files changed, 74 insertions(+)
> > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > 
> > > > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > > > b/arch/arm64/boot/dts/freescale/Makefile index
> > > > 300049037eb0..f97dfac11189
> > > > 100644
> > > > --- a/arch/arm64/boot/dts/freescale/Makefile
> > > > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > > > @@ -113,6 +113,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
> > > > 
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
> > > > 
> > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp1.dtbo
> > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp2.dtbo
> > > > 
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
> > > > 
> > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso new file mode 100644
> > > > index 000000000000..cf394ed224ab
> > > > --- /dev/null
> > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > @@ -0,0 +1,36 @@
> > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > +/*
> > > > + * Copyright 2022 Ideas on Board Oy
> > > > + */
> > > > +
> > > > +/dts-v1/;
> > > > +/plugin/;
> > > > +
> > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > +
> > > > +&isi_0 {
> > > > +	status = "disabled";
> > > 
> > > ISI is disabled by default. What is your intention here?
> > 
> > It could be enabled by an overlay for a camera module. Ideally we want
> > to be able to enable both the ISI and ISP at runtime, but that's not
> > possible yet and will require a very large amount of work.
> 
> Again IMHO this is part of sensor setup, in a very specific overlay. To put it 
> into different words: I barely see the gain of this small overlay.
> 
> Runtime switching would require a combined media controller including both ISI 
> and ISP, no?

Correct, that's the hard part.

> > > > +
> > > > +	ports {
> > > > +		port@0 {
> > > > +			/delete-node/ endpoint;
> > > 
> > > This doesn't work in overlays. See [1]. Otherwise the OF graph connections
> > > look fine to me. I'm using the same in my local overlay.
> > 
> > Interesting, I wasn't aware of that. Maybe we should fix it :-)
> > 
> > > [1] https://lore.kernel.org/all/CAMuHMdWu4KZbBkvEofUV2wuA1g2S=XHHM3RUN1cNrcZBkhsPZA@mail.gmail.com/
> > >
> > > > +		};
> > > > +	};
> > > > +};
> > > > +
> > > > +&isp_0 {
> > > > +	status = "okay";
> > > > +
> > > > +	ports {
> > > > +		port@1 {
> > > > +			isp0_in: endpoint {
> > > > +				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > +				remote-endpoint = <&mipi_csi_0_out>;
> > > > +			};
> > > > +		};
> > > > +	};
> > > > +};
> > > > +
> > > > +&mipi_csi_0_out {
> > > > +	remote-endpoint = <&isp0_in>;
> > > > +};
> > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso new file mode 100644
> > > > index 000000000000..14e2e7b2617f
> > > > --- /dev/null
> > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > @@ -0,0 +1,36 @@
> > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > +/*
> > > > + * Copyright 2022 Ideas on Board Oy
> > > > + */
> > > > +
> > > > +/dts-v1/;
> > > > +/plugin/;
> > > > +
> > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > +
> > > > +&isi_0 {
> > > > +	status = "disabled";
> > > > +
> > > > +	ports {
> > > > +		port@1 {
> > > > +			/delete-node/ endpoint;
> > > > +		};
> > > > +	};
> > > > +};
> > > > +
> > > > +&isp_1 {
> > > > +	status = "okay";
> > > > +
> > > > +	ports {
> > > > +		port@1 {
> > > > +			isp1_in: endpoint {
> > > > +				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > +				remote-endpoint = <&mipi_csi_1_out>;
> > > > +			};
> > > > +		};
> > > > +	};
> > > > +};
> > > > +
> > > > +&mipi_csi_1_out {
> > > > +	remote-endpoint = <&isp1_in>;
> > > > +};

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances
  2023-11-30 14:02           ` Kieran Bingham
  2023-11-30 14:09             ` Adam Ford
@ 2023-11-30 14:22             ` Alexander Stein
  1 sibling, 0 replies; 22+ messages in thread
From: Alexander Stein @ 2023-11-30 14:22 UTC (permalink / raw)
  To: Adam Ford, Pantelis Antoniou, Kieran Bingham
  Cc: Laurent Pinchart, linux-media, devicetree, Paul Elder,
	tomi.valkeinen, umang.jain, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Tim Harvey, Philippe Schenker,
	Marek Vasut, Gregor Herburger, Marcel Ziswiler, open list,
	ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

Hi Kieran,

Am Donnerstag, 30. November 2023, 15:02:36 CET schrieb Kieran Bingham:
> + Pantellis
> 
> Quoting Adam Ford (2023-11-30 13:48:58)
> 
> > On Thu, Nov 30, 2023 at 3:51 AM Alexander Stein
> > 
> > <alexander.stein@ew.tq-group.com> wrote:
> > > Hi Laurent,
> > > 
> > > Am Mittwoch, 29. November 2023, 16:16:37 CET schrieb Laurent Pinchart:
> > > > Hi Alexander,
> > > > 
> > > > On Wed, Nov 29, 2023 at 11:20:07AM +0100, Alexander Stein wrote:
> > > > > Am Mittwoch, 29. November 2023, 10:31:13 CET schrieb Paul Elder:
> > > > > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > > > 
> > > > > > Add two overlay to enable each ISP instance. The ISP is wired
> > > > > > directly
> > > > > > to the CSIS for now, bypassing the ISI completely.
> > > > > 
> > > > > I'm not sure if this is worth adding in a separate overlay.
> > > > 
> > > > The trouble is that, at this point, selection between the ISP and the
> > > > ISI can only be performed through DT :-S That's why this is
> > > > implemented
> > > > as an overlay.
> > > 
> > > I feel a better place would be the overlay which actually adds the
> > > sensor.
> > > This knows best whether ISI or ISP should be used.
> > > 
> > > > > > Signed-off-by: Laurent Pinchart
> > > > > > <laurent.pinchart@ideasonboard.com>
> > > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> > > > > > ---
> > > > > > 
> > > > > >  arch/arm64/boot/dts/freescale/Makefile        |  2 ++
> > > > > >  .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36
> > > > > >  +++++++++++++++++++
> > > > > >  .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36
> > > > > >  +++++++++++++++++++
> > > > > >  3 files changed, 74 insertions(+)
> > > > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > > 
> > > > > > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > > > > > b/arch/arm64/boot/dts/freescale/Makefile index
> > > > > > 300049037eb0..f97dfac11189
> > > > > > 100644
> > > > > > --- a/arch/arm64/boot/dts/freescale/Makefile
> > > > > > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > > > > > @@ -113,6 +113,8 @@ dtb-$(CONFIG_ARCH_MXC) +=
> > > > > > imx8mp-dhcom-pdk2.dtb
> > > > > > 
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
> > > > > > 
> > > > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp1.dtbo
> > > > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp2.dtbo
> > > > > > 
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
> > > > > > 
> > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso new file mode
> > > > > > 100644
> > > > > > index 000000000000..cf394ed224ab
> > > > > > --- /dev/null
> > > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > > @@ -0,0 +1,36 @@
> > > > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > > > +/*
> > > > > > + * Copyright 2022 Ideas on Board Oy
> > > > > > + */
> > > > > > +
> > > > > > +/dts-v1/;
> > > > > > +/plugin/;
> > > > > > +
> > > > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > > > +
> > > > > > +&isi_0 {
> > > > > > + status = "disabled";
> > > > > 
> > > > > ISI is disabled by default. What is your intention here?
> > > > 
> > > > It could be enabled by an overlay for a camera module. Ideally we want
> > > > to be able to enable both the ISI and ISP at runtime, but that's not
> > > > possible yet and will require a very large amount of work.
> > > 
> > > Again IMHO this is part of sensor setup, in a very specific overlay. To
> > > put it into different words: I barely see the gain of this small
> > > overlay.
> > > 
> > > Runtime switching would require a combined media controller including
> > > both ISI and ISP, no?
> > > 
> > > Best regards,
> > > Alexander
> > > 
> > > > > > +
> > > > > > + ports {
> > > > > > +         port@0 {
> > > > > > +                 /delete-node/ endpoint;
> > > > > 
> > > > > This doesn't work in overlays. See [1]. Otherwise the OF graph
> > > > > connections
> > > > > look fine to me. I'm using the same in my local overlay.
> > > > 
> > > > Interesting, I wasn't aware of that. Maybe we should fix it :-)
> > 
> > When I did my camera implementation, I thought it was simpler to:
> > 
> > /delete-node/ &isi_in_0;
> > 
> > it's a one-line change.
> > 
> > I would suggest we just drop the overlay and make users who have the
> > cameras integrate the cameras and the isp routing into their
> > respective overlays.
> 
> I use these to factor out common parts between multiple cameras that can
> be connected to multiple ports.
> 
> I can connect any of (Physically available to me right now)
>  IMX219, IMX477, IMX708, GC2145, OV5640(7?) IMX335, IMX283, IMX519,
> Arducam64MP
> 
> to either of:
> 
> Debix-SOM-A Port CSI-1
> Debix-SOM-A Port CSI-2
> 
> And I can connect those same cameras to two ports of a Pi5. So now
> that's 27 overlays to manage the 9 cameras I have /on my desk/ to
> connect to this board.
> 
> Uh Oh - sorry I can also connect them to a Debix Model A ... oh no ... I
> need to stop thinking about what I can connect them to. I have rockchip
> boards they'll work on too!
> 
> This explosion of overlays could be ... hard to manage. With /a lot/ of
> repetition of the same data.

Maybe I am missing something, but how can the intermediate overlay reduce this 
amount of overlays? At least the remote-endpoint of the sensor needs the CSI 
endpoint, which is different for CSI1/CSI2, and vice versa.
I do not have rockchip hardware, but I would not assume the CSI endpoint to 
not have the same label, so the phandle reference is different there as well.

> 
> I'm not opposed to dropping these intermediate helper overlays, but I'd
> be interested to know if anyone has ideas on how we could define
> 'connectors' and then abstract the cameras / overlays that can be moved
> between different compatible ports.

You still would have the naming problem. How do you identify a connector? It's 
similar to label naming on device tree nodes.

Best regards,
Alexander

> The [RFC 0/3] Portable Device Tree Connector [0] might be interesting to
> resurrect. Did that go anywhere?
> 
> [0]
> https://lore.kernel.org/all/1464986273-12039-1-git-send-email-pantelis.anto
> niou@konsulko.com/
> 
> --
> Kieran
> 
> > adam
> > 
> > > > > [1]
> > > > > https://lore.kernel.org/all/CAMuHMdWu4KZbBkvEofUV2wuA1g2S=XHHM3RUN1c
> > > > > NrcZB
> > > > > khsPZA@mail.gmail.com/>
> > > > > 
> > > > > > +         };
> > > > > > + };
> > > > > > +};
> > > > > > +
> > > > > > +&isp_0 {
> > > > > > + status = "okay";
> > > > > > +
> > > > > > + ports {
> > > > > > +         port@1 {
> > > > > > +                 isp0_in: endpoint {
> > > > > > +                         bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > > > +                         remote-endpoint = <&mipi_csi_0_out>;
> > > > > > +                 };
> > > > > > +         };
> > > > > > + };
> > > > > > +};
> > > > > > +
> > > > > > +&mipi_csi_0_out {
> > > > > > + remote-endpoint = <&isp0_in>;
> > > > > > +};
> > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso new file mode
> > > > > > 100644
> > > > > > index 000000000000..14e2e7b2617f
> > > > > > --- /dev/null
> > > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > > @@ -0,0 +1,36 @@
> > > > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > > > +/*
> > > > > > + * Copyright 2022 Ideas on Board Oy
> > > > > > + */
> > > > > > +
> > > > > > +/dts-v1/;
> > > > > > +/plugin/;
> > > > > > +
> > > > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > > > +
> > > > > > +&isi_0 {
> > > > > > + status = "disabled";
> > > > > > +
> > > > > > + ports {
> > > > > > +         port@1 {
> > > > > > +                 /delete-node/ endpoint;
> > > > > > +         };
> > > > > > + };
> > > > > > +};
> > > > > > +
> > > > > > +&isp_1 {
> > > > > > + status = "okay";
> > > > > > +
> > > > > > + ports {
> > > > > > +         port@1 {
> > > > > > +                 isp1_in: endpoint {
> > > > > > +                         bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > > > +                         remote-endpoint = <&mipi_csi_1_out>;
> > > > > > +                 };
> > > > > > +         };
> > > > > > + };
> > > > > > +};
> > > > > > +
> > > > > > +&mipi_csi_1_out {
> > > > > > + remote-endpoint = <&isp1_in>;
> > > > > > +};
> > > 
> > > --
> > > TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> > > Amtsgericht München, HRB 105018
> > > Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> > > http://www.tq-group.com/


-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances
  2023-11-30 14:20         ` Laurent Pinchart
@ 2023-11-30 15:34           ` Alexander Stein
  2023-11-30 15:54             ` Laurent Pinchart
  0 siblings, 1 reply; 22+ messages in thread
From: Alexander Stein @ 2023-11-30 15:34 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: linux-media, devicetree, Paul Elder, kieran.bingham,
	tomi.valkeinen, umang.jain, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Tim Harvey, Philippe Schenker,
	Marek Vasut, Gregor Herburger, Marcel Ziswiler, open list,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

Hi Laurent,

Am Donnerstag, 30. November 2023, 15:20:48 CET schrieb Laurent Pinchart:
> Hi Alexander,
> 
> On Thu, Nov 30, 2023 at 10:51:22AM +0100, Alexander Stein wrote:
> > Am Mittwoch, 29. November 2023, 16:16:37 CET schrieb Laurent Pinchart:
> > > On Wed, Nov 29, 2023 at 11:20:07AM +0100, Alexander Stein wrote:
> > > > Am Mittwoch, 29. November 2023, 10:31:13 CET schrieb Paul Elder:
> > > > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > > 
> > > > > Add two overlay to enable each ISP instance. The ISP is wired
> > > > > directly
> > > > > to the CSIS for now, bypassing the ISI completely.
> > > > 
> > > > I'm not sure if this is worth adding in a separate overlay.
> > > 
> > > The trouble is that, at this point, selection between the ISP and the
> > > ISI can only be performed through DT :-S That's why this is implemented
> > > as an overlay.
> > 
> > I feel a better place would be the overlay which actually adds the sensor.
> > This knows best whether ISI or ISP should be used.
> 
> Any sensor could be used with either the ISI or the ISP, so I don't
> think the camera module overlay would be the best place for this. Unless
> you want to duplicate all camera module overlays, with an ISI version
> and an ISP version :-)

True, that's a really good argument for having these small overlays.
But how to deal with dtc warnings?
> imx8mp-isp1.dtbo: Warning (graph_port): /fragment@2: graph port node name 
should be 'port'
> imx8mp-isp1.dtso:34.17-36.3: Warning (graph_endpoint): /fragment@2/
__overlay__: graph endpoint node name should be 'endpoint'
> imx8mp-isp1.dtso:34.17-36.3: Warning (graph_endpoint): /fragment@2/
__overlay__: graph connection to node '/fragment@1/__overlay__/ports/port@1/
endpoint' is not bidirectional

But for the small overlay itself:
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com>

> > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> > > > > ---
> > > > > 
> > > > >  arch/arm64/boot/dts/freescale/Makefile        |  2 ++
> > > > >  .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36
> > > > >  +++++++++++++++++++
> > > > >  .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36
> > > > >  +++++++++++++++++++
> > > > >  3 files changed, 74 insertions(+)
> > > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > 
> > > > > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > > > > b/arch/arm64/boot/dts/freescale/Makefile index
> > > > > 300049037eb0..f97dfac11189
> > > > > 100644
> > > > > --- a/arch/arm64/boot/dts/freescale/Makefile
> > > > > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > > > > @@ -113,6 +113,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
> > > > > 
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
> > > > > 
> > > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp1.dtbo
> > > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp2.dtbo
> > > > > 
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
> > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
> > > > > 
> > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso new file mode
> > > > > 100644
> > > > > index 000000000000..cf394ed224ab
> > > > > --- /dev/null
> > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > @@ -0,0 +1,36 @@
> > > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > > +/*
> > > > > + * Copyright 2022 Ideas on Board Oy
> > > > > + */
> > > > > +
> > > > > +/dts-v1/;
> > > > > +/plugin/;
> > > > > +
> > > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > > +
> > > > > +&isi_0 {
> > > > > +	status = "disabled";
> > > > 
> > > > ISI is disabled by default. What is your intention here?
> > > 
> > > It could be enabled by an overlay for a camera module. Ideally we want
> > > to be able to enable both the ISI and ISP at runtime, but that's not
> > > possible yet and will require a very large amount of work.
> > 
> > Again IMHO this is part of sensor setup, in a very specific overlay. To
> > put it into different words: I barely see the gain of this small overlay.
> > 
> > Runtime switching would require a combined media controller including both
> > ISI and ISP, no?
> 
> Correct, that's the hard part.
> 
> > > > > +
> > > > > +	ports {
> > > > > +		port@0 {
> > > > > +			/delete-node/ endpoint;
> > > > 
> > > > This doesn't work in overlays. See [1]. Otherwise the OF graph
> > > > connections
> > > > look fine to me. I'm using the same in my local overlay.
> > > 
> > > Interesting, I wasn't aware of that. Maybe we should fix it :-)
> > > 
> > > > [1]
> > > > https://lore.kernel.org/all/CAMuHMdWu4KZbBkvEofUV2wuA1g2S=XHHM3RUN1cN
> > > > rcZBkhsPZA@mail.gmail.com/> > > 
> > > > > +		};
> > > > > +	};
> > > > > +};
> > > > > +
> > > > > +&isp_0 {
> > > > > +	status = "okay";
> > > > > +
> > > > > +	ports {
> > > > > +		port@1 {
> > > > > +			isp0_in: endpoint {
> > > > > +				bus-type = 
<MEDIA_BUS_TYPE_PARALLEL>;
> > > > > +				remote-endpoint = 
<&mipi_csi_0_out>;
> > > > > +			};
> > > > > +		};
> > > > > +	};
> > > > > +};
> > > > > +
> > > > > +&mipi_csi_0_out {
> > > > > +	remote-endpoint = <&isp0_in>;
> > > > > +};
> > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso new file mode
> > > > > 100644
> > > > > index 000000000000..14e2e7b2617f
> > > > > --- /dev/null
> > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > @@ -0,0 +1,36 @@
> > > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > > +/*
> > > > > + * Copyright 2022 Ideas on Board Oy
> > > > > + */
> > > > > +
> > > > > +/dts-v1/;
> > > > > +/plugin/;
> > > > > +
> > > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > > +
> > > > > +&isi_0 {
> > > > > +	status = "disabled";
> > > > > +
> > > > > +	ports {
> > > > > +		port@1 {
> > > > > +			/delete-node/ endpoint;
> > > > > +		};
> > > > > +	};
> > > > > +};
> > > > > +
> > > > > +&isp_1 {
> > > > > +	status = "okay";
> > > > > +
> > > > > +	ports {
> > > > > +		port@1 {
> > > > > +			isp1_in: endpoint {
> > > > > +				bus-type = 
<MEDIA_BUS_TYPE_PARALLEL>;
> > > > > +				remote-endpoint = 
<&mipi_csi_1_out>;
> > > > > +			};
> > > > > +		};
> > > > > +	};
> > > > > +};
> > > > > +
> > > > > +&mipi_csi_1_out {
> > > > > +	remote-endpoint = <&isp1_in>;
> > > > > +};


-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances
  2023-11-30 15:34           ` Alexander Stein
@ 2023-11-30 15:54             ` Laurent Pinchart
  0 siblings, 0 replies; 22+ messages in thread
From: Laurent Pinchart @ 2023-11-30 15:54 UTC (permalink / raw)
  To: Alexander Stein
  Cc: linux-media, devicetree, Paul Elder, kieran.bingham,
	tomi.valkeinen, umang.jain, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Tim Harvey, Philippe Schenker,
	Marek Vasut, Gregor Herburger, Marcel Ziswiler, open list,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE

On Thu, Nov 30, 2023 at 04:34:11PM +0100, Alexander Stein wrote:
> Am Donnerstag, 30. November 2023, 15:20:48 CET schrieb Laurent Pinchart:
> > On Thu, Nov 30, 2023 at 10:51:22AM +0100, Alexander Stein wrote:
> > > Am Mittwoch, 29. November 2023, 16:16:37 CET schrieb Laurent Pinchart:
> > > > On Wed, Nov 29, 2023 at 11:20:07AM +0100, Alexander Stein wrote:
> > > > > Am Mittwoch, 29. November 2023, 10:31:13 CET schrieb Paul Elder:
> > > > > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > > > 
> > > > > > Add two overlay to enable each ISP instance. The ISP is wired
> > > > > > directly
> > > > > > to the CSIS for now, bypassing the ISI completely.
> > > > > 
> > > > > I'm not sure if this is worth adding in a separate overlay.
> > > > 
> > > > The trouble is that, at this point, selection between the ISP and the
> > > > ISI can only be performed through DT :-S That's why this is implemented
> > > > as an overlay.
> > > 
> > > I feel a better place would be the overlay which actually adds the sensor.
> > > This knows best whether ISI or ISP should be used.
> > 
> > Any sensor could be used with either the ISI or the ISP, so I don't
> > think the camera module overlay would be the best place for this. Unless
> > you want to duplicate all camera module overlays, with an ISI version
> > and an ISP version :-)
> 
> True, that's a really good argument for having these small overlays.
> But how to deal with dtc warnings?
> > imx8mp-isp1.dtbo: Warning (graph_port): /fragment@2: graph port node name 
> should be 'port'
> > imx8mp-isp1.dtso:34.17-36.3: Warning (graph_endpoint): /fragment@2/
> __overlay__: graph endpoint node name should be 'endpoint'
> > imx8mp-isp1.dtso:34.17-36.3: Warning (graph_endpoint): /fragment@2/
> __overlay__: graph connection to node '/fragment@1/__overlay__/ports/port@1/
> endpoint' is not bidirectional

See below :-)

> But for the small overlay itself:
> Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com>
> 
> > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> > > > > > ---
> > > > > > 
> > > > > >  arch/arm64/boot/dts/freescale/Makefile        |  2 ++
> > > > > >  .../arm64/boot/dts/freescale/imx8mp-isp1.dtso | 36 +++++++++++++++++++
> > > > > >  .../arm64/boot/dts/freescale/imx8mp-isp2.dtso | 36 +++++++++++++++++++
> > > > > >  3 files changed, 74 insertions(+)
> > > > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > > 
> > > > > > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > > > > > b/arch/arm64/boot/dts/freescale/Makefile index
> > > > > > 300049037eb0..f97dfac11189
> > > > > > 100644
> > > > > > --- a/arch/arm64/boot/dts/freescale/Makefile
> > > > > > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > > > > > @@ -113,6 +113,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
> > > > > > 
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
> > > > > > 
> > > > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp1.dtbo
> > > > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-isp2.dtbo

Overlays need to be validated in the context of a base DT on which they
apply. For instance, in the same Makefile, we have

--------
dtb-$(CONFIG_ARCH_MXC) += imx8mm-tqma8mqml-mba8mx.dtb
...
imx8mm-tqma8mqml-mba8mx-lvds-tm070jvhg33-dtbs += imx8mm-tqma8mqml-mba8mx.dtb imx8mm-tqma8mqml-mba8mx-lvds-tm070jvhg33.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mm-tqma8mqml-mba8mx-lvds-tm070jvhg33.dtb
--------

imx8mm-tqma8mqml-mba8mx.dts is the base board DT, and
imx8mm-tqma8mqml-mba8mx-lvds-tm070jvhg33.dtso the overlay. As far as I
understand, when compiling dtbs, the build system will compile
imx8mm-tqma8mqml-mba8mx.dtb and
imx8mm-tqma8mqml-mba8mx-lvds-tm070jvhg33-dtb. To create the latter, it
will compile imx8mm-tqma8mqml-mba8mx-lvds-tm070jvhg33.dtbo and apply it
to imx8mm-tqma8mqml-mba8mx.dtb. Then, it will validate the DTBs
specified as part of dtb-$(CONFIG_ARCH_MXC), which are
imx8mm-tqma8mqml-mba8mx.dtb standlone, and through
imx8mm-tqma8mqml-mba8mx-lvds-tm070jvhg33-dtbs
imx8mm-tqma8mqml-mba8mx.dtb with the overlay applied.

TL;DR: a v2 of this patch should fix the Makefile, and be compile-tested
with make dtbs.

Rob, Conor or Krzysztof can correct me if I'm wrong.

> > > > > > 
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
> > > > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
> > > > > > 
> > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso new file mode
> > > > > > 100644
> > > > > > index 000000000000..cf394ed224ab
> > > > > > --- /dev/null
> > > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp1.dtso
> > > > > > @@ -0,0 +1,36 @@
> > > > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > > > +/*
> > > > > > + * Copyright 2022 Ideas on Board Oy
> > > > > > + */
> > > > > > +
> > > > > > +/dts-v1/;
> > > > > > +/plugin/;
> > > > > > +
> > > > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > > > +
> > > > > > +&isi_0 {
> > > > > > +	status = "disabled";
> > > > > 
> > > > > ISI is disabled by default. What is your intention here?
> > > > 
> > > > It could be enabled by an overlay for a camera module. Ideally we want
> > > > to be able to enable both the ISI and ISP at runtime, but that's not
> > > > possible yet and will require a very large amount of work.
> > > 
> > > Again IMHO this is part of sensor setup, in a very specific overlay. To
> > > put it into different words: I barely see the gain of this small overlay.
> > > 
> > > Runtime switching would require a combined media controller including both
> > > ISI and ISP, no?
> > 
> > Correct, that's the hard part.
> > 
> > > > > > +
> > > > > > +	ports {
> > > > > > +		port@0 {
> > > > > > +			/delete-node/ endpoint;
> > > > > 
> > > > > This doesn't work in overlays. See [1]. Otherwise the OF graph
> > > > > connections
> > > > > look fine to me. I'm using the same in my local overlay.
> > > > 
> > > > Interesting, I wasn't aware of that. Maybe we should fix it :-)
> > > > 
> > > > > [1] https://lore.kernel.org/all/CAMuHMdWu4KZbBkvEofUV2wuA1g2S=XHHM3RUN1cNrcZBkhsPZA@mail.gmail.com/
> > > > > 
> > > > > > +		};
> > > > > > +	};
> > > > > > +};
> > > > > > +
> > > > > > +&isp_0 {
> > > > > > +	status = "okay";
> > > > > > +
> > > > > > +	ports {
> > > > > > +		port@1 {
> > > > > > +			isp0_in: endpoint {
> > > > > > +				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > > > +				remote-endpoint = <&mipi_csi_0_out>;
> > > > > > +			};
> > > > > > +		};
> > > > > > +	};
> > > > > > +};
> > > > > > +
> > > > > > +&mipi_csi_0_out {
> > > > > > +	remote-endpoint = <&isp0_in>;
> > > > > > +};
> > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > > b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso new file mode
> > > > > > 100644
> > > > > > index 000000000000..14e2e7b2617f
> > > > > > --- /dev/null
> > > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-isp2.dtso
> > > > > > @@ -0,0 +1,36 @@
> > > > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > > > +/*
> > > > > > + * Copyright 2022 Ideas on Board Oy
> > > > > > + */
> > > > > > +
> > > > > > +/dts-v1/;
> > > > > > +/plugin/;
> > > > > > +
> > > > > > +#include <dt-bindings/media/video-interfaces.h>
> > > > > > +
> > > > > > +&isi_0 {
> > > > > > +	status = "disabled";
> > > > > > +
> > > > > > +	ports {
> > > > > > +		port@1 {
> > > > > > +			/delete-node/ endpoint;
> > > > > > +		};
> > > > > > +	};
> > > > > > +};
> > > > > > +
> > > > > > +&isp_1 {
> > > > > > +	status = "okay";
> > > > > > +
> > > > > > +	ports {
> > > > > > +		port@1 {
> > > > > > +			isp1_in: endpoint {
> > > > > > +				bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
> > > > > > +				remote-endpoint = <&mipi_csi_1_out>;
> > > > > > +			};
> > > > > > +		};
> > > > > > +	};
> > > > > > +};
> > > > > > +
> > > > > > +&mipi_csi_1_out {
> > > > > > +	remote-endpoint = <&isp1_in>;
> > > > > > +};

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs
  2023-11-29  9:31 ` [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs Paul Elder
  2023-11-29 10:17   ` Alexander Stein
  2023-11-29 11:59   ` Fabio Estevam
@ 2024-03-20 12:35   ` Adam Ford
  2024-03-25 15:14     ` Laurent Pinchart
  2 siblings, 1 reply; 22+ messages in thread
From: Adam Ford @ 2024-03-20 12:35 UTC (permalink / raw)
  To: Paul Elder
  Cc: linux-media, devicetree, kieran.bingham, tomi.valkeinen,
	umang.jain, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Marek Vasut, Alexander Stein, Lucas Stach,
	Laurent Pinchart, Frank Li,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	open list

On Wed, Nov 29, 2023 at 3:31 AM Paul Elder <paul.elder@ideasonboard.com> wrote:
>
> The ISP supports both CSI and parallel interfaces, where port 0
> corresponds to the former and port 1 corresponds to the latter. Since
> the i.MX8MP's ISPs are connected by the parallel interface to the CSI
> receiver, set them both to port 1.
>
> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>

Paul, are you able to resend this now that the driver part has been
merged into the main branch?

If you can't, I can resend it on your behalf.

thanks,

adam

> ---
>  arch/arm64/boot/dts/freescale/imx8mp.dtsi | 50 +++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> index c9a610ba4836..25579d4c58f2 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> @@ -1604,6 +1604,56 @@ isi_in_1: endpoint {
>                                 };
>                         };
>
> +                       isp_0: isp@32e10000 {
> +                               compatible = "fsl,imx8mp-isp";
> +                               reg = <0x32e10000 0x10000>;
> +                               interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
> +                               clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
> +                                        <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> +                                        <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> +                               clock-names = "isp", "aclk", "hclk";
> +                               assigned-clocks = <&clk IMX8MP_CLK_MEDIA_ISP>;
> +                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
> +                               assigned-clock-rates = <500000000>;
> +                               power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>;
> +                               fsl,blk-ctrl = <&media_blk_ctrl 0>;
> +                               status = "disabled";
> +
> +                               ports {
> +                                       #address-cells = <1>;
> +                                       #size-cells = <0>;
> +
> +                                       port@1 {
> +                                               reg = <1>;
> +                                       };
> +                               };
> +                       };
> +
> +                       isp_1: isp@32e20000 {
> +                               compatible = "fsl,imx8mp-isp";
> +                               reg = <0x32e20000 0x10000>;
> +                               interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
> +                               clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
> +                                        <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> +                                        <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> +                               clock-names = "isp", "aclk", "hclk";
> +                               assigned-clocks = <&clk IMX8MP_CLK_MEDIA_ISP>;
> +                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
> +                               assigned-clock-rates = <500000000>;
> +                               power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>;
> +                               fsl,blk-ctrl = <&media_blk_ctrl 1>;
> +                               status = "disabled";
> +
> +                               ports {
> +                                       #address-cells = <1>;
> +                                       #size-cells = <0>;
> +
> +                                       port@1 {
> +                                               reg = <1>;
> +                                       };
> +                               };
> +                       };
> +
>                         dewarp: dwe@32e30000 {
>                                 compatible = "nxp,imx8mp-dw100";
>                                 reg = <0x32e30000 0x10000>;
> --
> 2.39.2
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs
  2024-03-20 12:35   ` Adam Ford
@ 2024-03-25 15:14     ` Laurent Pinchart
  2024-03-25 15:17       ` Adam Ford
  0 siblings, 1 reply; 22+ messages in thread
From: Laurent Pinchart @ 2024-03-25 15:14 UTC (permalink / raw)
  To: Adam Ford
  Cc: Paul Elder, linux-media, devicetree, kieran.bingham,
	tomi.valkeinen, umang.jain, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Marek Vasut, Alexander Stein,
	Lucas Stach, Frank Li,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	open list

Hi Adam,

On Wed, Mar 20, 2024 at 07:35:46AM -0500, Adam Ford wrote:
> On Wed, Nov 29, 2023 at 3:31 AM Paul Elder wrote:
> >
> > The ISP supports both CSI and parallel interfaces, where port 0
> > corresponds to the former and port 1 corresponds to the latter. Since
> > the i.MX8MP's ISPs are connected by the parallel interface to the CSI
> > receiver, set them both to port 1.
> >
> > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> 
> Paul, are you able to resend this now that the driver part has been
> merged into the main branch?
> 
> If you can't, I can resend it on your behalf.

I've just sent a v2, you're on CC.

> > ---
> >  arch/arm64/boot/dts/freescale/imx8mp.dtsi | 50 +++++++++++++++++++++++
> >  1 file changed, 50 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > index c9a610ba4836..25579d4c58f2 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > @@ -1604,6 +1604,56 @@ isi_in_1: endpoint {
> >                                 };
> >                         };
> >
> > +                       isp_0: isp@32e10000 {
> > +                               compatible = "fsl,imx8mp-isp";
> > +                               reg = <0x32e10000 0x10000>;
> > +                               interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
> > +                               clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
> > +                                        <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> > +                                        <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> > +                               clock-names = "isp", "aclk", "hclk";
> > +                               assigned-clocks = <&clk IMX8MP_CLK_MEDIA_ISP>;
> > +                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
> > +                               assigned-clock-rates = <500000000>;
> > +                               power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>;
> > +                               fsl,blk-ctrl = <&media_blk_ctrl 0>;
> > +                               status = "disabled";
> > +
> > +                               ports {
> > +                                       #address-cells = <1>;
> > +                                       #size-cells = <0>;
> > +
> > +                                       port@1 {
> > +                                               reg = <1>;
> > +                                       };
> > +                               };
> > +                       };
> > +
> > +                       isp_1: isp@32e20000 {
> > +                               compatible = "fsl,imx8mp-isp";
> > +                               reg = <0x32e20000 0x10000>;
> > +                               interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
> > +                               clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
> > +                                        <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> > +                                        <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> > +                               clock-names = "isp", "aclk", "hclk";
> > +                               assigned-clocks = <&clk IMX8MP_CLK_MEDIA_ISP>;
> > +                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
> > +                               assigned-clock-rates = <500000000>;
> > +                               power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>;
> > +                               fsl,blk-ctrl = <&media_blk_ctrl 1>;
> > +                               status = "disabled";
> > +
> > +                               ports {
> > +                                       #address-cells = <1>;
> > +                                       #size-cells = <0>;
> > +
> > +                                       port@1 {
> > +                                               reg = <1>;
> > +                                       };
> > +                               };
> > +                       };
> > +
> >                         dewarp: dwe@32e30000 {
> >                                 compatible = "nxp,imx8mp-dw100";
> >                                 reg = <0x32e30000 0x10000>;

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs
  2024-03-25 15:14     ` Laurent Pinchart
@ 2024-03-25 15:17       ` Adam Ford
  0 siblings, 0 replies; 22+ messages in thread
From: Adam Ford @ 2024-03-25 15:17 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Paul Elder, linux-media, devicetree, kieran.bingham,
	tomi.valkeinen, umang.jain, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Marek Vasut, Alexander Stein,
	Lucas Stach, Frank Li,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	open list

On Mon, Mar 25, 2024 at 10:14 AM Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Adam,
>
> On Wed, Mar 20, 2024 at 07:35:46AM -0500, Adam Ford wrote:
> > On Wed, Nov 29, 2023 at 3:31 AM Paul Elder wrote:
> > >
> > > The ISP supports both CSI and parallel interfaces, where port 0
> > > corresponds to the former and port 1 corresponds to the latter. Since
> > > the i.MX8MP's ISPs are connected by the parallel interface to the CSI
> > > receiver, set them both to port 1.
> > >
> > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> >
> > Paul, are you able to resend this now that the driver part has been
> > merged into the main branch?
> >
> > If you can't, I can resend it on your behalf.
>
> I've just sent a v2, you're on CC.

Thanks!

adam
>
> > > ---
> > >  arch/arm64/boot/dts/freescale/imx8mp.dtsi | 50 +++++++++++++++++++++++
> > >  1 file changed, 50 insertions(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > > index c9a610ba4836..25579d4c58f2 100644
> > > --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > > +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > > @@ -1604,6 +1604,56 @@ isi_in_1: endpoint {
> > >                                 };
> > >                         };
> > >
> > > +                       isp_0: isp@32e10000 {
> > > +                               compatible = "fsl,imx8mp-isp";
> > > +                               reg = <0x32e10000 0x10000>;
> > > +                               interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
> > > +                               clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
> > > +                                        <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> > > +                                        <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> > > +                               clock-names = "isp", "aclk", "hclk";
> > > +                               assigned-clocks = <&clk IMX8MP_CLK_MEDIA_ISP>;
> > > +                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
> > > +                               assigned-clock-rates = <500000000>;
> > > +                               power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>;
> > > +                               fsl,blk-ctrl = <&media_blk_ctrl 0>;
> > > +                               status = "disabled";
> > > +
> > > +                               ports {
> > > +                                       #address-cells = <1>;
> > > +                                       #size-cells = <0>;
> > > +
> > > +                                       port@1 {
> > > +                                               reg = <1>;
> > > +                                       };
> > > +                               };
> > > +                       };
> > > +
> > > +                       isp_1: isp@32e20000 {
> > > +                               compatible = "fsl,imx8mp-isp";
> > > +                               reg = <0x32e20000 0x10000>;
> > > +                               interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
> > > +                               clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
> > > +                                        <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> > > +                                        <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> > > +                               clock-names = "isp", "aclk", "hclk";
> > > +                               assigned-clocks = <&clk IMX8MP_CLK_MEDIA_ISP>;
> > > +                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
> > > +                               assigned-clock-rates = <500000000>;
> > > +                               power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>;
> > > +                               fsl,blk-ctrl = <&media_blk_ctrl 1>;
> > > +                               status = "disabled";
> > > +
> > > +                               ports {
> > > +                                       #address-cells = <1>;
> > > +                                       #size-cells = <0>;
> > > +
> > > +                                       port@1 {
> > > +                                               reg = <1>;
> > > +                                       };
> > > +                               };
> > > +                       };
> > > +
> > >                         dewarp: dwe@32e30000 {
> > >                                 compatible = "nxp,imx8mp-dw100";
> > >                                 reg = <0x32e30000 0x10000>;
>
> --
> Regards,
>
> Laurent Pinchart

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2024-03-25 15:17 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-29  9:31 [PATCH 0/2] arm64: dts: imx8mp: Add support for the ISPs Paul Elder
2023-11-29  9:31 ` [PATCH 1/2] arm64: dts: imx8mp: Add DT nodes for the two ISPs Paul Elder
2023-11-29 10:17   ` Alexander Stein
2023-11-29 11:59   ` Fabio Estevam
2023-11-29 13:49     ` Adam Ford
2023-11-29 14:26       ` Fabio Estevam
2023-11-29 14:44       ` Laurent Pinchart
2024-03-20 12:35   ` Adam Ford
2024-03-25 15:14     ` Laurent Pinchart
2024-03-25 15:17       ` Adam Ford
2023-11-29  9:31 ` [PATCH 2/2] arm64: dts: imx8mp: Add overlays for ISP instances Paul Elder
2023-11-29 10:20   ` Alexander Stein
2023-11-29 15:16     ` Laurent Pinchart
2023-11-30  9:51       ` Alexander Stein
2023-11-30 13:48         ` Adam Ford
2023-11-30 14:02           ` Kieran Bingham
2023-11-30 14:09             ` Adam Ford
2023-11-30 14:22             ` Alexander Stein
2023-11-30 14:20         ` Laurent Pinchart
2023-11-30 15:34           ` Alexander Stein
2023-11-30 15:54             ` Laurent Pinchart
2023-11-29 11:16 ` [PATCH 0/2] arm64: dts: imx8mp: Add support for the ISPs Tommaso Merciai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).