Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] arm64: dts: st: enable camera on stm32mp2x-dk and correct stm32mp2x-ev
@ 2026-09-14  6:54 Alain Volmat
  2026-09-14  6:54 ` [PATCH 1/4] arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp257f-dk Alain Volmat
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Alain Volmat @ 2026-09-14  6:54 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
	Alexandre Torgue
  Cc: devicetree, linux-stm32, linux-arm-kernel, linux-kernel,
	Alain Volmat, Hugues Fruchet

This series enables the camera pipeline on stm32mp235f-dk and
stm32mp257f-dk boards via usage of the CSI IMX335 sensor connected
to the CSI / DCMIPP of the STM32MP2x.
It also perform 2 corrections to the stm32mp257f-ev1 board to ensure
that the IMX335 is well enabled.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
---
Alain Volmat (4):
      arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp257f-dk
      arm64: dts: st: ensure IMX335 is enabled on stm32mp257f-ev1
      arm64: dts: st: use video-interfaces media bus type in stm32mp257f-ev1
      arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp235f-dk

 arch/arm64/boot/dts/st/stm32mp235f-dk.dts  | 75 ++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/st/stm32mp257f-dk.dts  | 74 +++++++++++++++++++++++++++++
 arch/arm64/boot/dts/st/stm32mp257f-ev1.dts | 45 +++++++-----------
 3 files changed, 165 insertions(+), 29 deletions(-)
---
base-commit: 2f92d900f262a16c8ae02daf53ae2910d07185f5
change-id: 20260913-stm32mp2-dk-camera-7ad3ac8d3075

Best regards,
--  
Alain Volmat <alain.volmat@foss.st.com>



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

* [PATCH 1/4] arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp257f-dk
  2026-09-14  6:54 [PATCH 0/4] arm64: dts: st: enable camera on stm32mp2x-dk and correct stm32mp2x-ev Alain Volmat
@ 2026-09-14  6:54 ` Alain Volmat
  2026-09-14  6:54 ` [PATCH 2/4] arm64: dts: st: ensure IMX335 is enabled on stm32mp257f-ev1 Alain Volmat
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Alain Volmat @ 2026-09-14  6:54 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
	Alexandre Torgue
  Cc: devicetree, linux-stm32, linux-arm-kernel, linux-kernel,
	Alain Volmat

Add all nodes necessary for the imx335 camera capture via csi / dcmipp
on stm32mp257f discovery board.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
---
 arch/arm64/boot/dts/st/stm32mp257f-dk.dts | 74 +++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git a/arch/arm64/boot/dts/st/stm32mp257f-dk.dts b/arch/arm64/boot/dts/st/stm32mp257f-dk.dts
index 8daf3dfd5133..39ad23d95069 100644
--- a/arch/arm64/boot/dts/st/stm32mp257f-dk.dts
+++ b/arch/arm64/boot/dts/st/stm32mp257f-dk.dts
@@ -9,6 +9,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/leds/common.h>
+#include <dt-bindings/media/video-interfaces.h>
 #include "stm32mp257.dtsi"
 #include "stm32mp25xf.dtsi"
 #include "stm32mp25-pinctrl.dtsi"
@@ -27,6 +28,14 @@ chosen {
 		stdout-path = "serial0:115200n8";
 	};
 
+	clocks {
+		clk_ext_camera: clk-ext-camera {
+			#clock-cells = <0>;
+			compatible = "fixed-clock";
+			clock-frequency = <24000000>;
+		};
+	};
+
 	gpio-keys {
 		compatible = "gpio-keys";
 
@@ -138,6 +147,42 @@ &arm_wdt {
 	status = "okay";
 };
 
+&csi {
+	vdd-supply =  <&scmi_vddcore>;
+	vdda18-supply = <&scmi_v1v8>;
+	status = "okay";
+
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		port@0 {
+			reg = <0>;
+			csi_sink: endpoint {
+				remote-endpoint = <&imx335_ep>;
+				data-lanes = <1 2>;
+				bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+			};
+		};
+		port@1 {
+			reg = <1>;
+			csi_source: endpoint {
+				remote-endpoint = <&dcmipp_0>;
+			};
+		};
+	};
+};
+
+&dcmipp {
+	status = "okay";
+
+	port {
+		dcmipp_0: endpoint {
+			remote-endpoint = <&csi_source>;
+			bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+		};
+	};
+};
+
 &ethernet1 {
 	pinctrl-0 = <&eth1_rgmii_pins_b>;
 	pinctrl-1 = <&eth1_rgmii_sleep_pins_b>;
@@ -160,6 +205,16 @@ phy1_eth1: ethernet-phy@1 {
 	};
 };
 
+&gpiob {
+	/* Enable the IMX335 power line */
+	imx335-en-hog {
+		gpio-hog;
+		gpios = <11 GPIO_ACTIVE_HIGH>;
+		output-high;
+		line-name = "imx335_en";
+	};
+};
+
 &i2c2 {
 	pinctrl-names = "default", "sleep";
 	pinctrl-0 = <&i2c2_pins_b>;
@@ -172,6 +227,25 @@ &i2c2 {
 	/delete-property/dmas;
 	/delete-property/dma-names;
 
+	imx335: camera@1a {
+		compatible = "sony,imx335";
+		reg = <0x1a>;
+		clocks = <&clk_ext_camera>;
+		avdd-supply = <&scmi_v3v3>;
+		ovdd-supply = <&scmi_v3v3>;
+		dvdd-supply = <&scmi_v3v3>;
+		reset-gpios = <&gpiob 1 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
+
+		port {
+			imx335_ep: endpoint {
+				remote-endpoint = <&csi_sink>;
+				clock-lanes = <0>;
+				data-lanes = <1 2>;
+				link-frequencies = /bits/ 64 <594000000>;
+			};
+		};
+	};
+
 	ili2511: ili2511@41 {
 		compatible = "ilitek,ili251x";
 		reg = <0x41>;

-- 
2.34.1



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

* [PATCH 2/4] arm64: dts: st: ensure IMX335 is enabled on stm32mp257f-ev1
  2026-09-14  6:54 [PATCH 0/4] arm64: dts: st: enable camera on stm32mp2x-dk and correct stm32mp2x-ev Alain Volmat
  2026-09-14  6:54 ` [PATCH 1/4] arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp257f-dk Alain Volmat
