dtoverlays: Add overlays for Sony IMX327 and IMX462 image sensors
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Mon, 8 Aug 2022 16:24:53 +0000 (17:24 +0100)
committerPhil Elwell <8911409+pelwell@users.noreply.github.com>
Thu, 11 Aug 2022 16:04:23 +0000 (17:04 +0100)
These are currently identical to IMX290, but have slightly
different maximum frame rate capabilities.

Add overlays for the different compatible strings.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
arch/arm/boot/dts/overlays/Makefile
arch/arm/boot/dts/overlays/README
arch/arm/boot/dts/overlays/imx327-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/imx462-overlay.dts [new file with mode: 0644]

index f5120cc..d258c90 100644 (file)
@@ -109,7 +109,9 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
        imx258.dtbo \
        imx290.dtbo \
        imx296.dtbo \
+       imx327.dtbo \
        imx378.dtbo \
+       imx462.dtbo \
        imx477.dtbo \
        imx519.dtbo \
        iqaudio-codec.dtbo \
index d238957..49c3a72 100644 (file)
@@ -2049,8 +2049,7 @@ Params: rotation                Mounting rotation of the camera sensor (0 or
 Name:   imx290
 Info:   Sony IMX290 camera module.
         Uses Unicam 1, which is the standard camera connector on most Pi
-        variants. NB This currently uses 4 CSI2 data lanes and therefore will
-        only work on a CM.
+        variants.
 Load:   dtoverlay=imx290,<param>
 Params: 4lane                   Enable 4 CSI2 lanes. This requires a Compute
                                 Module (1, 3, or 4).
@@ -2085,6 +2084,29 @@ Params: rotation                Mounting rotation of the camera sensor (0 or
                                 Compute Module (CSI0, i2c_vc, and cam0_reg).
 
 
+Name:   imx327
+Info:   Sony IMX327 camera module.
+        Uses Unicam 1, which is the standard camera connector on most Pi
+        variants.
+Load:   dtoverlay=imx327,<param>
+Params: 4lane                   Enable 4 CSI2 lanes. This requires a Compute
+                                Module (1, 3, or 4).
+        clock-frequency         Sets the clock frequency to match that used on
+                                the board.
+                                Modules from Vision Components use 37.125MHz
+                                (the default), whilst those from Innomaker use
+                                74.25MHz.
+        mono                    Denote that the module is a mono sensor.
+        orientation             Sensor orientation (0 = front, 1 = rear,
+                                2 = external, default external)
+        rotation                Mounting rotation of the camera sensor (0 or
+                                180, default 0)
+        media-controller        Configure use of Media Controller API for
+                                configuring the sensor (default on)
+        cam0                    Adopt the default configuration for CAM0 on a
+                                Compute Module (CSI0, i2c_vc, and cam0_reg).
+
+
 Name:   imx378
 Info:   Sony IMX378 camera module.
         Uses Unicam 1, which is the standard camera connector on most Pi
@@ -2100,6 +2122,29 @@ Params: rotation                Mounting rotation of the camera sensor (0 or
                                 Compute Module (CSI0, i2c_vc, and cam0_reg).
 
 
+Name:   imx462
+Info:   Sony IMX462 camera module.
+        Uses Unicam 1, which is the standard camera connector on most Pi
+        variants.
+Load:   dtoverlay=imx462,<param>
+Params: 4lane                   Enable 4 CSI2 lanes. This requires a Compute
+                                Module (1, 3, or 4).
+        clock-frequency         Sets the clock frequency to match that used on
+                                the board.
+                                Modules from Vision Components use 37.125MHz
+                                (the default), whilst those from Innomaker use
+                                74.25MHz.
+        mono                    Denote that the module is a mono sensor.
+        orientation             Sensor orientation (0 = front, 1 = rear,
+                                2 = external, default external)
+        rotation                Mounting rotation of the camera sensor (0 or
+                                180, default 0)
+        media-controller        Configure use of Media Controller API for
+                                configuring the sensor (default on)
+        cam0                    Adopt the default configuration for CAM0 on a
+                                Compute Module (CSI0, i2c_vc, and cam0_reg).
+
+
 Name:   imx477
 Info:   Sony IMX477 camera module.
         Uses Unicam 1, which is the standard camera connector on most Pi
diff --git a/arch/arm/boot/dts/overlays/imx327-overlay.dts b/arch/arm/boot/dts/overlays/imx327-overlay.dts
new file mode 100644 (file)
index 0000000..d01a67c
--- /dev/null
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: GPL-2.0-only
+// Definitions for IMX327 camera module on VC I2C bus
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "imx290_327-overlay.dtsi"
+
+/{
+       compatible = "brcm,bcm2835";
+
+       // Fragment numbers deliberately high to avoid conflicts with the
+       // included imx290_327 overlay file.
+
+       fragment@101 {
+               target = <&cam_node>;
+               __overlay__ {
+                       compatible = "sony,imx327";
+               };
+       };
+
+       fragment@102 {
+               target = <&cam_node>;
+               __dormant__ {
+                       compatible = "sony,imx327-mono";
+               };
+       };
+
+       __overrides__ {
+               mono = <0>, "-101+102";
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/imx462-overlay.dts b/arch/arm/boot/dts/overlays/imx462-overlay.dts
new file mode 100644 (file)
index 0000000..e2b54a7
--- /dev/null
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: GPL-2.0-only
+// Definitions for IMX462 camera module on VC I2C bus
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "imx290_327-overlay.dtsi"
+
+/{
+       compatible = "brcm,bcm2835";
+
+       // Fragment numbers deliberately high to avoid conflicts with the
+       // included imx290_327 overlay file.
+
+       fragment@101 {
+               target = <&cam_node>;
+               __overlay__ {
+                       compatible = "sony,imx462";
+               };
+       };
+
+       fragment@102 {
+               target = <&cam_node>;
+               __dormant__ {
+                       compatible = "sony,imx462-mono";
+               };
+       };
+
+       __overrides__ {
+               mono = <0>, "-101+102";
+       };
+};