From: Max Krummenacher <max.oss.09@gmail.com>
To: max.krummenacher@toradex.com
Cc: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>,
Fabio Estevam <festevam@gmail.com>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
NXP Linux Team <linux-imx@nxp.com>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Rob Herring <robh+dt@kernel.org>,
Sascha Hauer <s.hauer@pengutronix.de>,
Shawn Guo <shawnguo@kernel.org>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v2 12/18] ARM: dts: imx6q-apalis: Add ov5640 mipi csi camera
Date: Wed, 15 Jun 2022 13:50:00 +0200 [thread overview]
Message-ID: <20220615115006.45672-13-max.oss.09@gmail.com> (raw)
In-Reply-To: <20220615115006.45672-1-max.oss.09@gmail.com>
From: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
The Apalis iMX6 modules allow connecting a mipi-csi video input.
Add support for our OV5640 camera module but have it disabled.
This allows to enable it in an overlay per the current system
configuration.
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
---
Changes in v2:
- Fixed '-' vs. '_' in node name as pointed out by Fabio
- Sorted properties alphabetical in the newly added node
arch/arm/boot/dts/imx6qdl-apalis.dtsi | 67 ++++++++++++++++++++++++++-
1 file changed, 66 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
index b4742ad85f56..bbd838acb8d6 100644
--- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
@@ -29,6 +29,12 @@
status = "disabled";
};
+ clk_ov5640_osc: clk-ov5640-osc {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ };
+
gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default";
@@ -110,6 +116,26 @@
regulator-always-on;
};
+ reg_ov5640_1v8_d_o_vdd: regulator-ov5640-1v8-d-o-vdd {
+ compatible = "regulator-fixed";
+ regulator-always-on;
+ regulator-max-microvolt = <1800000>;
+ regulator-min-microvolt = <1800000>;
+ regulator-name = "DOVDD/DVDD_1.8V";
+ /* Note: The CSI module uses on-board 3.3V_SW supply */
+ vin-supply = <®_module_3v3>;
+ };
+
+ reg_ov5640_2v8_a_vdd: regulator-ov5640-2v8-a-vdd {
+ compatible = "regulator-fixed";
+ regulator-always-on;
+ regulator-max-microvolt = <2800000>;
+ regulator-min-microvolt = <2800000>;
+ regulator-name = "AVDD/AFVDD_2.8V";
+ /* Note: The CSI module uses on-board 3.3V_SW supply */
+ vin-supply = <®_module_3v3>;
+ };
+
reg_usb_otg_vbus: regulator-usb-otg-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
@@ -452,7 +478,6 @@
reset-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>; /* MXM3_13 */
status = "disabled";
};
-
};
/*
@@ -631,6 +656,30 @@
scl-gpios = <&gpio3 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&gpio3 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "disabled";
+
+ ov5640_csi_cam: ov5640_mipi@3c {
+ compatible = "ovti,ov5640";
+ AVDD-supply = <®_ov5640_2v8_a_vdd>;
+ DOVDD-supply = <®_ov5640_1v8_d_o_vdd>;
+ DVDD-supply = <®_ov5640_1v8_d_o_vdd>;
+ clock-names = "xclk";
+ clocks = <&clks IMX6QDL_CLK_CKO2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_cam_mclk>;
+ /* These GPIOs are muxed with the iomuxc node */
+ powerdown-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
+ reg = <0x3c>;
+ reset-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
+ status = "disabled";
+
+ port {
+ ov5640_to_mipi_csi2: endpoint {
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ remote-endpoint = <&mipi_csi_from_ov5640>;
+ };
+ };
+ };
};
&ipu1_di1_disp1 {
@@ -661,6 +710,22 @@
};
};
+&mipi_csi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+
+ port@0 {
+ reg = <0>;
+
+ mipi_csi_from_ov5640: endpoint {
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ remote-endpoint = <&ov5640_to_mipi_csi2>;
+ };
+ };
+};
+
&pwm1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm1>;
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Max Krummenacher <max.oss.09@gmail.com>
To: max.krummenacher@toradex.com
Cc: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>,
Fabio Estevam <festevam@gmail.com>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
NXP Linux Team <linux-imx@nxp.com>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Rob Herring <robh+dt@kernel.org>,
Sascha Hauer <s.hauer@pengutronix.de>,
Shawn Guo <shawnguo@kernel.org>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v2 12/18] ARM: dts: imx6q-apalis: Add ov5640 mipi csi camera
Date: Wed, 15 Jun 2022 13:50:00 +0200 [thread overview]
Message-ID: <20220615115006.45672-13-max.oss.09@gmail.com> (raw)
In-Reply-To: <20220615115006.45672-1-max.oss.09@gmail.com>
From: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
The Apalis iMX6 modules allow connecting a mipi-csi video input.
Add support for our OV5640 camera module but have it disabled.
This allows to enable it in an overlay per the current system
configuration.
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
---
Changes in v2:
- Fixed '-' vs. '_' in node name as pointed out by Fabio
- Sorted properties alphabetical in the newly added node
arch/arm/boot/dts/imx6qdl-apalis.dtsi | 67 ++++++++++++++++++++++++++-
1 file changed, 66 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
index b4742ad85f56..bbd838acb8d6 100644
--- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
@@ -29,6 +29,12 @@
status = "disabled";
};
+ clk_ov5640_osc: clk-ov5640-osc {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ };
+
gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default";
@@ -110,6 +116,26 @@
regulator-always-on;
};
+ reg_ov5640_1v8_d_o_vdd: regulator-ov5640-1v8-d-o-vdd {
+ compatible = "regulator-fixed";
+ regulator-always-on;
+ regulator-max-microvolt = <1800000>;
+ regulator-min-microvolt = <1800000>;
+ regulator-name = "DOVDD/DVDD_1.8V";
+ /* Note: The CSI module uses on-board 3.3V_SW supply */
+ vin-supply = <®_module_3v3>;
+ };
+
+ reg_ov5640_2v8_a_vdd: regulator-ov5640-2v8-a-vdd {
+ compatible = "regulator-fixed";
+ regulator-always-on;
+ regulator-max-microvolt = <2800000>;
+ regulator-min-microvolt = <2800000>;
+ regulator-name = "AVDD/AFVDD_2.8V";
+ /* Note: The CSI module uses on-board 3.3V_SW supply */
+ vin-supply = <®_module_3v3>;
+ };
+
reg_usb_otg_vbus: regulator-usb-otg-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
@@ -452,7 +478,6 @@
reset-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>; /* MXM3_13 */
status = "disabled";
};
-
};
/*
@@ -631,6 +656,30 @@
scl-gpios = <&gpio3 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&gpio3 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "disabled";
+
+ ov5640_csi_cam: ov5640_mipi@3c {
+ compatible = "ovti,ov5640";
+ AVDD-supply = <®_ov5640_2v8_a_vdd>;
+ DOVDD-supply = <®_ov5640_1v8_d_o_vdd>;
+ DVDD-supply = <®_ov5640_1v8_d_o_vdd>;
+ clock-names = "xclk";
+ clocks = <&clks IMX6QDL_CLK_CKO2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_cam_mclk>;
+ /* These GPIOs are muxed with the iomuxc node */
+ powerdown-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
+ reg = <0x3c>;
+ reset-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
+ status = "disabled";
+
+ port {
+ ov5640_to_mipi_csi2: endpoint {
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ remote-endpoint = <&mipi_csi_from_ov5640>;
+ };
+ };
+ };
};
&ipu1_di1_disp1 {
@@ -661,6 +710,22 @@
};
};
+&mipi_csi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+
+ port@0 {
+ reg = <0>;
+
+ mipi_csi_from_ov5640: endpoint {
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ remote-endpoint = <&ov5640_to_mipi_csi2>;
+ };
+ };
+};
+
&pwm1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm1>;
--
2.20.1
next prev parent reply other threads:[~2022-06-15 11:57 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-15 11:49 [PATCH v2 00/18] ARM: dts: imx6q-apalis: Misc improvements and newly added carrier Max Krummenacher
2022-06-15 11:49 ` Max Krummenacher
2022-06-15 11:49 ` [PATCH v2 01/18] dt-bindings: arm: fsl: Add carrier for toradex,apalis-imx6q Max Krummenacher
2022-06-15 11:49 ` [PATCH v2 02/18] Revert "ARM: dts: imx6qdl-apalis: Avoid underscore in node name" Max Krummenacher
2022-06-15 11:49 ` Max Krummenacher
2022-06-15 11:49 ` [PATCH v2 03/18] ARM: dts: imx6q-apalis: Add gpio-line-names Max Krummenacher
2022-06-15 11:49 ` Max Krummenacher
2022-06-15 11:49 ` [PATCH v2 04/18] ARM: dts: imx6q-apalis: Command pmic to standby for poweroff Max Krummenacher
2022-06-15 11:49 ` Max Krummenacher
2022-06-15 11:49 ` [PATCH v2 05/18] ARM: dts: imx6q-apalis: Move parallel rgb interface to SoM dtsi Max Krummenacher
2022-06-15 11:49 ` Max Krummenacher
2022-06-15 11:49 ` [PATCH v2 06/18] ARM: dts: imx6q-apalis: Move pinmux groups " Max Krummenacher
2022-06-15 11:49 ` Max Krummenacher
2022-06-15 11:49 ` [PATCH v2 07/18] ARM: dts: imx6q-apalis: Move Atmel MXT touch ctrl " Max Krummenacher
2022-06-15 11:49 ` Max Krummenacher
2022-06-15 11:49 ` [PATCH v2 08/18] ARM: dts: imx6q-apalis: move gpio-keys " Max Krummenacher
2022-06-15 11:49 ` Max Krummenacher
2022-06-15 11:49 ` [PATCH v2 09/18] ARM: dts: imx6q-apalis: Add LVDS panel support Max Krummenacher
2022-06-15 11:49 ` Max Krummenacher
2022-06-15 11:49 ` [PATCH v2 10/18] ARM: dts: imx6q-apalis: Disable HDMI Max Krummenacher
2022-06-15 11:49 ` Max Krummenacher
2022-06-15 11:49 ` [PATCH v2 11/18] ARM: dts: imx6q-apalis: Disable stmpe touchscreen Max Krummenacher
2022-06-15 11:49 ` Max Krummenacher
2022-06-15 11:50 ` Max Krummenacher [this message]
2022-06-15 11:50 ` [PATCH v2 12/18] ARM: dts: imx6q-apalis: Add ov5640 mipi csi camera Max Krummenacher
2022-06-15 11:50 ` [PATCH v2 13/18] ARM: dts: imx6q-apalis: Add adv7280 video input Max Krummenacher
2022-06-15 11:50 ` Max Krummenacher
2022-06-15 11:50 ` [PATCH v2 14/18] ARM: dts: imx6q-apalis: Clean-up sd card support Max Krummenacher
2022-06-15 11:50 ` Max Krummenacher
2022-06-15 11:50 ` [PATCH v2 15/18] ARM: dts: imx6q-apalis: Add support for Toradex Ixora V1.2 carrier boards Max Krummenacher
2022-06-15 11:50 ` Max Krummenacher
2022-06-15 11:50 ` [PATCH v2 16/18] ARM: dts: imx6q-apalis: backlight pwm: Simplify inverted backlight Max Krummenacher
2022-06-15 11:50 ` Max Krummenacher
2022-06-15 11:50 ` [PATCH v2 17/18] ARM: dts: imx6q-apalis: backlight pwm: Adapt brightness steps Max Krummenacher
2022-06-15 11:50 ` Max Krummenacher
2022-06-15 11:50 ` [PATCH v2 18/18] ARM: dts: imx6q-apalis: Cleanup Max Krummenacher
2022-06-15 11:50 ` Max Krummenacher
2022-06-20 1:14 ` [PATCH v2 00/18] ARM: dts: imx6q-apalis: Misc improvements and newly added carrier Shawn Guo
2022-06-20 1:14 ` Shawn Guo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220615115006.45672-13-max.oss.09@gmail.com \
--to=max.oss.09@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=festevam@gmail.com \
--cc=kernel@pengutronix.de \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=max.krummenacher@toradex.com \
--cc=oleksandr.suvorov@toradex.com \
--cc=robh+dt@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.