@ 2026-09-14  6:54 ` Alain Volmat
  2026-09-14  6:54 ` [PATCH 3/4] arm64: dts: st: use video-interfaces media bus type in stm32mp257f-ev1 Alain Volmat
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Alain Volmat @ 2026-09-14  6:54 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
	Alexandre Torgue
  Cc: devicetree, linux-stm32, linux-arm-kernel, linux-kernel,
	Alain Volmat, Hugues Fruchet

Set the GPIO enable line for the IMX335 camera via a GPIO hog
in order to ensure it is well enabled.

Use scmi_v3v3 for imx335 regulators.
The 3 imx335 supplies are generated within the MB1854 and all come
from the v3v3 coming from the board.  Ensure that this regulator is
enabled by using the scmi_v3v3 as supplier of the imx335.

Signed-off-by: Hugues Fruchet <hugues.fruchet@foss.st.com>
Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
---
 arch/arm64/boot/dts/st/stm32mp257f-ev1.dts | 40 ++++++++++--------------------
 1 file changed, 13 insertions(+), 27 deletions(-)

diff --git a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
index 12b4018edeb0..acc730146287 100644
--- a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
+++ b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
@@ -72,30 +72,6 @@ ddr_channel: sdram-channel-0 {
 		io-width = <32>;
 	};
 
