aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips
diff options
context:
space:
mode:
authorSander Vanheule <sander@svanheule.net>2021-02-04 15:49:14 +0100
committerPetr Štetiar <ynezz@true.cz>2021-02-14 09:33:42 +0100
commit69551a244292f5baf0aee205ec6b891a03f1ee15 (patch)
treefdc942a918fb64fb182cbfda261847f3d55a0661 /target/linux/ramips
parent4968fc8fb110612018af3ba2836be1b4744346e2 (diff)
downloadupstream-69551a244292f5baf0aee205ec6b891a03f1ee15.tar.gz
upstream-69551a244292f5baf0aee205ec6b891a03f1ee15.tar.bz2
upstream-69551a244292f5baf0aee205ec6b891a03f1ee15.zip
ramips: manage low reset lines
The bootloader of a number of recent TP-Link devices does not properly initialise the MT7621's internal switch when booting from flash. To enable the mt7530 driver to clear the reset on the switch, the ramips reset controller must be allowed to toggle these. Backport upstream commit 3f9ef7785a9c from mips-next to allow control of the "mcm" reset line. Signed-off-by: Sander Vanheule <sander@svanheule.net>
Diffstat (limited to 'target/linux/ramips')
-rw-r--r--target/linux/ramips/patches-5.4/0123-mips-ralink-manage-low-reset-lines.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/target/linux/ramips/patches-5.4/0123-mips-ralink-manage-low-reset-lines.patch b/target/linux/ramips/patches-5.4/0123-mips-ralink-manage-low-reset-lines.patch
new file mode 100644
index 0000000000..e59044dd96
--- /dev/null
+++ b/target/linux/ramips/patches-5.4/0123-mips-ralink-manage-low-reset-lines.patch
@@ -0,0 +1,47 @@
+From 3f9ef7785a9cd69cb75f5e2ea4ca79a24752e496 Mon Sep 17 00:00:00 2001
+From: Sander Vanheule <sander@svanheule.net>
+Date: Wed, 3 Feb 2021 10:21:41 +0100
+Subject: MIPS: ralink: manage low reset lines
+
+Reset lines with indices smaller than 8 are currently considered invalid
+by the rt2880-reset reset controller.
+
+The MT7621 SoC uses a number of these low reset lines. The DTS defines
+reset lines "hsdma", "fe", and "mcm" with respective values 5, 6, and 2.
+As a result of the above restriction, these resets cannot be asserted or
+de-asserted by the reset controller. In cases where the bootloader does
+not de-assert these lines, this results in e.g. the MT7621's internal
+switch staying in reset.
+
+Change the reset controller to only ignore the system reset, so all
+reset lines with index greater than 0 are considered valid.
+
+Signed-off-by: Sander Vanheule <sander@svanheule.net>
+Acked-by: John Crispin <john@phrozen.org>
+Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
+---
+ arch/mips/ralink/reset.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/mips/ralink/reset.c b/arch/mips/ralink/reset.c
+index 8126f12604071..274d33078c5eb 100644
+--- a/arch/mips/ralink/reset.c
++++ b/arch/mips/ralink/reset.c
+@@ -27,7 +27,7 @@ static int ralink_assert_device(struct reset_controller_dev *rcdev,
+ {
+ u32 val;
+
+- if (id < 8)
++ if (id == 0)
+ return -1;
+
+ val = rt_sysc_r32(SYSC_REG_RESET_CTRL);
+@@ -42,7 +42,7 @@ static int ralink_deassert_device(struct reset_controller_dev *rcdev,
+ {
+ u32 val;
+
+- if (id < 8)
++ if (id == 0)
+ return -1;
+
+ val = rt_sysc_r32(SYSC_REG_RESET_CTRL);