Re: [PATCH v2 1/2] ARM64: dts: mediatek: fix MT7531 reset GPIO polarity on multiple boards

Andrew Lunn
2025-11-20T22:08:18Z

On Fri, Nov 21, 2025 at 05:38:04AM +0800, Chen Minqiang wrote:
> 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.

Sometimes we need to live with issues like this, because of:

> 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.

So the real question is, does this actually harm anything? Do we see
any real issues?

Andrew