From: Chen Minqiang <ptpt52@gmail.com>
To: Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
"Chester A. Unal" <chester.a.unal@arinc9.com>,
Daniel Golle <daniel@makrotopia.org>,
DENG Qingfang <dqfext@gmail.com>,
Sean Wang <sean.wang@mediatek.com>, Andrew Lunn <andrew@lunn.ch>
Cc: linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, netdev@vger.kernel.org,
Chen Minqiang <ptpt52@gmail.com>
Subject: [PATCH v3 1/2] ARM64: dts: mediatek: fix MT7531 reset GPIO polarity on multiple boards
Date: Sun, 30 Nov 2025 07:46:02 +0800 [thread overview]
Message-ID: <20251129234603.2544-1-ptpt52@gmail.com> (raw)
The MT7531 reset pin is active-low, but several DTS files configured the
reset-gpios property without GPIO_ACTIVE_LOW. This causes the reset GPIO
to behave as active-high and prevents the switch from being properly reset.
Update all affected DTS files to correctly use GPIO_ACTIVE_LOW so that
the reset polarity matches the hardware design.
Boards fixed:
- mt7622-bananapi-bpi-r64
- mt7622-rfb1
- mt7986a-bananapi-bpi-r3
- mt7986a-rfb
- mt7986b-rfb
Note: the previous DTS description used the wrong polarity but the
driver also assumed the opposite polarity, resulting in a matched pair
of bugs that worked together. Updating the DTS requires updating the
driver at the same time; old kernels will not reset the switch correctly
when used with this DTS.
Compatibility
-------------
Correcting the polarity creates intentional incompatibility:
* New kernel + old DTS:
The driver now expects active-low, but out-of-tree DTS still marks
active-high, causing the reset sequence to invert.
* Old kernel + new DTS:
The old driver toggles reset assuming active-high, which now
conflicts with the corrected active-low DTS.
This was unavoidable because the original DTS was factually wrong.
Out-of-tree DTS users must update their DTS together with the kernel.
Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
---
arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 2 +-
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 2 +-
arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts | 2 +-
arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts | 2 +-
arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
index 9f100b18a676..6f29ce828fdb 100644
--- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
@@ -155,7 +155,7 @@
interrupt-controller;
#interrupt-cells = <1>;
interrupts-extended = <&pio 53 IRQ_TYPE_LEVEL_HIGH>;
- reset-gpios = <&pio 54 0>;
+ reset-gpios = <&pio 54 GPIO_ACTIVE_LOW>;
ports {
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
index 8c3e2e2578bc..6600f06ccebf 100644
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
@@ -137,7 +137,7 @@
switch@0 {
compatible = "mediatek,mt7531";
reg = <0>;
- reset-gpios = <&pio 54 0>;
+ reset-gpios = <&pio 54 GPIO_ACTIVE_LOW>;
ports {
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
index e7654dc9a1c9..8ec2ec78ee46 100644
--- a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
+++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
@@ -203,7 +203,7 @@
interrupt-parent = <&pio>;
interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
#interrupt-cells = <1>;
- reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&pio 5 GPIO_ACTIVE_LOW>;
};
};
diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts b/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts
index 5d8e3d3f6c20..958ce291336b 100644
--- a/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts
+++ b/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts
@@ -87,7 +87,7 @@
switch: switch@0 {
compatible = "mediatek,mt7531";
reg = <31>;
- reset-gpios = <&pio 5 0>;
+ reset-gpios = <&pio 5 1>;
};
};
diff --git a/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts b/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts
index 58f77d932429..0780b5a36259 100644
--- a/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts
+++ b/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts
@@ -64,7 +64,7 @@
switch@0 {
compatible = "mediatek,mt7531";
reg = <31>;
- reset-gpios = <&pio 5 0>;
+ reset-gpios = <&pio 5 1>;
ports {
#address-cells = <1>;
--
2.17.1
next reply other threads:[~2025-11-29 23:46 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-29 23:46 Chen Minqiang [this message]
2025-11-29 23:46 ` [PATCH v3 2/2] net: dsa: mt7530: Use GPIO polarity to generate correct reset sequence Chen Minqiang
2025-11-30 1:11 ` Andrew Lunn
2025-11-30 8:07 ` Vladimir Oltean
2025-11-30 20:17 ` Andrew Lunn
2025-12-01 7:48 ` Krzysztof Kozlowski
2025-12-02 11:52 ` Frank Wunderlich
2025-12-02 12:20 ` Daniel Golle
2025-12-04 13:16 ` Vladimir Oltean
2025-12-04 13:50 ` Daniel Golle
2025-12-04 15:45 ` Vladimir Oltean
2025-12-04 14:49 ` Krzysztof Kozlowski
2025-12-04 16:02 ` Vladimir Oltean
2025-12-04 16:48 ` Krzysztof Kozlowski
2025-12-04 17:11 ` Vladimir Oltean
2025-12-04 17:23 ` Krzysztof Kozlowski
2025-12-04 17:32 ` Krzysztof Kozlowski
2025-12-04 20:47 ` Russell King (Oracle)
2025-12-04 17:45 ` Russell King (Oracle)
2025-12-04 18:21 ` Vladimir Oltean
2025-12-04 15:22 ` Andrew Lunn
2025-12-04 15:37 ` Vladimir Oltean
2025-12-04 15:50 ` Andrew Lunn
2025-12-04 15:52 ` Krzysztof Kozlowski
2025-12-04 16:33 ` Vladimir Oltean
2025-11-30 8:22 ` Vladimir Oltean
2025-12-01 7:50 ` Krzysztof Kozlowski
2025-11-30 1:00 ` [PATCH v3 1/2] ARM64: dts: mediatek: fix MT7531 reset GPIO polarity on multiple boards Andrew Lunn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251129234603.2544-1-ptpt52@gmail.com \
--to=ptpt52@gmail.com \
--cc=andrew@lunn.ch \
--cc=angelogioacchino.delregno@collabora.com \
--cc=chester.a.unal@arinc9.com \
--cc=conor+dt@kernel.org \
--cc=daniel@makrotopia.org \
--cc=dqfext@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=robh@kernel.org \
--cc=sean.wang@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.