From d02bd251d7f85e3aec02e5752df2f44a35961360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Bot=C3=B6?= 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ö --- 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"; + }; +};