[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7ed7a5e3-0c83-44e8-b7d2-e93e0b686df8@collabora.com>
Date: Tue, 10 Feb 2026 12:03:26 +0100
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
To: David Lechner <david@...hnology.com>, Cathy Xu
<ot_cathy.xu@...iatek.com>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley
<conor+dt@...nel.org>, Matthias Brugger <matthias.bgg@...il.com>
Cc: devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-mediatek@...ts.infradead.org,
Yong Mao <yong.mao@...iatek.com>, Wenbin Mei <Wenbin.Mei@...iatek.com>,
Axe Yang <Axe.Yang@...iatek.com>, Lei Xue <Lei.Xue@...iatek.com>
Subject: Re: [PATCH] arm64: dts: mediatek: mt8189: Add pinmux macro header
file
Il 09/02/26 22:48, David Lechner ha scritto:
> On 9/18/25 9:03 PM, Cathy Xu wrote:
>> Add the pinctrl header file on MediaTek mt8189.
>>
>> Signed-off-by: Cathy Xu <ot_cathy.xu@...iatek.com>
>> ---
>> This patch is base on the patch series:
>> https://patchwork.kernel.org/project/linux-mediatek/list/?series=981475
>> [1] dt-bindings: pinctrl: mediatek: Add support for mt8189
>> [2] arm64: dts: mediatek: mt8189: Add pinmux macro header file
>> [3] pinctrl: mediatek: Add pinctrl driver on mt8189
>> Since patch [1] and [3] of the series have already been merged, this
>> patch(patch [2]) is being resent individually after modifications.
>> ---
>> arch/arm64/boot/dts/mediatek/mt8189-pinfunc.h | 1125 +++++++++++++++++
>> 1 file changed, 1125 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/mediatek/mt8189-pinfunc.h
>>
>> diff --git a/arch/arm64/boot/dts/mediatek/mt8189-pinfunc.h b/arch/arm64/boot/dts/mediatek/mt8189-pinfunc.h
>> new file mode 100644
>> index 000000000000..df69f50c267a
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/mediatek/mt8189-pinfunc.h
>
> General question:
>
> Why do we have similar files in two different places different places?
>
> $ ls arch/arm64/boot/dts/mediatek/*-pin*
> arch/arm64/boot/dts/mediatek/mt2712-pinfunc.h
> arch/arm64/boot/dts/mediatek/mt6878-pinfunc.h
> arch/arm64/boot/dts/mediatek/mt6893-pinfunc.h
> arch/arm64/boot/dts/mediatek/mt8167-pinfunc.h
> arch/arm64/boot/dts/mediatek/mt8173-pinfunc.h
> arch/arm64/boot/dts/mediatek/mt8196-pinfunc.h
> arch/arm64/boot/dts/mediatek/mt8516-pinfunc.h
>
> $ ls include/dt-bindings/pinctrl/mt*
> include/dt-bindings/pinctrl/mt65xx.h
> include/dt-bindings/pinctrl/mt6779-pinfunc.h
> include/dt-bindings/pinctrl/mt6795-pinfunc.h
> include/dt-bindings/pinctrl/mt6797-pinfunc.h
> include/dt-bindings/pinctrl/mt7623-pinfunc.h
> include/dt-bindings/pinctrl/mt8135-pinfunc.h
> include/dt-bindings/pinctrl/mt8183-pinfunc.h
> include/dt-bindings/pinctrl/mt8186-pinfunc.h
> include/dt-bindings/pinctrl/mt8192-pinfunc.h
> include/dt-bindings/pinctrl/mt8195-pinfunc.h
> include/dt-bindings/pinctrl/mt8365-pinfunc.h
>
>
> Plus one different naming pattern.
>
> $ ls include/dt-bindings/pinctrl/mediatek,*
> include/dt-bindings/pinctrl/mediatek,mt8188-pinfunc.h
>
>
>
> Which one is preferred?
>
>
The MediaTek pinctrl must gain compatibility with standard pinctrl bindings. Until
then, bindings maintainers decided that these headers must go to the dts/mediatek
folder.
It is my desire to (but lack of time on my side hits hard) do the right thing and
make the MediaTek pinctrl drivers to actually "understand" standard bindings.
I'd be - of course - happy if anyone else beats me on time (which wouldn't be hard
really) and pushes a series to fix this situation.
Just to be clear - right now, the MTK pinctrl DT looks like:
panel_default_pins: panel-default-pins {
pins-rst {
pinmux = <PINMUX_GPIO108__FUNC_GPIO108>;
output-high;
};
pins-en {
pinmux = <PINMUX_GPIO48__FUNC_GPIO48>;
output-low;
};
};
spi1_pins: spi1-pins {
pins {
pinmux = <PINMUX_GPIO136__FUNC_SPIM1_CSB>,
<PINMUX_GPIO137__FUNC_SPIM1_CLK>,
<PINMUX_GPIO138__FUNC_SPIM1_MO>,
<PINMUX_GPIO139__FUNC_SPIM1_MI>;
bias-disable;
};
};
....but the driver should gain compatibility with nodes which would look like:
panel_default_pins: panel-default-pins {
pins-rst {
pins = "gpio108";
function = "gpio";
output-high;
};
pins-en {
pins = "gpio48";
function = "gpio";
output-low;
};
};
spi1_pins: spi1-pins {
pins-bus {
pins = "gpio136", "gpio137", "gpio138", "gpio139",
function = "spi_m1";
bias-disable;
};
};
.... or
spi1_pins: spi1-pins {
pins-bus {
function = "spi_m1";
groups = "spi_m1_pins";
bias-disable;
};
};
That's the entire situation.
Cheers,
Angelo
Powered by blists - more mailing lists