summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2020-09-11 16:07:40 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2020-09-11 16:07:40 +0200
commit4dc3ae79b1b0a63341d4c38beaad771d260043e8 (patch)
treeb422a5c5a7d88cc072104ea9e788caf6dc7466f0
parent61326642efec84911173483f38272a2ce176d962 (diff)
overlays: verdin-imx8mm_ov5640_overlay: support csi camera module
Add a device tree overlay supporting the Toradex CSI camera module 5MP OV5640 on Verdin iMX8M Mini. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-rw-r--r--overlays/Makefile1
-rw-r--r--overlays/verdin-imx8mm_ov5640_overlay.dts81
2 files changed, 82 insertions, 0 deletions
diff --git a/overlays/Makefile b/overlays/Makefile
index b7904eb..5c6d4f5 100644
--- a/overlays/Makefile
+++ b/overlays/Makefile
@@ -43,6 +43,7 @@ dtb-y += display-edt7_overlay.dtbo
dtb-y += display-lt161010_overlay.dtbo
dtb-y += display-lt170410_overlay.dtbo
dtb-y += verdin-imx8mm_lt8912_overlay.dtbo
+dtb-y += verdin-imx8mm_ov5640_overlay.dtbo
dtb-y += verdin-imx8mm_sn65dsi84_overlay.dtbo
targets += $(dtb-y)
diff --git a/overlays/verdin-imx8mm_ov5640_overlay.dts b/overlays/verdin-imx8mm_ov5640_overlay.dts
new file mode 100644
index 0000000..5bb9fec
--- /dev/null
+++ b/overlays/verdin-imx8mm_ov5640_overlay.dts
@@ -0,0 +1,81 @@
+// CSI Camera Module 5MP OV5640 orderable at Toradex.
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/imx8mm-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ compatible = "toradex,verdin-imx8mm";
+};
+
+&csi1_bridge {
+ fsl,mipi-mode;
+ status = "okay";
+
+ port {
+ csi1_ep: endpoint {
+ remote-endpoint = <&csi1_mipi_ep>;
+ };
+ };
+};
+
+/* Verdin I2C_4_CSI */
+&i2c3 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ ov5640_mipi@3c {
+ assigned-clocks = <&clk IMX8MM_CLK_CLKO1>;
+ assigned-clock-parents = <&clk IMX8MM_CLK_24M>;
+ assigned-clock-rates = <24000000>;
+ compatible = "ovti,ov5640_mipi";
+ clock-names = "csi_mclk";
+ clocks = <&clk IMX8MM_CLK_CLKO1>;
+ DOVDD-supply = <&reg_3p3v>;
+ AVDD-supply = <&reg_3p3v>;
+ DVDD-supply = <&reg_3p3v>;
+ PVDD-supply = <&reg_3p3v>;
+ csi_id = <0>;
+ mclk = <24000000>;
+ mclk_source = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpio5>, <&pinctrl_gpio6>;
+ pwn-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+ reg = <0x3c>;
+ rst-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
+ status = "okay";
+
+ port {
+ ov5640_mipi1_ep: endpoint {
+ remote-endpoint = <&mipi1_sensor_ep>;
+ };
+ };
+ };
+};
+
+&mipi_csi_1 {
+ mipi-phy-supply = <&reg_mipi_phy>;
+ status = "okay";
+
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ mipi1_sensor_ep: endpoint@1 {
+ csis-hs-settle = <13>;
+ csis-clk-settle = <2>;
+ csis-wclk;
+ data-lanes = <2>;
+ reg = <1>;
+ remote-endpoint = <&ov5640_mipi1_ep>;
+ };
+
+ csi1_mipi_ep: endpoint@2 {
+ reg = <2>;
+ remote-endpoint = <&csi1_ep>;
+ };
+ };
+};