bcm27xx: update 6.1 patches from RPi foundation
[openwrt/staging/xback.git] / target / linux / bcm27xx / patches-6.1 / 950-1295-imx477-Update-device-tree-overlays-to-support-trigge.patch
diff --git a/target/linux/bcm27xx/patches-6.1/950-1295-imx477-Update-device-tree-overlays-to-support-trigge.patch b/target/linux/bcm27xx/patches-6.1/950-1295-imx477-Update-device-tree-overlays-to-support-trigge.patch
new file mode 100644 (file)
index 0000000..d9df794
--- /dev/null
@@ -0,0 +1,129 @@
+From d02bd251d7f85e3aec02e5752df2f44a35961360 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Erik=20Bot=C3=B6?= <erik.boto@gmail.com>
+Date: Fri, 9 Feb 2024 18:41:24 +0100
+Subject: [PATCH 1295/1295] imx477: Update device tree overlays to support
+ trigger-mode
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Also create generic overrides in camera-mux-N-port, that can be extended
+to configure vsync modes for cameras supporting this.
+
+Example usages (to be combined with camera_auto_detect=0):
+dtoverlay=imx477,cam0,sync-source
+dtoverlay=imx477,sync-sink
+dtoverlay=camera-mux-2port,cam1-imx477,cam1-sync-sink
+dtoverlay=camera-mux-4port,cam3-imx477,cam3-sync-sink
+
+Signed-off-by: Erik Botö <erik.boto@gmail.com>
+---
+ arch/arm/boot/dts/overlays/README                | 16 ++++++++++++++++
+ .../dts/overlays/camera-mux-2port-overlay.dts    |  5 +++++
+ .../dts/overlays/camera-mux-4port-overlay.dts    |  9 +++++++++
+ arch/arm/boot/dts/overlays/imx378-overlay.dts    |  7 +++++++
+ arch/arm/boot/dts/overlays/imx477-overlay.dts    |  7 +++++++
+ 5 files changed, 44 insertions(+)
+
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -862,6 +862,10 @@ Params: cam0-arducam-64mp       Select A
+         cam1-ov7251             Select OV7251 for camera on port 1
+         cam1-ov9281             Select OV9281 for camera on port 1
+         cam1-imx290-clk-freq    Set clock frequency for an IMX290 on port 1
++        cam0-sync-source        Set camera on port 0 as vsync source
++        cam0-sync-sink          Set camera on port 0 as vsync sink
++        cam1-sync-source        Set camera on port 1 as vsync source
++        cam1-sync-sink          Set camera on port 1 as vsync sink
+         cam0                    Connect the mux to CAM0 port (default is CAM1)
+@@ -923,6 +927,14 @@ Params: cam0-arducam-64mp       Select A
+         cam3-ov7251             Select OV7251 for camera on port 3
+         cam3-ov9281             Select OV9281 for camera on port 3
+         cam3-imx290-clk-freq    Set clock frequency for an IMX290 on port 3
++        cam0-sync-source        Set camera on port 0 as vsync source
++        cam0-sync-sink          Set camera on port 0 as vsync sink
++        cam1-sync-source        Set camera on port 1 as vsync source
++        cam1-sync-sink          Set camera on port 1 as vsync sink
++        cam2-sync-source        Set camera on port 2 as vsync source
++        cam2-sync-sink          Set camera on port 2 as vsync sink
++        cam3-sync-source        Set camera on port 3 as vsync source
++        cam3-sync-sink          Set camera on port 3 as vsync sink
+         cam0                    Connect the mux to CAM0 port (default is CAM1)
+@@ -2676,6 +2688,8 @@ Params: rotation                Mounting
+                                 Compute Module (CSI0, i2c_vc, and cam0_reg).
+         always-on               Leave the regulator powered up, to stop the
+                                 camera clamping I/Os such as XVS to 0V.
++        sync-source             Configure as vsync source
++        sync-sink               Configure as vsync sink
+ Name:   imx462
+@@ -2716,6 +2730,8 @@ Params: rotation                Mounting
+                                 Compute Module (CSI0, i2c_vc, and cam0_reg).
+         always-on               Leave the regulator powered up, to stop the
+                                 camera clamping I/Os such as XVS to 0V.
++        sync-source             Configure as vsync source
++        sync-sink               Configure as vsync sink
+ Name:   imx519
+--- a/arch/arm/boot/dts/overlays/camera-mux-2port-overlay.dts
++++ b/arch/arm/boot/dts/overlays/camera-mux-2port-overlay.dts
+@@ -536,5 +536,10 @@
+               cam0 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi0>,
+                      <&csi_frag>, "target:0=",<&csi0>;
++
++              cam0-sync-source = <&imx477_0>, "trigger-mode:0=1";
++              cam0-sync-sink = <&imx477_0>, "trigger-mode:0=2";
++              cam1-sync-source = <&imx477_1>, "trigger-mode:0=1";
++              cam1-sync-sink = <&imx477_1>, "trigger-mode:0=2";
+       };
+ };
+--- a/arch/arm/boot/dts/overlays/camera-mux-4port-overlay.dts
++++ b/arch/arm/boot/dts/overlays/camera-mux-4port-overlay.dts
+@@ -939,5 +939,14 @@
+               cam0 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi0>,
+                      <&csi_frag>, "target:0=",<&csi0>;
++
++              cam0-sync-source = <&imx477_0>, "trigger-mode:0=1";
++              cam0-sync-sink = <&imx477_0>, "trigger-mode:0=2";
++              cam1-sync-source = <&imx477_1>, "trigger-mode:0=1";
++              cam1-sync-sink = <&imx477_1>, "trigger-mode:0=2";
++              cam2-sync-source = <&imx477_2>, "trigger-mode:0=1";
++              cam2-sync-sink = <&imx477_2>, "trigger-mode:0=2";
++              cam3-sync-source = <&imx477_3>, "trigger-mode:0=1";
++              cam3-sync-sink = <&imx477_3>, "trigger-mode:0=2";
+       };
+ };
+--- a/arch/arm/boot/dts/overlays/imx378-overlay.dts
++++ b/arch/arm/boot/dts/overlays/imx378-overlay.dts
+@@ -8,3 +8,10 @@
+ &cam_node {
+       compatible = "sony,imx378";
+ };
++
++/{
++      __overrides__ {
++              sync-sink = <&cam_node>,"trigger-mode:0=2";
++              sync-source = <&cam_node>,"trigger-mode:0=1";
++      };
++};
+--- a/arch/arm/boot/dts/overlays/imx477-overlay.dts
++++ b/arch/arm/boot/dts/overlays/imx477-overlay.dts
+@@ -8,3 +8,10 @@
+ &cam_node {
+       compatible = "sony,imx477";
+ };
++
++/{
++      __overrides__ {
++              sync-sink = <&cam_node>,"trigger-mode:0=2";
++              sync-source = <&cam_node>,"trigger-mode:0=1";
++      };
++};