summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2020-04-15 12:14:22 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2020-04-20 15:09:12 +0200
commit4be9911e2f673bed4ba7c16e80bddf365833f27c (patch)
treef243e99d83573180262b0e3a31c28ca8428a90ca /arch
parent4b919832ad3cd33fa6fbd2a1eefd85b99cf42b31 (diff)
downloadbarebox-4be9911e2f673bed4ba7c16e80bddf365833f27c.tar.gz
barebox-4be9911e2f673bed4ba7c16e80bddf365833f27c.tar.xz
ARM: dts. i.MX7: add stopgap solution for barebox UART clock breakage
Commit 8b2104d740 ("driver: Call of_clk_set_defaults for each probed device") made barebox act on the assigned-clock-parents property everywhere, not only for clock provider nodes. This breaks at least the serial console on the i.MX7 SabreSD board; only garbage is output if the patch is not reverted. As stopgap measure, override these properties for all enabled uart nodes in the barebox i.MX7 device tree. This reverts the behavior to what it was like before the offending commit. This is of course no real solution, as obviously Linux was fine dealing with these properties before. But this hack should at least fix the serial console for the boards that were broken in v2020.03.0. When a proper fix follows, this patch can be reverted. Cc: Andrey Smirnov <andrew.smirnov@gmail.com> Cc: Lucas Stach <l.stach@pengutronix.de> Cc: Juergen Borleis <jbe@pengutronix.de> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/dts/imx7d-sdb.dts11
-rw-r--r--arch/arm/dts/imx7d-zii-rmu2.dts11
-rw-r--r--arch/arm/dts/imx7d-zii-rpu2.dts11
-rw-r--r--arch/arm/dts/imx7s-warp.dts16
4 files changed, 49 insertions, 0 deletions
diff --git a/arch/arm/dts/imx7d-sdb.dts b/arch/arm/dts/imx7d-sdb.dts
index b90ada61b8..16bfabe9b3 100644
--- a/arch/arm/dts/imx7d-sdb.dts
+++ b/arch/arm/dts/imx7d-sdb.dts
@@ -28,3 +28,14 @@
line-name = "enet-rst-b";
};
};
+
+/* FIXME: barebox serial is broken when barebox applies requested reparenting */
+&uart1 {
+ /delete-property/ assigned-clocks;
+ /delete-property/ assigned-clock-parents;
+};
+
+&uart6 {
+ /delete-property/ assigned-clocks;
+ /delete-property/ assigned-clock-parents;
+};
diff --git a/arch/arm/dts/imx7d-zii-rmu2.dts b/arch/arm/dts/imx7d-zii-rmu2.dts
index a4116308bf..41566f54a1 100644
--- a/arch/arm/dts/imx7d-zii-rmu2.dts
+++ b/arch/arm/dts/imx7d-zii-rmu2.dts
@@ -7,6 +7,17 @@
#include <arm/imx7d-zii-rmu2.dts>
#include "imx7d-ddrc.dtsi"
+/* FIXME: barebox serial is broken when barebox applies requested reparenting */
+&uart2 {
+ /delete-property/ assigned-clocks;
+ /delete-property/ assigned-clock-parents;
+};
+
+&uart4 {
+ /delete-property/ assigned-clocks;
+ /delete-property/ assigned-clock-parents;
+};
+
&ecspi1 {
nor_flash: flash@0 {
#address-cells = <1>;
diff --git a/arch/arm/dts/imx7d-zii-rpu2.dts b/arch/arm/dts/imx7d-zii-rpu2.dts
index 168f66c732..58b22aa8e8 100644
--- a/arch/arm/dts/imx7d-zii-rpu2.dts
+++ b/arch/arm/dts/imx7d-zii-rpu2.dts
@@ -17,3 +17,14 @@
switch-eeprom = &switch;
};
};
+
+/* FIXME: barebox serial is broken when barebox applies requested reparenting */
+&uart2 {
+ /delete-property/ assigned-clocks;
+ /delete-property/ assigned-clock-parents;
+};
+
+&uart4 {
+ /delete-property/ assigned-clocks;
+ /delete-property/ assigned-clock-parents;
+};
diff --git a/arch/arm/dts/imx7s-warp.dts b/arch/arm/dts/imx7s-warp.dts
index 49d4c7f294..c901477783 100644
--- a/arch/arm/dts/imx7s-warp.dts
+++ b/arch/arm/dts/imx7s-warp.dts
@@ -42,3 +42,19 @@
};
};
};
+
+/* FIXME: barebox serial is broken when barebox applies requested reparenting */
+&uart1 {
+ /delete-property/ assigned-clocks;
+ /delete-property/ assigned-clock-parents;
+};
+
+&uart3 {
+ /delete-property/ assigned-clocks;
+ /delete-property/ assigned-clock-parents;
+};
+
+&uart6 {
+ /delete-property/ assigned-clocks;
+ /delete-property/ assigned-clock-parents;
+};