-	imx335_2v9: regulator-2v9 {
-		compatible = "regulator-fixed";
-		regulator-name = "imx335-avdd";
-		regulator-min-microvolt = <2900000>;
-		regulator-max-microvolt = <2900000>;
-		regulator-always-on;
-	};
-
-	imx335_1v8: regulator-1v8 {
-		compatible = "regulator-fixed";
-		regulator-name = "imx335-ovdd";
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <1800000>;
-		regulator-always-on;
-	};
-
-	imx335_1v2: regulator-1v2 {
-		compatible = "regulator-fixed";
-		regulator-name = "imx335-dvdd";
-		regulator-min-microvolt = <1200000>;
-		regulator-max-microvolt = <1200000>;
-		regulator-always-on;
-	};
-
 	memory@80000000 {
 		device_type = "memory";
 		reg = <0x0 0x80000000 0x1 0x0>;
@@ -253,6 +229,16 @@ phy0_eth2: ethernet-phy@1 {
 	};
 };
 
+&gpioi {
+	/* Enable the IMX335 power line */
+	imx335-en-hog {
+		gpio-hog;
+		gpios = <0 GPIO_ACTIVE_HIGH>;
+		output-high;
+		line-name = "imx335_en";
+	};
+};
+
 &i2c2 {
 	pinctrl-names = "default", "sleep";
 	pinctrl-0 = <&i2c2_pins_a>;
@@ -269,9 +255,9 @@ imx335: camera@1a {
 		compatible = "sony,imx335";
 		reg = <0x1a>;
 		clocks = <&clk_ext_camera>;
-		avdd-supply = <&imx335_2v9>;
-		ovdd-supply = <&imx335_1v8>;
-		dvdd-supply = <&imx335_1v2>;
+		avdd-supply = <&scmi_v3v3>;
+		ovdd-supply = <&scmi_v3v3>;
+		dvdd-supply = <&scmi_v3v3>;
 		reset-gpios = <&gpioi 7 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
 
 		port {

-- 
2.34.1



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

* [PATCH 3/4] arm64: dts: st: use video-interfaces media bus type in stm32mp257f-ev1
  2026-09-14  6:54 [PATCH 0/4] arm64: dts: st: enable camera on stm32mp2x-dk and correct stm32mp2x-ev Alain Volmat
  2026-09-14  6:54 ` [PATCH 1/4] arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp257f-dk Alain Volmat
  2026-09-14  6:54 ` [PATCH 2/4] arm64: dts: st: ensure IMX335 is enabled on stm32mp257f-ev1 Alain Volmat
@ 2026-09-14  6:54 ` Alain Volmat
  2026-09-14  6:54 ` [PATCH 4/4] arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp235f-dk Alain Volmat
  2026-09-28 12:36 ` [PATCH 0/4] arm64: dts: st: enable camera on stm32mp2x-dk and correct stm32mp2x-ev Alexandre TORGUE
  4 siblings, 0 replies; 6+ messages in thread
From: Alain Volmat @ 2026-09-14  6:54 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
	Alexandre Torgue
  Cc: devicetree, linux-stm32, linux-arm-kernel, linux-kernel,
	Alain Volmat

Use MEDIA_BUS_TYPE macro in stm32mp257f-ev1 for csi/dcmipp bus-type.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
---
 arch/arm64/boot/dts/st/stm32mp257f-ev1.dts | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
index acc730146287..782b4bb843ee 100644
--- a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
+++ b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
@@ -8,6 +8,7 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/leds/common.h>
+#include <dt-bindings/media/video-interfaces.h>
 #include <dt-bindings/regulator/st,stm32mp25-regulator.h>
 #include "stm32mp257.dtsi"
 #include "stm32mp25xf.dtsi"
@@ -161,7 +162,7 @@ port@0 {
 			csi_sink: endpoint {
 				remote-endpoint = <&imx335_ep>;
 				data-lanes = <1 2>;
-				bus-type = <4>;
+				bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
 			};
 		};
 		port@1 {
@@ -178,7 +179,7 @@ &dcmipp {
 	port {
 		dcmipp_0: endpoint {
 			remote-endpoint = <&csi_source>;
-			bus-type = <4>;
+			bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
 		};
 	};
 };

-- 
2.34.1



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

* [PATCH 4/4] arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp235f-dk
  2026-09-14  6:54 [PATCH 0/4] arm64: dts: st: enable camera on stm32mp2x-dk and correct stm32mp2x-ev Alain Volmat
                   ` (2 preceding siblings ...)
  2026-09-14  6:54 ` [PATCH 3/4] arm64: dts: st: use video-interfaces media bus type in stm32mp257f-ev1 Alain Volmat
@ 2026-09-14  6:54 ` Alain Volmat
  2026-09-28 12:36 ` [PATCH 0/4] arm64: dts: st: enable camera on stm32mp2x-dk and correct stm32mp2x-ev Alexandre TORGUE
  4 siblings, 0 replies; 6+ messages in thread
From: Alain Volmat @ 2026-09-14  6:54 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
	Alexandre Torgue
  Cc: devicetree, linux-stm32, linux-arm-kernel, linux-kernel,
	Alain Volmat

Add all nodes necessary for the imx335 camera capture via csi / dcmipp
on stm32mp235f discovery board.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
---
 arch/arm64/boot/dts/st/stm32mp235f-dk.dts | 75 +++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)

diff --git a/arch/arm64/boot/dts/st/stm32mp235f-dk.dts b/arch/arm64/boot/dts/st/stm32mp235f-dk.dts
index dd4efbe5a46e..f06b334dc9ce 100644
--- a/arch/arm64/boot/dts/st/stm32mp235f-dk.dts
+++ b/arch/arm64/boot/dts/st/stm32mp235f-dk.dts
@@ -9,6 +9,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/leds/common.h>
+#include <dt-bindings/media/video-interfaces.h>
 #include "stm32mp235.dtsi"
 #include "stm32mp23xf.dtsi"
 #include "stm32mp25-pinctrl.dtsi"
@@ -27,6 +28,14 @@ chosen {
 		stdout-path = "serial0:115200n8";
 	};
 
+	clocks {
+		clk_ext_camera: clk-ext-camera {
+			#clock-cells = <0>;
+			compatible = "fixed-clock";
+			clock-frequency = <24000000>;
+		};
+	};
+
 	gpio-keys {
 		compatible = "gpio-keys";
 
@@ -131,6 +140,42 @@ &arm_wdt {
 	status = "okay";
 };
 
+&csi {
+	vdd-supply =  <&scmi_vddcore>;
+	vdda18-supply = <&scmi_v1v8>;
+	status = "okay";
+
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		port@0 {
+			reg = <0>;
+			csi_sink: endpoint {
+				remote-endpoint = <&imx335_ep>;
+				data-lanes = <1 2>;
+				bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+			};
+		};
+		port@1 {
+			reg = <1>;
+			csi_source: endpoint {
+				remote-endpoint = <&dcmipp_0>;
+			};
+		};
+	};
+};
+
+&dcmipp {
+	status = "okay";
+
+	port {
+		dcmipp_0: endpoint {
+			remote-endpoint = <&csi_source>;
+			bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+		};
+	};
+};
+
 &ethernet1 {
 	pinctrl-0 = <&eth1_rgmii_pins_b>;
 	pinctrl-1 = <&eth1_rgmii_sleep_pins_b>;
@@ -153,6 +198,16 @@ phy1_eth1: ethernet-phy@1 {
 	};
 };
 
+&gpiob {
+	/* Enable the IMX335 power line */
+	imx335-en-hog {
+		gpio-hog;
+		gpios = <11 GPIO_ACTIVE_HIGH>;
+		output-high;
+		line-name = "imx335_en";
+	};
+};
+
 &i2c2 {
 	pinctrl-names = "default", "sleep";
 	pinctrl-0 = <&i2c2_pins_b>;
@@ -165,6 +220,26 @@ &i2c2 {
 	/delete-property/dmas;
 	/delete-property/dma-names;
 
+	imx335: camera@1a {
+		compatible = "sony,imx335";
+		reg = <0x1a>;
+		clocks = <&clk_ext_camera>;
+		avdd-supply = <&scmi_v3v3>;
+		ovdd-supply = <&scmi_v3v3>;
+		dvdd-supply = <&scmi_v3v3>;
+		reset-gpios = <&gpiob 1 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
+		status = "okay";
+
+		port {
+			imx335_ep: endpoint {
+				remote-endpoint = <&csi_sink>;
+				clock-lanes = <0>;
+				data-lanes = <1 2>;
+				link-frequencies = /bits/ 64 <594000000>;
+			};
+		};
+	};
+
 	ili2511: ili2511@41 {
 		compatible = "ilitek,ili251x";
 		reg = <0x41>;

-- 
2.34.1



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

* Re: [PATCH 0/4] arm64: dts: st: enable camera on stm32mp2x-dk and correct stm32mp2x-ev
  2026-09-14  6:54 [PATCH 0/4] arm64: dts: st: enable camera on stm32mp2x-dk and correct stm32mp2x-ev Alain Volmat
                   ` (3 preceding siblings ...)
  2026-09-14  6:54 ` [PATCH 4/4] arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp235f-dk Alain Volmat
@ 2026-09-28 12:36 ` Alexandre TORGUE
  4 siblings, 0 replies; 6+ messages in thread
From: Alexandre TORGUE @ 2026-09-28 12:36 UTC (permalink / raw)
  To: Alain Volmat, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Maxime Coquelin
  Cc: devicetree, linux-stm32, linux-arm-kernel, linux-kernel,
	Hugues Fruchet

Hi Alain	

On 9/14/26 08:54, Alain Volmat wrote:
> This series enables the camera pipeline on stm32mp235f-dk and
> stm32mp257f-dk boards via usage of the CSI IMX335 sensor connected
> to the CSI / DCMIPP of the STM32MP2x.
> It also perform 2 corrections to the stm32mp257f-ev1 board to ensure
> that the IMX335 is well enabled.
> 
> Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
> ---
> Alain Volmat (4):
>        arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp257f-dk
>        arm64: dts: st: ensure IMX335 is enabled on stm32mp257f-ev1
>        arm64: dts: st: use video-interfaces media bus type in stm32mp257f-ev1
>        arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp235f-dk
> 
>   arch/arm64/boot/dts/st/stm32mp235f-dk.dts  | 75 ++++++++++++++++++++++++++++++
>   arch/arm64/boot/dts/st/stm32mp257f-dk.dts  | 74 +++++++++++++++++++++++++++++
>   arch/arm64/boot/dts/st/stm32mp257f-ev1.dts | 45 +++++++-----------
>   3 files changed, 165 insertions(+), 29 deletions(-)
> ---
> base-commit: 2f92d900f262a16c8ae02daf53ae2910d07185f5
> change-id: 20260913-stm32mp2-dk-camera-7ad3ac8d3075
> 
> Best regards,
> --
> Alain Volmat <alain.volmat@foss.st.com>
> 

Applied on stm32-next.

regards
Alex


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

end of thread, other threads:[~2026-09-28 12:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-14  6:54 [PATCH 0/4] arm64: dts: st: enable camera on stm32mp2x-dk and correct stm32mp2x-ev Alain Volmat
2026-09-14  6:54 ` [PATCH 1/4] arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp257f-dk Alain Volmat
2026-09-14  6:54 ` [PATCH 2/4] arm64: dts: st: ensure IMX335 is enabled on stm32mp257f-ev1 Alain Volmat
2026-09-14  6:54 ` [PATCH 3/4] arm64: dts: st: use video-interfaces media bus type in stm32mp257f-ev1 Alain Volmat
2026-09-14  6:54 ` [PATCH 4/4] arm64: dts: st: add imx335/csi/dcmipp nodes on stm32mp235f-dk Alain Volmat
2026-09-28 12:36 ` [PATCH 0/4] arm64: dts: st: enable camera on stm32mp2x-dk and correct stm32mp2x-ev Alexandre TORGUE

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox