summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2016-02-09 16:15:28 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2016-06-24 14:46:16 +0200
commit7f9ad0ee55abbc89b433c4ff14e64eb35c831370 (patch)
tree81077abe034da896fca5292c751e109668f18782
parent73c06d69321c45b69ffc864cbaaa7143da87d186 (diff)
ARM: dts: imx7d-colibri: use external Ethernet PHY clock
Add workaround for M4 NMI issue. Set the Ethernet PHY reference clock to be generated externaly from the i.MX 7 by default (Colibri i.MX 7 V1.1 sample batch) Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
-rw-r--r--arch/arm/boot/dts/imx7d-colibri.dts18
-rw-r--r--arch/arm/mach-imx/mach-imx7d.c1
2 files changed, 18 insertions, 1 deletions
diff --git a/arch/arm/boot/dts/imx7d-colibri.dts b/arch/arm/boot/dts/imx7d-colibri.dts
index f6fb6d4ebb17..caed41f4ad46 100644
--- a/arch/arm/boot/dts/imx7d-colibri.dts
+++ b/arch/arm/boot/dts/imx7d-colibri.dts
@@ -11,6 +11,9 @@
#include <dt-bindings/input/input.h>
#include "imx7d.dtsi"
+/* define USE_ENET_OUT when the PHY clock is provided by the i.MX7 */
+/* #define USE_ENET_OUT */
+
/ {
model = "Toradex Colibri iMX7D on Colibri Evaluation Board V3";
compatible = "toradex,colibri_imx7d-eval", "toradex,colibri_imx7d", \
@@ -144,7 +147,11 @@
<&clks IMX7D_PLL_ENET_MAIN_50M_CLK>,
<&clks IMX7D_ENET1_REF_ROOT_CLK>;
clock-names = "ipg", "ahb", "ptp",
+#ifdef USE_ENET_OUT
"enet_clk_ref", "enet_out";
+#else
+ "enet_clk_ref", "no_enet_out";
+#endif
assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
<&clks IMX7D_ENET1_TIME_ROOT_CLK>;
@@ -554,8 +561,17 @@
MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x73
MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x73
MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x73
-
+#ifdef USE_ENET_OUT
+#if 1
MX7D_PAD_GPIO1_IO12__CCM_ENET_REF_CLK1 0x40000073
+#else
+/* workaround ethernet & M4 NMI issue */
+ MX7D_PAD_GPIO1_IO12__CCM_ENET_REF_CLK1 0x73
+ MX7D_PAD_I2C1_SDA__CCM_ENET_REF_CLK1 0x40000070
+#endif
+#else
+ MX7D_PAD_GPIO1_IO12__CCM_ENET_REF_CLK1 0x73
+#endif
MX7D_PAD_SD2_CD_B__ENET1_MDIO 0x3
MX7D_PAD_SD2_WP__ENET1_MDC 0x3
>;
diff --git a/arch/arm/mach-imx/mach-imx7d.c b/arch/arm/mach-imx/mach-imx7d.c
index fa05cdd3d43b..c3a51f59980c 100644
--- a/arch/arm/mach-imx/mach-imx7d.c
+++ b/arch/arm/mach-imx/mach-imx7d.c
@@ -10,6 +10,7 @@
#include <linux/of_platform.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
+#include <linux/clk.h>
#include <linux/phy.h>
#include <linux/pm_opp.h>
#include <linux/regmap.h>