summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/boot/dts/Makefile5
-rw-r--r--arch/arm/boot/dts/imx6qdl-apalis.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-colibri.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6ulz-lite-evk-btwifi-oob.dts22
-rw-r--r--arch/arm/boot/dts/imx6ulz-lite-evk-btwifi.dts10
-rw-r--r--arch/arm/boot/dts/imx6ulz-lite-evk.dts36
-rw-r--r--arch/arm/configs/apalis_imx6_defconfig2
-rw-r--r--arch/arm/configs/colibri-imx6ull_defconfig2
-rw-r--r--arch/arm/configs/colibri_imx6_defconfig2
-rw-r--r--arch/arm/configs/colibri_imx7_defconfig2
-rw-r--r--arch/arm/mach-imx/anatop.c14
-rw-r--r--arch/arm/mach-imx/cpu.c3
-rw-r--r--arch/arm/mach-imx/mxc.h7
-rw-r--r--arch/arm/mach-imx/pm-imx6.c4
14 files changed, 104 insertions, 7 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index ce4496481f76..a75056b166b3 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -611,7 +611,10 @@ dtb-$(CONFIG_SOC_IMX6ULL) += \
imx6ulz-14x14-evk-btwifi.dtb \
imx6ulz-14x14-evk-btwifi-oob.dtb \
imx6ulz-14x14-evk-emmc.dtb \
- imx6ulz-14x14-evk-gpmi-weim.dtb
+ imx6ulz-14x14-evk-gpmi-weim.dtb \
+ imx6ulz-lite-evk.dtb \
+ imx6ulz-lite-evk-btwifi.dtb \
+ imx6ulz-lite-evk-btwifi-oob.dtb
dtb-$(CONFIG_SOC_IMX6SLL) += \
imx6sll-lpddr2-arm2.dtb \
imx6sll-lpddr3-arm2.dtb \
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
index e99838904d52..e18ac19dd3bf 100644
--- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
@@ -553,6 +553,7 @@
pmic: pfuze100@08 {
compatible = "fsl,pfuze100";
reg = <0x08>;
+ fsl,pmic-stby-poweroff;
regulators {
sw1a_reg: sw1ab {
diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
index a8b2366f399a..82b3bcc4fd0f 100644
--- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -492,6 +492,7 @@
pmic: pfuze100@08 {
compatible = "fsl,pfuze100";
reg = <0x08>;
+ fsl,pmic-stby-poweroff;
regulators {
sw1a_reg: sw1ab {
diff --git a/arch/arm/boot/dts/imx6ulz-lite-evk-btwifi-oob.dts b/arch/arm/boot/dts/imx6ulz-lite-evk-btwifi-oob.dts
new file mode 100644
index 000000000000..e7ddeaa2a16d
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ulz-lite-evk-btwifi-oob.dts
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "imx6ulz-lite-evk-btwifi.dts"
+
+&pinctrl_wifi {
+ fsl,pins = <
+ /* MUXing for WL_HOST_WAKE */
+ MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15 0x13041
+ >;
+};
+
+&brcmf {
+ interrupt-parent = <&gpio2>;
+ interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "host-wake";
+};
diff --git a/arch/arm/boot/dts/imx6ulz-lite-evk-btwifi.dts b/arch/arm/boot/dts/imx6ulz-lite-evk-btwifi.dts
new file mode 100644
index 000000000000..98f498ae4655
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ulz-lite-evk-btwifi.dts
@@ -0,0 +1,10 @@
+/*
+ * Copyright 2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "imx6ulz-lite-evk.dts"
+#include "imx6ul-evk-btwifi.dtsi"
diff --git a/arch/arm/boot/dts/imx6ulz-lite-evk.dts b/arch/arm/boot/dts/imx6ulz-lite-evk.dts
new file mode 100644
index 000000000000..ce52209d2e18
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ulz-lite-evk.dts
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/dts-v1/;
+
+#include "imx6ull-9x9-evk.dts"
+
+/ {
+ model = "Freescale i.MX6 ULZ Lite EVK Board";
+
+ aliases {
+ /delete-property/ can0;
+ /delete-property/ can1;
+ /delete-property/ ethernet0;
+ /delete-property/ ethernet1;
+ };
+
+ /delete-node/ backlight;
+ /delete-node/ pxp_v4l2;
+};
+
+/delete-node/ &csi;
+/delete-node/ &fec1;
+/delete-node/ &fec2;
+/delete-node/ &flexcan1;
+/delete-node/ &flexcan2;
+/delete-node/ &lcdif;
+/delete-node/ &ov5640;
+/delete-node/ &pxp;
+/delete-node/ &reg_can_3v3;
+/delete-node/ &tsc;
diff --git a/arch/arm/configs/apalis_imx6_defconfig b/arch/arm/configs/apalis_imx6_defconfig
index 34deb8642c58..7c24e1875643 100644
--- a/arch/arm/configs/apalis_imx6_defconfig
+++ b/arch/arm/configs/apalis_imx6_defconfig
@@ -247,6 +247,8 @@ CONFIG_SPI=y
CONFIG_SPI_GPIO=y
CONFIG_SPI_IMX=y
CONFIG_SPI_SPIDEV=y
+CONFIG_PPS_CLIENT_LDISC=y
+CONFIG_PPS_CLIENT_GPIO=y
CONFIG_GPIO_SYSFS=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO=y
diff --git a/arch/arm/configs/colibri-imx6ull_defconfig b/arch/arm/configs/colibri-imx6ull_defconfig
index edf28b28a918..33e9a881f91c 100644
--- a/arch/arm/configs/colibri-imx6ull_defconfig
+++ b/arch/arm/configs/colibri-imx6ull_defconfig
@@ -246,6 +246,8 @@ CONFIG_SPI=y
CONFIG_SPI_GPIO=y
CONFIG_SPI_IMX=y
CONFIG_SPI_SPIDEV=y
+CONFIG_PPS_CLIENT_LDISC=y
+CONFIG_PPS_CLIENT_GPIO=y
CONFIG_GPIO_SYSFS=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO=y
diff --git a/arch/arm/configs/colibri_imx6_defconfig b/arch/arm/configs/colibri_imx6_defconfig
index 67d18d196569..dcf7cb0c8f68 100644
--- a/arch/arm/configs/colibri_imx6_defconfig
+++ b/arch/arm/configs/colibri_imx6_defconfig
@@ -249,6 +249,8 @@ CONFIG_SPI=y
CONFIG_SPI_GPIO=y
CONFIG_SPI_IMX=y
CONFIG_SPI_SPIDEV=y
+CONFIG_PPS_CLIENT_LDISC=y
+CONFIG_PPS_CLIENT_GPIO=y
CONFIG_GPIO_SYSFS=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO=y
diff --git a/arch/arm/configs/colibri_imx7_defconfig b/arch/arm/configs/colibri_imx7_defconfig
index dda17df3502d..65da597b5152 100644
--- a/arch/arm/configs/colibri_imx7_defconfig
+++ b/arch/arm/configs/colibri_imx7_defconfig
@@ -243,6 +243,8 @@ CONFIG_SPI=y
CONFIG_SPI_GPIO=y
CONFIG_SPI_IMX=y
CONFIG_SPI_SPIDEV=y
+CONFIG_PPS_CLIENT_LDISC=y
+CONFIG_PPS_CLIENT_GPIO=y
CONFIG_GPIO_SYSFS=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO=y
diff --git a/arch/arm/mach-imx/anatop.c b/arch/arm/mach-imx/anatop.c
index 7716fd5fe58a..6ee51d79d83a 100644
--- a/arch/arm/mach-imx/anatop.c
+++ b/arch/arm/mach-imx/anatop.c
@@ -235,6 +235,20 @@ void __init imx_init_revision_from_anatop(void)
digprog &= ~(0xff << 16);
digprog |= (MXC_CPU_IMX6ULZ << 16);
}
+
+ /* dummy ID for i.MX6ULZ Lite */
+ np = of_find_compatible_node(NULL, NULL, "fsl,imx6ull-ocotp");
+ if (np) {
+ src_base = of_iomap(np, 0);
+ WARN_ON(!src_base);
+ sbmr2 = readl_relaxed(src_base + 0x460);
+ iounmap(src_base);
+ }
+ if (sbmr2 & BIT(2)) {
+ digprog &= ~(0xff << 16);
+ digprog |= (MXC_CPU_IMX6ULZL << 16);
+ }
+
}
/*
diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c
index af109f37520d..95f75a770255 100644
--- a/arch/arm/mach-imx/cpu.c
+++ b/arch/arm/mach-imx/cpu.c
@@ -192,6 +192,9 @@ struct device * __init imx_soc_device_init(void)
case MXC_CPU_IMX6ULZ:
soc_id = "i.MX6ULZ";
break;
+ case MXC_CPU_IMX6ULZL:
+ soc_id = "i.MX6ULZL";
+ break;
case MXC_CPU_IMX7D:
soc_dev_attr->unique_id = kasprintf(GFP_KERNEL, "%llx", imx_get_soc_uid());
soc_id = "i.MX7D";
diff --git a/arch/arm/mach-imx/mxc.h b/arch/arm/mach-imx/mxc.h
index 95e7c3e6f141..43ee3c209513 100644
--- a/arch/arm/mach-imx/mxc.h
+++ b/arch/arm/mach-imx/mxc.h
@@ -42,6 +42,7 @@
#define MXC_CPU_IMX6ULL 0x65
#define MXC_CPU_IMX6SLL 0x67
#define MXC_CPU_IMX6ULZ 0x6B
+#define MXC_CPU_IMX6ULZL 0x6C /* Dummy ID */
#define MXC_CPU_IMX7D 0x72
#define MXC_CPU_IMX7ULP 0xff /* TBD */
@@ -86,7 +87,8 @@ static inline bool cpu_is_imx6ul(void)
static inline bool cpu_is_imx6ull(void)
{
return __mxc_cpu_type == MXC_CPU_IMX6ULL ||
- __mxc_cpu_type == MXC_CPU_IMX6ULZ;
+ __mxc_cpu_type == MXC_CPU_IMX6ULZ ||
+ __mxc_cpu_type == MXC_CPU_IMX6ULZL;
}
static inline bool cpu_is_imx6sll(void)
@@ -108,7 +110,8 @@ static inline bool cpu_is_imx6(void)
__mxc_cpu_type == MXC_CPU_IMX6UL ||
__mxc_cpu_type == MXC_CPU_IMX6ULL ||
__mxc_cpu_type == MXC_CPU_IMX6SLL ||
- __mxc_cpu_type == MXC_CPU_IMX6ULZ;
+ __mxc_cpu_type == MXC_CPU_IMX6ULZ ||
+ __mxc_cpu_type == MXC_CPU_IMX6ULZL;
}
static inline bool cpu_is_imx7d(void)
diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c
index 8fd1f7188725..42594e7046b7 100644
--- a/arch/arm/mach-imx/pm-imx6.c
+++ b/arch/arm/mach-imx/pm-imx6.c
@@ -1353,7 +1353,6 @@ void __init imx6q_pm_init(void)
imx6_pm_common_init(&imx6q_lpddr2_pm_data);
else
imx6_pm_common_init(&imx6q_pm_data);
-#ifndef CONFIG_POWER_RESET_GPIO
/*
* if no specific power off function in board file, power off system by
* stop mode
@@ -1361,14 +1360,12 @@ void __init imx6q_pm_init(void)
if (!pm_power_off)
if (of_machine_is_compatible("toradex,apalis_imx6q"))
pm_power_off = imx6_stop_mode_poweroff;
-#endif
}
void __init imx6dl_pm_init(void)
{
imx6_pm_common_init(&imx6dl_pm_data);
-#ifndef CONFIG_POWER_RESET_GPIO
/*
* if no specific power off function in board file, power off system by
* stop mode
@@ -1376,7 +1373,6 @@ void __init imx6dl_pm_init(void)
if (!pm_power_off)
if (of_machine_is_compatible("toradex,colibri_imx6dl"))
pm_power_off = imx6_stop_mode_poweroff;
-#endif
}
void __init imx6sl_pm_init(void)