summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2018-09-29 13:54:42 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:34:24 +0800
commit17cb93269cf141445a4f0b387bda91f7a16de426 (patch)
tree215327c442450b2bb1715c5e2c3401dfbeb24a89 /arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts
parentd67822371c404a45fbf06f8d458da5d4cbc063f5 (diff)
MLK-19773 ARM64: dts support camera in DomU
Use ISI0-3 in DomU, use ISI4-7 in Dom0. BuildInfo: - SCFW a958746e, SECO-FW 31fabbff, IMX-MKIMAGE f244aefa, ATF 1590be0 - U-Boot 2018.03-00707-g884cada50b Use `mx8_v4l2_cap_drm.out -cam 0xf` to test camera in Dom0 and DomU after `systemctl stop weston`. One remaing issue is that ISI_CH0 is the parent power domain, if dom0 runtime power down this domain, DomU will camera will panic. Since there is an i2c controller passthrough, the orignal backend pvi2c adapter idx will be changed to 0, so reflect that change in domu.dts. Signed-off-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts')
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts90
1 files changed, 84 insertions, 6 deletions
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts
index 10691616d7cf..6a242fe786d6 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts
@@ -37,6 +37,11 @@
dpu1 = &dpu2;
ldb1 = &ldb2;
serial1 = &lpuart1;
+ isi0 = &isi_0;
+ isi1 = &isi_1;
+ isi2 = &isi_2;
+ isi3 = &isi_3;
+ csi0 = &mipi_csi_0;
};
cpus {
@@ -286,7 +291,7 @@
status = "okay";
};
- xen_i2c1: xen_i2c@1 {
+ xen_i2c0: xen_i2c@0 {
compatible = "xen,i2c";
be-adapter = "5a800000.i2c";
status = "okay";
@@ -474,7 +479,7 @@
/delete-node/ &ldb1_phy;
/delete-node/ &ldb1;
/delete-node/ &lvds1_pwm;
-/delete-node/ &camera;
+/*/delete-node/ &camera;*/
/delete-node/ &adc0;
/delete-node/ &adc1;
/delete-node/ &i2c0;
@@ -504,8 +509,8 @@
/delete-node/ &irqsteer_lvds0;
/delete-node/ &i2c1_lvds0;
-/delete-node/ &irqsteer_csi0;
-/delete-node/ &i2c0_mipi_csi0;
+/*/delete-node/ &irqsteer_csi0;*/
+/*/delete-node/ &i2c0_mipi_csi0;*/
/delete-node/ &irqsteer_csi1;
/delete-node/ &i2c0_mipi_csi1;
/delete-node/ &lpspi0;
@@ -560,7 +565,7 @@
status = "disabled";
};
-/delete-node/ &gpio0_mipi_csi0;
+/*/delete-node/ &gpio0_mipi_csi0;*/
/delete-node/ &gpio0_mipi_csi1;
/delete-node/ &gpt0;
/delete-node/ &pwm0;
@@ -826,7 +831,7 @@
status = "okay";
};
-&xen_i2c1 {
+&xen_i2c0 {
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <100000>;
@@ -850,3 +855,76 @@
interrupt-open-drain;
};
};
+
+/* Camera */
+/delete-node/ &isi_4;
+/delete-node/ &isi_5;
+/delete-node/ &isi_6;
+/delete-node/ &isi_7;
+/delete-node/ &mipi_csi_1;
+
+&gpio0_mipi_csi0 {
+ status = "okay";
+};
+
+&irqsteer_csi0 {
+ status = "okay";
+};
+
+&isi_0 {
+ status = "okay";
+};
+
+&isi_1 {
+ status = "okay";
+};
+
+&isi_2 {
+ status = "okay";
+};
+
+&isi_3 {
+ status = "okay";
+};
+
+&mipi_csi_0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ virtual-channel;
+ status = "okay";
+
+ /* Camera 0 MIPI CSI-2 (CSIS0) */
+ port@0 {
+ reg = <0>;
+ mipi_csi0_ep: endpoint {
+ remote-endpoint = <&max9286_0_ep>;
+ data-lanes = <1 2 3 4>;
+ };
+ };
+};
+
+&i2c0_mipi_csi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ clock-frequency = <100000>;
+ status = "okay";
+
+
+ max9286_mipi@6A {
+ compatible = "maxim,max9286_mipi";
+ reg = <0x6A>;
+ clocks = <&clk IMX8QM_CLK_DUMMY>;
+ clock-names = "capture_mclk";
+ mclk = <27000000>;
+ mclk_source = <0>;
+ pwn-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
+ virtual-channel;
+ port {
+ max9286_0_ep: endpoint {
+ remote-endpoint = <&mipi_csi0_ep>;
+ data-lanes = <1 2 3 4>;
+ };
+ };
+ };
+};