[PATCH 0/6] pinctrl: mediatek: Fix gpio-ranges and include guard issues
AngeloGioacchino Del Regno
angelogioacchino.delregno at collabora.com
Thu Mar 12 05:31:21 PDT 2026
Il 12/03/26 05:15, Akari Tsuyukusa ha scritto:
> While looking at MediaTek's Pinctrl driver and device tree, I discovered
> that on some SoCs, the gpio-ranges count was a little less than the pins
> defined. This means that the last pin will no longer be available.
>
> And fixing this issue, I also discovered that the #endif comment in the
> include guard for some header files was different from the macro name at
> the beginning. These issues do not affect the compiled kernel, but they
> affect the readability and consistency of the code.
>
> This series addresses the cases that can be confirmed correct without
> requiring datasheet verification:
>
> - mt6795 : gpio-ranges 196 -> 197
> - mt7981b: gpio-ranges 56 -> 57
> - mt7986a: gpio-ranges 100 -> 101
> - mt6779 : include guard #endif comment fix
> - mt8188 : include guard #endif comment fix (two files)
>
> The following additional issues were identified during this investigation
> but are not included in this series as they require further analysis
> or datasheet confirmation:
>
> MT6779: gpio-ranges = <&pio 0 0 210>;
> This matches the number of pins, but GPIO203 to 209 don't have
> GPIO function, and the driver also has no control over those pins.
> Probably needs to be fixed to "gpio-ranges = <&pio 0 0 203>;"
>
> MT8183: gpio-ranges = <&pio 0 0 192>;
> This seems correct because it matches "pinctrl-mtk-mt8183.h".
> But, mode/dir/di/do are defined from pin 0 to 192.
> "pinctrl-mt8183.c" looks wrong.
>
> MT8188: gpio-ranges = <&pio 0 0 176>;
> According to "pinctrl-mtk-mt8188.h", GPIO0 to 176 have GPIO function,
> and GPIO177 to 189 are EINT only pin, but mode/dir/di/do are defined
> from pin 0 to 177. "pinctrl-mt8188.c" is likely to be wrong.
> At least "176" is wrong, probably "gpio-ranges = <&pio 0 0 177>;"
>
> MT8192: gpio-ranges = <&pio 0 0 220>;
> "pinctrl-mtk-mt8192.h" defines GPIO0 to 227 which have GPIO function,
> but mode/dir/di/do are defined from pin 0 to 228.
> "pinctrl-mt8192.c" looks wrong.
> Also, probably "gpio-ranges = <&pio 0 0 229>;"
>
> MT8195: gpio-ranges = <&pio 0 0 144>;
> Like MT8188, GPIO144 to 164 don't have GPIO function,
> but mode/dir/di/do are defined from pin 0 to pin 144.
> "pinctrl-mt8195.c" is likely to be wrong.
>
The whole series is
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>
>
> Akari Tsuyukusa (6):
> arm64: dts: mediatek: mt6795: Fix gpio-ranges pin count
> arm64: dts: mediatek: mt7981b: Fix gpio-ranges pin count
> arm64: dts: mediatek: mt7986a: Fix gpio-ranges pin count
> pinctrl: mediatek: mt6779: Fix include guard comment in the header
> pinctrl: mediatek: mt8188: Fix include guard comment in the header
> dt-bindings: pinctrl: mediatek: mt8188: Fix include guard comment
>
> arch/arm64/boot/dts/mediatek/mt6795.dtsi | 2 +-
> arch/arm64/boot/dts/mediatek/mt7981b.dtsi | 2 +-
> arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 2 +-
> drivers/pinctrl/mediatek/pinctrl-mtk-mt6779.h | 2 +-
> drivers/pinctrl/mediatek/pinctrl-mtk-mt8188.h | 2 +-
> include/dt-bindings/pinctrl/mediatek,mt8188-pinfunc.h | 2 +-
> 6 files changed, 6 insertions(+), 6 deletions(-)
>
More information about the Linux-mediatek
mailing list