|
| 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 = <®_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 = <®_cam>; |
| 88 | ++ VDIG-supply = <®_cam>; |
| 89 | ++ VDDL-supply = <®_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