Skip to content

Commit 7ab68b1

Browse files
tq-steinaschmiedelm
authored andcommitted
MBa8MPxL-RAS314: Add Raspberry Pi Camera V2 support
Signed-off-by: Alexander Stein <[email protected]> Signed-off-by: Martin Schmiedel <[email protected]>
1 parent 160325a commit 7ab68b1

File tree

2 files changed

+152
-0
lines changed

2 files changed

+152
-0
lines changed

config/kernel/linux-tqma-current.config

+2
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,8 @@ CONFIG_V4L_PLATFORM_DRIVERS=y
541541
CONFIG_SDR_PLATFORM_DRIVERS=y
542542
CONFIG_V4L_MEM2MEM_DRIVERS=y
543543
CONFIG_VIDEO_IMX7_CSI=m
544+
CONFIG_VIDEO_IMX_MIPI_CSIS=m
545+
CONFIG_VIDEO_ROCKCHIP_ISP1=m
544546
CONFIG_VIDEO_HANTRO=m
545547
CONFIG_VIDEO_IMX219=m
546548
CONFIG_VIDEO_OV5640=m
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2+
From: Alexander Stein <[email protected]>
3+
Date: Mon, 17 Mar 2025 15:47:46 +0100
4+
Subject: arm64: dts: imx8mp-tqma8mpql-mba8mp-ras314: Add Raspberry Pi Camera
5+
V2 overlay
6+
7+
This overlay configures IMX219 MIPI-CSI-2 camera attached to ISP1.
8+
Also add additional overlay both using LVDS display and camera.
9+
10+
Signed-off-by: Alexander Stein <[email protected]>
11+
---
12+
arch/arm64/boot/dts/freescale/Makefile | 4 +
13+
arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314-imx219.dtso | 107 ++++++++++
14+
2 files changed, 111 insertions(+)
15+
16+
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
17+
index 111111111111..222222222222 100644
18+
--- a/arch/arm64/boot/dts/freescale/Makefile
19+
+++ b/arch/arm64/boot/dts/freescale/Makefile
20+
@@ -201,10 +201,14 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk-mx8-dlvds-lcd1.dtb
21+
22+
imx8mp-tqma8mpql-mba8mpxl-lvds-dtbs += imx8mp-tqma8mpql-mba8mpxl.dtb imx8mp-tqma8mpql-mba8mpxl-lvds.dtbo
23+
imx8mp-tqma8mpql-mba8mpxl-lvds-g133han01-dtbs += imx8mp-tqma8mpql-mba8mpxl.dtb imx8mp-tqma8mpql-mba8mpxl-lvds-g133han01.dtbo
24+
+imx8mp-tqma8mpql-mba8mp-ras314-imx219-dtbs += imx8mp-tqma8mpql-mba8mp-ras314.dtb imx8mp-tqma8mpql-mba8mp-ras314-imx219.dtbo
25+
imx8mp-tqma8mpql-mba8mp-ras314-lvds-dtbs += imx8mp-tqma8mpql-mba8mp-ras314.dtb imx8mp-tqma8mpql-mba8mpxl-lvds.dtbo
26+
+imx8mp-tqma8mpql-mba8mp-ras314-lvds-imx219-dtbs += imx8mp-tqma8mpql-mba8mp-ras314.dtb imx8mp-tqma8mpql-mba8mpxl-lvds.dtbo imx8mp-tqma8mpql-mba8mp-ras314-imx219.dtbo
27+
dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl-lvds.dtb
28+
dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl-lvds-g133han01.dtb
29+
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mp-ras314-imx219.dtb
30+
dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mp-ras314-lvds.dtb
31+
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mp-ras314-lvds-imx219.dtb
32+
33+
dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb
34+
dtb-$(CONFIG_ARCH_MXC) += imx8mq-hummingboard-pulse.dtb
35+
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314-imx219.dtso b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314-imx219.dtso
36+
new file mode 100644
37+
index 000000000000..111111111111
38+
--- /dev/null
39+
+++ b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314-imx219.dtso
40+
@@ -0,0 +1,107 @@
41+
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
42+
+/*
43+
+ * Copyright 2022-2025 TQ-Systems GmbH <[email protected]>,
44+
+ * D-82229 Seefeld, Germany.
45+
+ * Author: Alexander Stein
46+
+ */
47+
+/dts-v1/;
48+
+/plugin/;
49+
+
50+
+#include <dt-bindings/gpio/gpio.h>
51+
+#include <dt-bindings/media/video-interfaces.h>
52+
+
53+
+#include "imx8mp-pinfunc.h"
54+
+
55+
+&{/} {
56+
+ /*
57+
+ * The three camera regulators are controlled by a single GPIO. Declare
58+
+ * a single regulator for the three supplies.
59+
+ */
60+
+ reg_cam: regulator-cam {
61+
+ compatible = "regulator-fixed";
62+
+ regulator-name = "reg_cam";
63+
+ /* pad muxing already done in gpio2grp */
64+
+ gpio = <&gpio2 6 GPIO_ACTIVE_HIGH>;
65+
+ enable-active-high;
66+
+ vin-supply = <&reg_vcc_3v3>;
67+
+ regulator-min-microvolt = <3300000>;
68+
+ regulator-max-microvolt = <3300000>;
69+
+ };
70+
+
71+
+ cam24m: cam24m {
72+
+ compatible = "fixed-clock";
73+
+ #clock-cells = <0>;
74+
+ clock-frequency = <24000000>;
75+
+ clock-output-names = "cam24m";
76+
+ };
77+
+};
78+
+
79+
+&i2c2 {
80+
+ #address-cells = <1>;
81+
+ #size-cells = <0>;
82+
+
83+
+ camera@1a {
84+
+ compatible = "sony,imx219";
85+
+ reg = <0x10>;
86+
+ clocks = <&cam24m>;
87+
+ VANA-supply = <&reg_cam>;
88+
+ VDIG-supply = <&reg_cam>;
89+
+ VDDL-supply = <&reg_cam>;
90+
+ orientation = <2>;
91+
+ rotation = <0>;
92+
+
93+
+ port {
94+
+ sony_imx219: endpoint {
95+
+ remote-endpoint = <&imx8mp_mipi_csi_in>;
96+
+ clock-lanes = <0>;
97+
+ clock-noncontinuous;
98+
+ data-lanes = <1 2>;
99+
+ link-frequencies = /bits/ 64 <456000000>;
100+
+ };
101+
+ };
102+
+ };
103+
+};
104+
+
105+
+&isi_0 {
106+
+ status = "disabled";
107+
+
108+
+ ports {
109+
+ port@0 {
110+
+ /delete-node/ endpoint;
111+
+ };
112+
+ };
113+
+};
114+
+
115+
+&isp_0 {
116+
+ status = "okay";
117+
+
118+
+ ports {
119+
+ port@1 {
120+
+ isp0_in: endpoint {
121+
+ bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
122+
+ remote-endpoint = <&mipi_csi_0_out>;
123+
+ };
124+
+ };
125+
+ };
126+
+};
127+
+
128+
+&mipi_csi_0 {
129+
+ status = "okay";
130+
+
131+
+ ports {
132+
+ #address-cells = <1>;
133+
+ #size-cells = <0>;
134+
+
135+
+ port@0 {
136+
+ imx8mp_mipi_csi_in: endpoint {
137+
+ remote-endpoint = <&sony_imx219>;
138+
+ clock-lanes = <0>;
139+
+ data-lanes = <1 2>;
140+
+ };
141+
+ };
142+
+ };
143+
+};
144+
+
145+
+&mipi_csi_0_out {
146+
+ remote-endpoint = <&isp0_in>;
147+
+};
148+
--
149+
Armbian
150+

0 commit comments

Comments
 (0)