summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/freescale
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2021-05-04 14:54:19 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2021-05-05 23:03:56 +0200
commita08f3c7add53eaaa4ab453ac3f06c24ec8927579 (patch)
treed0d794479622b8054d0ae746a5dff0524cfe472c /arch/arm64/boot/dts/freescale
parent82e97870feb6303ecc71371abc76a606e724b065 (diff)
parent28910e01c43d9735f06fddbeaa42df3e112d1b3e (diff)
Merge commit '28910e01c43d9735f06fddbeaa42df3e112d1b3e' into toradex_5.4-2.3.x-imx
This basically contains NXP BSP Patch L5.4.70_2.3.2 plus kernel.org v5.4.115 from https://github.com/Freescale/linux-fslc/tree/5.4-2.3.x-imx. Related-to: ELB-3958 Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Diffstat (limited to 'arch/arm64/boot/dts/freescale')
-rw-r--r--arch/arm64/boot/dts/freescale/Makefile2
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi1
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi2
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi1
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi1
-rw-r--r--arch/arm64/boot/dts/freescale/imx8dxl-evk.dts5
-rwxr-xr-xarch/arm64/boot/dts/freescale/imx8mm-evk.dts15
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h2
-rwxr-xr-xarch/arm64/boot/dts/freescale/imx8mp-evk-basler-ov2775.dts132
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mp-evk-basler-ov5640.dts7
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mp-evk-basler.dts5
-rwxr-xr-xarch/arm64/boot/dts/freescale/imx8mp-evk-dual-basler.dts124
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mp-evk-dual-ov2775.dts7
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mp-evk-ov2775-ov5640.dts1
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mp-evk-ov2775.dts1
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mp-evk.dts7
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h2
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mp.dtsi39
-rwxr-xr-xarch/arm64/boot/dts/freescale/imx8mq-evk.dts25
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mq-pinfunc.h6
-rwxr-xr-xarch/arm64/boot/dts/freescale/imx8mq.dtsi10
-rw-r--r--arch/arm64/boot/dts/freescale/imx8qm-mek-dp.dts123
-rw-r--r--arch/arm64/boot/dts/freescale/imx8qm-mek-hdmi.dts20
23 files changed, 496 insertions, 42 deletions
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 366e37c41749..51a1301f3254 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -77,6 +77,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb imx8mp-evk-root.dtb imx8mp-evk-inmate.d
imx8mp-evk-dsp.dtb imx8mp-evk-ov2775.dtb imx8mp-evk-basler.dtb imx8mp-evk-pcie-ep.dtb \
imx8mp-evk-spdif-lb.dtb imx8mp-evk-dsp-lpa.dtb imx8mp-evk-ov2775-ov5640.dtb \
imx8mp-evk-basler-ov5640.dtb imx8mp-evk-dual-ov2775.dtb \
+ imx8mp-evk-basler-ov2775.dtb imx8mp-evk-dual-basler.dtb \
imx8mp-verdin-nonwifi-dahlia.dtb \
imx8mp-verdin-nonwifi-dev.dtb \
imx8mp-verdin-wifi-dahlia.dtb \
@@ -105,6 +106,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8qm-mek.dtb imx8qm-mek-ov5640.dtb \
imx8qm-mek-jdi-wuxga-lvds1-panel.dtb \
imx8qm-mek-jdi-wuxga-lvds1-panel-rpmsg.dtb \
imx8qm-mek-usdhc3-m2.dtb imx8qm-mek-usd-wifi.dtb \
+ imx8qm-mek-dp.dtb \
imx8qm-lpddr4-val.dtb imx8qm-lpddr4-val-mqs.dtb \
imx8qm-lpddr4-val-spdif.dtb imx8qm-mek-ca53.dtb \
imx8qm-mek-ca72.dtb imx8qm-lpddr4-val-ca53.dtb \
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
index df48daea83a2..0a020a355508 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
@@ -150,6 +150,7 @@
ranges = <0x0 0x00 0x1700000 0x100000>;
reg = <0x00 0x1700000 0x0 0x100000>;
interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+ dma-coherent;
sec_jr0: jr@10000 {
compatible = "fsl,sec-v5.4-job-ring",
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
index 9dcf09664644..6b5caecfea53 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
@@ -93,7 +93,7 @@
reboot {
compatible ="syscon-reboot";
regmap = <&rst>;
- offset = <0xb0>;
+ offset = <0>;
mask = <0x02>;
};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
index e19e05ddae08..b5c647be6857 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
@@ -256,6 +256,7 @@
ranges = <0x0 0x00 0x1700000 0x100000>;
reg = <0x00 0x1700000 0x0 0x100000>;
interrupts = <0 75 0x4>;
+ dma-coherent;
sec_jr0: jr@10000 {
compatible = "fsl,sec-v5.4-job-ring",
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
index 91b1eb8a2917..f4d0d2ad2d67 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
@@ -259,6 +259,7 @@
ranges = <0x0 0x00 0x1700000 0x100000>;
reg = <0x00 0x1700000 0x0 0x100000>;
interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+ dma-coherent;
sec_jr0: jr@10000 {
compatible = "fsl,sec-v5.4-job-ring",
diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
index 9d06d25a2d8f..2df401327313 100644
--- a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
@@ -343,6 +343,7 @@
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
+ power-domains = <&pd IMX_SC_R_BOARD_R1>;
};
pca6416_2: gpio@21 {
@@ -350,6 +351,7 @@
reg = <0x21>;
gpio-controller;
#gpio-cells = <2>;
+ power-domains = <&pd IMX_SC_R_BOARD_R2>;
};
pca9548_1: pca9548@70 {
@@ -357,6 +359,7 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <0x70>;
+ power-domains = <&pd IMX_SC_R_BOARD_R0>;
i2c@0 {
#address-cells = <1>;
@@ -467,6 +470,7 @@
#gpio-cells = <2>;
interrupt-parent = <&lsio_gpio2>;
interrupts = <5 IRQ_TYPE_EDGE_RISING>;
+ power-domains = <&pd IMX_SC_R_BOARD_R4>;
};
pca9548_2: pca9548@70 {
@@ -474,6 +478,7 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <0x70>;
+ power-domains = <&pd IMX_SC_R_BOARD_R3>;
i2c@0 {
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
index 08bfdda7cdba..d767cc4490a6 100755
--- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
@@ -230,7 +230,15 @@
<&clk IMX8MM_CLK_PCIE1_PHY>,
<&pcie0_refclk>;
clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+ assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
+ <&clk IMX8MM_CLK_PCIE1_PHY>,
+ <&clk IMX8MM_CLK_PCIE1_CTRL>;
+ assigned-clock-rates = <10000000>, <100000000>, <250000000>;
+ assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
+ <&clk IMX8MM_SYS_PLL2_100M>,
+ <&clk IMX8MM_SYS_PLL2_250M>;
ext_osc = <1>;
+ l1ss-disabled;
status = "okay";
};
@@ -242,6 +250,13 @@
<&clk IMX8MM_CLK_PCIE1_PHY>,
<&pcie0_refclk>;
clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+ assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
+ <&clk IMX8MM_CLK_PCIE1_PHY>,
+ <&clk IMX8MM_CLK_PCIE1_CTRL>;
+ assigned-clock-rates = <10000000>, <100000000>, <250000000>;
+ assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
+ <&clk IMX8MM_SYS_PLL2_100M>,
+ <&clk IMX8MM_SYS_PLL2_250M>;
ext_osc = <1>;
status = "disabled";
};
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h b/arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h
index e7fac56db320..df873eb12021 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h
+++ b/arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h
@@ -124,7 +124,7 @@
#define MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x0A4 0x30C 0x000 0x0 0x0
#define MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1 0x0A4 0x30C 0x000 0x5 0x0
#define MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x0A8 0x310 0x000 0x0 0x0
-#define MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2 0x0A8 0x31 0x000 0x5 0x0
+#define MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2 0x0A8 0x310 0x000 0x5 0x0
#define MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x0AC 0x314 0x000 0x0 0x0
#define MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3 0x0AC 0x314 0x000 0x5 0x0
#define MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x0B0 0x318 0x000 0x0 0x0
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-basler-ov2775.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk-basler-ov2775.dts
new file mode 100755
index 000000000000..671a40a2a67d
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk-basler-ov2775.dts
@@ -0,0 +1,132 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2020-2021 NXP
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include "imx8mp-evk.dts"
+
+&iomuxc {
+ pinctrl_csi1_pwn: csi1_pwn_grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_SAI1_RXC__GPIO4_IO01 0x19
+ >;
+ };
+
+ pinctrl_csi1_rst: csi1_rst_grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00 0x19
+ >;
+ };
+};
+
+&i2c2 {
+ /delete-node/ov5640_mipi@3c;
+
+ basler_camera@36 {
+ compatible = "basler,basler-camera-vvcam", "basler-camera-vvcam";
+ reg = <0x36>;
+ csi_id = <0x00>;
+ status = "okay";
+
+ port {
+ basler_ep_0: endpoint {
+ data-lanes = <1 2 3 4>;
+ clock-lanes = <0>;
+ link-frequencies = /bits/ 64 <750000000>;
+
+ max-lane-frequency = /bits/ 64 <750000000>;
+ max-pixel-frequency = /bits/ 64 <266000000>;
+ max-data-rate = /bits/ 64 <0>;
+
+ remote-endpoint = <&mipi_csi0_ep>;
+ };
+ };
+ };
+};
+
+&i2c3 {
+ /delete-node/ov5640_mipi@3c;
+
+ ov2775_1: ov2775_mipi@36 {
+ compatible = "ovti,ov2775";
+ reg = <0x36>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_csi1_pwn>, <&pinctrl_csi1_rst>, <&pinctrl_csi_mclk>;
+ clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
+ clock-names = "csi_mclk";
+ assigned-clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
+ assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
+ assigned-clock-rates = <24000000>;
+ pwn-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+ rst-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+ csi_id = <1>;
+ mclk = <24000000>;
+ mclk_source = <0>;
+ status = "okay";
+
+ port {
+ ov2775_mipi_1_ep: endpoint {
+ data-lanes = <1 2 3 4>;
+ clock-lanes = <0>;
+ max-pixel-frequency = /bits/ 64 <266000000>;
+
+ remote-endpoint = <&mipi_csi1_ep>;
+ };
+ };
+ };
+
+};
+
+&mipi_csi_0 {
+ status = "okay";
+
+ port@0 {
+ mipi_csi0_ep: endpoint {
+ remote-endpoint = <&basler_ep_0>;
+ data-lanes = <4>;
+ csis-hs-settle = <16>;
+ };
+ };
+};
+
+&mipi_csi_1 {
+ status = "okay";
+
+ port@1 {
+ mipi_csi1_ep: endpoint {
+ remote-endpoint = <&ov2775_mipi_1_ep>;
+ data-lanes = <4>;
+ csis-hs-settle = <16>;
+ };
+ };
+};
+
+&isi_0 {
+ status = "disabled";
+};
+
+&isi_1 {
+ status = "disabled";
+};
+
+&isp_0 {
+ status = "okay";
+};
+
+&isp_1 {
+ status = "okay";
+};
+
+&dewarp {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-basler-ov5640.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk-basler-ov5640.dts
index 394975078018..9460d2c5952b 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk-basler-ov5640.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk-basler-ov5640.dts
@@ -28,7 +28,12 @@
basler_ep_0: endpoint {
data-lanes = <1 2 3 4>;
clock-lanes = <0>;
- link-frequencies = /bits/ 64 <248000000>;
+ link-frequencies = /bits/ 64 <750000000>;
+
+ max-lane-frequency = /bits/ 64 <750000000>;
+ max-pixel-frequency = /bits/ 64 <500000000>;
+ max-data-rate = /bits/ 64 <0>;
+
remote-endpoint = <&mipi_csi0_ep>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-basler.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk-basler.dts
index 255d286fcd8e..133dd1403036 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk-basler.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk-basler.dts
@@ -29,7 +29,10 @@
basler_ep_0: endpoint {
data-lanes = <1 2 3 4>;
clock-lanes = <0>;
- link-frequencies = /bits/ 64 <248000000>;
+ link-frequencies = /bits/ 64 <750000000>;
+ max-lane-frequency = /bits/ 64 <750000000>;
+ max-pixel-frequency = /bits/ 64 <500000000>;
+ max-data-rate = /bits/ 64 <0>;
remote-endpoint = <&mipi_csi0_ep>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-dual-basler.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk-dual-basler.dts
new file mode 100755
index 000000000000..b86e2eca4950
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk-dual-basler.dts
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2020-2021 NXP
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include "imx8mp-evk.dts"
+
+&i2c2 {
+ /delete-node/ov5640_mipi@3c;
+
+ basler_0: basler_camera_vvcam@36 {
+ compatible = "basler,basler-camera-vvcam", "basler-camera-vvcam";
+ reg = <0x36>;
+ csi_id = <0x00>;
+ status = "okay";
+
+ port {
+ basler_ep_0: endpoint {
+ data-lanes = <1 2 3 4>;
+ clock-lanes = <0>;
+ link-frequencies = /bits/ 64 <750000000>;
+
+ max-lane-frequency = /bits/ 64 <750000000>;
+ max-pixel-frequency = /bits/ 64 <266000000>;
+ max-data-rate = /bits/ 64 <0>;
+
+ remote-endpoint = <&mipi_csi0_ep>;
+ };
+ };
+ };
+};
+
+&i2c3 {
+ clock-frequency = <100000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c3>;
+ status = "okay";
+
+ /delete-node/ov5640_mipi@3c;
+
+ basler_1: basler_camera_vvcam@36 {
+ compatible = "basler,basler-camera-vvcam", "basler-camera-vvcam";
+ reg = <0x36>;
+ csi_id = <0x01>;
+ status = "okay";
+
+ port {
+ basler_ep_1: endpoint {
+ data-lanes = <1 2 3 4>;
+ clock-lanes = <0>;
+ link-frequencies = /bits/ 64 <750000000>;
+
+ max-lane-frequency = /bits/ 64 <750000000>;
+ max-pixel-frequency = /bits/ 64 <266000000>;
+ max-data-rate = /bits/ 64 <0>;
+
+ remote-endpoint = <&mipi_csi1_ep>;
+ };
+ };
+ };
+};
+
+&cameradev {
+ status = "okay";
+};
+
+&isi_0 {
+ status = "disabled";
+};
+
+&isi_1 {
+ status = "disabled";
+};
+
+&isp_0 {
+ status = "okay";
+};
+
+&isp_1 {
+ status = "okay";
+};
+
+&dewarp {
+ status = "okay";
+};
+
+&mipi_csi_0 {
+ status = "okay";
+ clock-frequency = <266000000>;
+ assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>;
+ assigned-clock-rates = <266000000>;
+
+ port@0 {
+ reg = <0>;
+ mipi_csi0_ep: endpoint {
+ remote-endpoint = <&basler_ep_0>;
+ data-lanes = <4>;
+ csis-hs-settle = <16>;
+ };
+ };
+};
+
+&mipi_csi_1 {
+ status = "okay";
+
+ port@1 {
+ reg = <1>;
+ mipi_csi1_ep: endpoint {
+ remote-endpoint = <&basler_ep_1>;
+ data-lanes = <4>;
+ csis-hs-settle = <16>;
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-dual-ov2775.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk-dual-ov2775.dts
index 6246158e0627..5c1f3888ea63 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk-dual-ov2775.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk-dual-ov2775.dts
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
- * Copyright 2020 NXP
+ * Copyright 2020-2021 NXP
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -39,6 +39,7 @@
ov2775_mipi_0_ep: endpoint {
data-lanes = <1 2 3 4>;
clock-lanes = <0>;
+ max-pixel-frequency = /bits/ 64 <266000000>;
remote-endpoint = <&mipi_csi0_ep>;
};
};
@@ -71,6 +72,7 @@
ov2775_mipi_1_ep: endpoint {
data-lanes = <1 2 3 4>;
clock-lanes = <0>;
+ max-pixel-frequency = /bits/ 64 <266000000>;
remote-endpoint = <&mipi_csi1_ep>;
};
};
@@ -103,6 +105,9 @@
&mipi_csi_0 {
status = "okay";
+ clock-frequency = <266000000>;
+ assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>;
+ assigned-clock-rates = <266000000>;
port@0 {
endpoint {
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-ov2775-ov5640.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk-ov2775-ov5640.dts
index d035e5e5cf35..46edd382d8b2 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk-ov2775-ov5640.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk-ov2775-ov5640.dts
@@ -53,6 +53,7 @@
ov2775_mipi_0_ep: endpoint {
data-lanes = <1 2 3 4>;
clock-lanes = <0>;
+ max-pixel-frequency = /bits/ 64 <266000000>;
remote-endpoint = <&mipi_csi0_ep>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-ov2775.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk-ov2775.dts
index 0b1d83122317..e241e3646c9a 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk-ov2775.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk-ov2775.dts
@@ -41,6 +41,7 @@
ov2775_mipi_0_ep: endpoint {
data-lanes = <1 2 3 4>;
clock-lanes = <0>;
+ max-pixel-frequency = /bits/ 64 <500000000>;
remote-endpoint = <&mipi_csi0_ep>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
index 4dfdf5908a0c..c7e15842933f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
@@ -681,13 +681,15 @@
ext_osc = <1>;
clocks = <&clk IMX8MP_CLK_HSIO_AXI_DIV>,
<&clk IMX8MP_CLK_PCIE_AUX>,
- <&clk IMX8MP_CLK_PCIE_PHY>,
+ <&clk IMX8MP_CLK_DUMMY>,
<&clk IMX8MP_CLK_PCIE_ROOT>;
clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI_SRC>,
<&clk IMX8MP_CLK_PCIE_AUX>;
+ assigned-clock-rates = <500000000>, <10000000>;
assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>,
<&clk IMX8MP_SYS_PLL2_50M>;
+ l1ss-disabled;
status = "okay";
};
@@ -697,11 +699,12 @@
ext_osc = <1>;
clocks = <&clk IMX8MP_CLK_HSIO_AXI_DIV>,
<&clk IMX8MP_CLK_PCIE_AUX>,
- <&clk IMX8MP_CLK_PCIE_PHY>,
+ <&clk IMX8MP_CLK_DUMMY>,
<&clk IMX8MP_CLK_PCIE_ROOT>;
clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI_SRC>,
<&clk IMX8MP_CLK_PCIE_AUX>;
+ assigned-clock-rates = <500000000>, <10000000>;
assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>,
<&clk IMX8MP_SYS_PLL2_50M>;
status = "disabled";
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h b/arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h
index a60017a18cd8..5f175e09879f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h
+++ b/arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h
@@ -722,7 +722,7 @@
#define MX8MP_IOMUXC_I2C3_SDA__GPIO5_IO19 0x214 0x474 0x000 0x5 0x0
#define MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL 0x218 0x478 0x5BC 0x0 0x5
#define MX8MP_IOMUXC_I2C4_SCL__PWM2_OUT 0x218 0x478 0x000 0x1 0x0
-#define MX8MP_IOMUXC_I2C4_SCL__PCIE_CLKREQ_B 0x218 0x478 0x5A0 0x2 0x0
+#define MX8MP_IOMUXC_I2C4_SCL__PCIE_CLKREQ_B 0x218 0x478 0x5A0 0x12 0x0
#define MX8MP_IOMUXC_I2C4_SCL__ECSPI2_MISO 0x218 0x478 0x56C 0x3 0x2
#define MX8MP_IOMUXC_I2C4_SCL__GPIO5_IO20 0x218 0x478 0x000 0x5 0x0
#define MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA 0x21C 0x47C 0x5C0 0x0 0x5
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 3a16d9d80a56..62ac5c025a5f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
- * Copyright 2019 NXP
+ * Copyright 2019-2021 NXP
*/
#include <dt-bindings/clock/imx8mp-clock.h>
@@ -206,6 +206,12 @@
no-map;
reg = <0 0x92400000 0 0x2000000>;
};
+
+ /* used only by tuning tool, can be removed for normal case */
+ isp0_reserved: isp0@94400000 {
+ no-map;
+ reg = <0 0x94400000 0 0x10000000>;
+ };
};
osc_32k: clock-osc-32k {
@@ -1810,13 +1816,17 @@
compatible = "fsl,imx8mp-isp";
reg = <0x32e10000 0x10000>;
interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX8MP_CLK_MEDIA_ISP_SRC>;
- clock-names = "isp_root";
+ clocks = <&clk IMX8MP_CLK_MEDIA_ISP_SRC>,
+ <&clk IMX8MP_CLK_MEDIA_AXI>,
+ <&clk IMX8MP_CLK_MEDIA_APB>;
+ clock-names = "core", "axi", "ahb";
assigned-clocks = <&clk IMX8MP_CLK_MEDIA_ISP_SRC>;
assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
assigned-clock-rates = <500000000>;
power-domains = <&ispdwp_pd>;
id = <0>;
+ gpr = <&mediamix_blk_ctl>;
+ memory-region = <&isp0_reserved>;
status = "disabled";
};
@@ -1824,13 +1834,16 @@
compatible = "fsl,imx8mp-isp";
reg = <0x32e20000 0x10000>;
interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX8MP_CLK_MEDIA_ISP_SRC>;
- clock-names = "isp_root";
+ clocks = <&clk IMX8MP_CLK_MEDIA_ISP_SRC>,
+ <&clk IMX8MP_CLK_MEDIA_AXI>,
+ <&clk IMX8MP_CLK_MEDIA_APB>;
+ clock-names = "core", "axi", "ahb";
assigned-clocks = <&clk IMX8MP_CLK_MEDIA_ISP_SRC>;
assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
assigned-clock-rates = <500000000>;
power-domains = <&ispdwp_pd>;
id = <1>;
+ gpr = <&mediamix_blk_ctl>;
status = "disabled";
};
@@ -1838,6 +1851,15 @@
compatible = "fsl,imx8mp-dwe";
reg = <0x32e30000 0x10000>;
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk IMX8MP_CLK_MEDIA_AXI>,
+ <&clk IMX8MP_CLK_MEDIA_AXI>,
+ <&clk IMX8MP_CLK_MEDIA_APB>;
+ clock-names = "core", "axi", "ahb";
+ assigned-clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
+ <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
+ assigned-clock-rates = <500000000>, <200000000>;
+ power-domains = <&ispdwp_pd>;
+ id = <0>;
status = "disabled";
};
@@ -1871,7 +1893,7 @@
<&clk IMX8MP_CLK_MEDIA_APB>;
clock-names = "mipi_clk", "disp_axi", "disp_apb";
assigned-clocks = <&clk IMX8MP_CLK_MEDIA_CAM2_PIX>;
- assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>;
+ assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>;
assigned-clock-rates = <266000000>;
bus-width = <4>;
csi-gpr = <&mediamix_gasket1>;
@@ -1887,10 +1909,8 @@
pcie_phy: pcie-phy@32f00000 {
compatible = "fsl,imx8mp-pcie-phy";
reg = <0x0 0x32f00000 0x0 0x10000>;
- clocks = <&clk IMX8MP_CLK_PCIE_PHY>;
+ clocks = <&clk IMX8MP_CLK_DUMMY>;
clock-names = "phy";
- assigned-clocks = <&clk IMX8MP_CLK_PCIE_PHY>;
- assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
#phy-cells = <0>;
status = "disabled";
};
@@ -1940,6 +1960,7 @@
ranges = <0x81000000 0 0x00000000 0x0 0x1ff80000 0 0x00010000 /* downstream I/O 64KB */
0x82000000 0 0x18000000 0x0 0x18000000 0 0x07f00000>; /* non-prefetchable memory */
num-lanes = <1>;
+ num-viewport = <4>;
interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; /* eDMA */
interrupt-names = "msi", "dma";
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
index 29bbcffdbb15..3d48c558b43b 100755
--- a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
@@ -662,7 +662,16 @@
<&clk IMX8MQ_CLK_PCIE1_PHY>,
<&pcie0_refclk>;
clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+ assigned-clocks = <&clk IMX8MQ_CLK_PCIE1_AUX>,
+ <&clk IMX8MQ_CLK_PCIE1_PHY>,
+ <&clk IMX8MQ_CLK_PCIE1_CTRL>;
+ assigned-clock-rates = <10000000>, <100000000>, <250000000>;
+ assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_50M>,
+ <&clk IMX8MQ_SYS2_PLL_100M>,
+ <&clk IMX8MQ_SYS2_PLL_250M>;
hard-wired = <1>;
+ vph-supply = <&vgen5_reg>;
+ l1ss-disabled;
status = "okay";
};
@@ -676,6 +685,15 @@
<&clk IMX8MQ_CLK_PCIE2_PHY>,
<&pcie1_refclk>;
clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+ assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_AUX>,
+ <&clk IMX8MQ_CLK_PCIE1_PHY>,
+ <&clk IMX8MQ_CLK_PCIE1_CTRL>;
+ assigned-clock-rates = <10000000>, <100000000>, <250000000>;
+ assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_50M>,
+ <&clk IMX8MQ_SYS2_PLL_100M>,
+ <&clk IMX8MQ_SYS2_PLL_250M>;
+ vph-supply = <&vgen5_reg>;
+ l1ss-disabled;
status = "okay";
};
@@ -687,6 +705,13 @@
<&clk IMX8MQ_CLK_PCIE2_PHY>,
<&pcie1_refclk>;
clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+ assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_AUX>,
+ <&clk IMX8MQ_CLK_PCIE1_PHY>,
+ <&clk IMX8MQ_CLK_PCIE1_CTRL>;
+ assigned-clock-rates = <10000000>, <100000000>, <250000000>;
+ assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_50M>,
+ <&clk IMX8MQ_SYS2_PLL_100M>,
+ <&clk IMX8MQ_SYS2_PLL_250M>;
status = "disabled";
};
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-pinfunc.h b/arch/arm64/boot/dts/freescale/imx8mq-pinfunc.h
index b94b02080a34..760321ac5f94 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-pinfunc.h
+++ b/arch/arm64/boot/dts/freescale/imx8mq-pinfunc.h
@@ -130,7 +130,7 @@
#define MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0x0A4 0x30C 0x000 0x0 0x0
#define MX8MQ_IOMUXC_SD1_CMD_GPIO2_IO1 0x0A4 0x30C 0x000 0x5 0x0
#define MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x0A8 0x310 0x000 0x0 0x0
-#define MX8MQ_IOMUXC_SD1_DATA0_GPIO2_IO2 0x0A8 0x31 0x000 0x5 0x0
+#define MX8MQ_IOMUXC_SD1_DATA0_GPIO2_IO2 0x0A8 0x310 0x000 0x5 0x0
#define MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x0AC 0x314 0x000 0x0 0x0
#define MX8MQ_IOMUXC_SD1_DATA1_GPIO2_IO3 0x0AC 0x314 0x000 0x5 0x0
#define MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x0B0 0x318 0x000 0x0 0x0
@@ -555,12 +555,12 @@
#define MX8MQ_IOMUXC_I2C3_SDA_TPSMP_HDATA21 0x228 0x490 0x000 0x7 0x0
#define MX8MQ_IOMUXC_I2C4_SCL_I2C4_SCL 0x22C 0x494 0x000 0x0 0x0
#define MX8MQ_IOMUXC_I2C4_SCL_PWM2_OUT 0x22C 0x494 0x000 0x1 0x0
-#define MX8MQ_IOMUXC_I2C4_SCL_PCIE1_CLKREQ_B 0x22C 0x494 0x524 0x2 0x0
+#define MX8MQ_IOMUXC_I2C4_SCL_PCIE1_CLKREQ_B 0x22C 0x494 0x524 0x12 0x0
#define MX8MQ_IOMUXC_I2C4_SCL_GPIO5_IO20 0x22C 0x494 0x000 0x5 0x0
#define MX8MQ_IOMUXC_I2C4_SCL_TPSMP_HDATA22 0x22C 0x494 0x000 0x7 0x0
#define MX8MQ_IOMUXC_I2C4_SDA_I2C4_SDA 0x230 0x498 0x000 0x0 0x0
#define MX8MQ_IOMUXC_I2C4_SDA_PWM1_OUT 0x230 0x498 0x000 0x1 0x0
-#define MX8MQ_IOMUXC_I2C4_SDA_PCIE2_CLKREQ_B 0x230 0x498 0x528 0x2 0x0
+#define MX8MQ_IOMUXC_I2C4_SDA_PCIE2_CLKREQ_B 0x230 0x498 0x528 0x12 0x0
#define MX8MQ_IOMUXC_I2C4_SDA_GPIO5_IO21 0x230 0x498 0x000 0x5 0x0
#define MX8MQ_IOMUXC_I2C4_SDA_TPSMP_HDATA23 0x230 0x498 0x000 0x7 0x0
#define MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX 0x234 0x49C 0x4F4 0x0 0x0
diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
index 18f33e67edad..d8e72a49c82a 100755
--- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
@@ -1443,8 +1443,9 @@
power-domains = <&pgc_pcie>;
resets = <&src IMX8MQ_RESET_PCIEPHY>,
<&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
- <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
- reset-names = "pciephy", "apps", "turnoff";
+ <&src IMX8MQ_RESET_PCIE_CTRL_APPS_CLK_REQ>,
+ <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
+ reset-names = "pciephy", "apps", "clkreq", "turnoff";
status = "disabled";
};
@@ -1473,8 +1474,9 @@
power-domains = <&pgc_pcie>;
resets = <&src IMX8MQ_RESET_PCIEPHY2>,
<&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>,
- <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>;
- reset-names = "pciephy", "apps", "turnoff";
+ <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_CLK_REQ>,
+ <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>;
+ reset-names = "pciephy", "apps", "clkreq", "turnoff";
status = "disabled";
};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek-dp.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek-dp.dts
new file mode 100644
index 000000000000..09a433429243
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8qm-mek-dp.dts
@@ -0,0 +1,123 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2021 NXP
+ * Oliver Brown <oliver.brown@nxp.com>
+ */
+ /* Three displays enabled: DP, LVDS, and MIPI DSI */
+
+/dts-v1/;
+
+#include "imx8qm-mek-rpmsg.dts"
+
+/ {
+ sound-hdmi-tx {
+ compatible = "fsl,imx-audio-cdnhdmi";
+ model = "imx-audio-hdmi-tx";
+ audio-cpu = <&sai5>;
+ protocol = <1>;
+ hdmi-out;
+ };
+
+ sound-hdmi-arc {
+ compatible = "fsl,imx-audio-spdif";
+ model = "imx-hdmi-arc";
+ spdif-controller = <&spdif1>;
+ spdif-in;
+ spdif-out;
+ };
+};
+
+&sai5 {
+ status = "okay";
+};
+
+&sai5_lpcg {
+ status = "okay";
+};
+
+&ldb1_phy {
+ status = "disabled";
+};
+
+&ldb1 {
+ status = "disabled";
+};
+
+&ldb2_phy {
+ status = "disabled";
+};
+
+&ldb2 {
+ status = "disabled";
+};
+
+&mipi0_dphy {
+ status = "disabled";
+};
+
+&mipi0_dsi_host {
+ status = "disabled";
+};
+
+&irqsteer_hdmi {
+ status = "okay";
+};
+
+&hdmi_lpcg_i2c0 {
+ status = "okay";
+};
+
+&hdmi_lpcg_lis_ipg {
+ status = "okay";
+};
+
+&hdmi_lpcg_pwm_ipg {
+ status = "okay";
+};
+
+&hdmi_lpcg_i2s {
+ status = "okay";
+};
+
+&hdmi_lpcg_gpio_ipg {
+ status = "okay";
+};
+
+&hdmi_lpcg_msi_hclk {
+ status = "okay";
+};
+
+&hdmi_lpcg_pxl {
+ status = "okay";
+};
+
+&hdmi_lpcg_phy {
+ status = "okay";
+};
+
+&hdmi_lpcg_apb_mux_csr {
+ status = "okay";
+};
+
+&hdmi_lpcg_apb_mux_ctrl {
+ status = "okay";
+};
+
+&hdmi_lpcg_apb {
+ status = "okay";
+};
+
+&hdmi {
+ compatible = "cdn,imx8qm-dp";
+ firmware-name = "dpfw.bin";
+ lane-mapping = <0x1b>;
+ status = "okay";
+};
+
+&spdif1 {
+ status = "okay";
+};
+
+&spdif1_lpcg {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek-hdmi.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek-hdmi.dts
index 10324988d63a..fe434e68fdf1 100644
--- a/arch/arm64/boot/dts/freescale/imx8qm-mek-hdmi.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qm-mek-hdmi.dts
@@ -3,7 +3,7 @@
* Copyright 2019 NXP
* Sandor Yu <Sandor.yu@nxp.com>
*/
- /* HDMI Only driver, LVDS is disabled */
+ /* Three display enabled: HDMI, LVDS, and MIPI DSI */
/dts-v1/;
@@ -43,11 +43,7 @@
status = "disabled";
};
-&ldb2_phy {
- status = "disabled";
-};
-
-&ldb2 {
+&mipi0_dphy {
status = "disabled";
};
@@ -55,18 +51,6 @@
status = "disabled";
};
-&mipi1_dphy {
- status = "disabled";
-};
-
-&mipi1_dsi_host {
- status = "disabled";
-};
-
-&mipi1_dphy {
- status = "disabled";
-};
-
&irqsteer_hdmi {
status = "okay";
};