Re: [PATCH] MFD: mt6397: do not use generic name for keypad sub-devices

From: Lee Jones
Date: Tue Jul 01 2025 - 06:58:29 EST


On Mon, 30 Jun 2025, Dmitry Torokhov wrote:

> Do not use "mtk-pmic-keys" when creating sub-device for the keypad to
> make sure the keypad driver will only bind to the sub-device if it has
> support for the variant/has matching compatible.
>
> Reported-by: Louis-Alexis Eyraud <louisalexis.eyraud@xxxxxxxxxxxxx>
> Fixes: 6e31bb8d3a63 ("mfd: mt6397: Add initial support for MT6328")
> Fixes: de58cee8c6b8 ("mfd: mt6397-core: Add MT6357 PMIC support")
> Fixes: 4a901e305011 ("mfd: mt6397-core: Add resources for PMIC keys for MT6359")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> ---
>
> This is not tested so if someone with hardware could try it out that
> would be great. I *think* it should work...

My suspicion is that this will not work. Providing compatible strings
here is only for device to node matching. I do not believe the drivers
will probe using them.

You don't need H/W to test this theory. You can just feed in a DTB and
see if it probes. QEMU should be good enough for this.

> drivers/mfd/mt6397-core.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c
> index 5f8ed8988907..3e58d0764c7e 100644
> --- a/drivers/mfd/mt6397-core.c
> +++ b/drivers/mfd/mt6397-core.c
> @@ -136,7 +136,7 @@ static const struct mfd_cell mt6323_devs[] = {
> .name = "mt6323-led",
> .of_compatible = "mediatek,mt6323-led"
> }, {
> - .name = "mtk-pmic-keys",
> + .name = "mt6323-keys",
> .num_resources = ARRAY_SIZE(mt6323_keys_resources),
> .resources = mt6323_keys_resources,
> .of_compatible = "mediatek,mt6323-keys"
> @@ -153,7 +153,7 @@ static const struct mfd_cell mt6328_devs[] = {
> .name = "mt6328-regulator",
> .of_compatible = "mediatek,mt6328-regulator"
> }, {
> - .name = "mtk-pmic-keys",
> + .name = "mt6328-keys",
> .num_resources = ARRAY_SIZE(mt6328_keys_resources),
> .resources = mt6328_keys_resources,
> .of_compatible = "mediatek,mt6328-keys"
> @@ -175,7 +175,7 @@ static const struct mfd_cell mt6357_devs[] = {
> .name = "mt6357-sound",
> .of_compatible = "mediatek,mt6357-sound"
> }, {
> - .name = "mtk-pmic-keys",
> + .name = "mt6357-keys",
> .num_resources = ARRAY_SIZE(mt6357_keys_resources),
> .resources = mt6357_keys_resources,
> .of_compatible = "mediatek,mt6357-keys"
> @@ -196,7 +196,7 @@ static const struct mfd_cell mt6331_mt6332_devs[] = {
> .name = "mt6332-regulator",
> .of_compatible = "mediatek,mt6332-regulator"
> }, {
> - .name = "mtk-pmic-keys",
> + .name = "mt6331-keys",
> .num_resources = ARRAY_SIZE(mt6331_keys_resources),
> .resources = mt6331_keys_resources,
> .of_compatible = "mediatek,mt6331-keys"
> @@ -240,7 +240,7 @@ static const struct mfd_cell mt6359_devs[] = {
> },
> { .name = "mt6359-sound", },
> {
> - .name = "mtk-pmic-keys",
> + .name = "mt6359-keys",
> .num_resources = ARRAY_SIZE(mt6359_keys_resources),
> .resources = mt6359_keys_resources,
> .of_compatible = "mediatek,mt6359-keys"
> @@ -272,7 +272,7 @@ static const struct mfd_cell mt6397_devs[] = {
> .name = "mt6397-pinctrl",
> .of_compatible = "mediatek,mt6397-pinctrl",
> }, {
> - .name = "mtk-pmic-keys",
> + .name = "mt6397-keys",
> .num_resources = ARRAY_SIZE(mt6397_keys_resources),
> .resources = mt6397_keys_resources,
> .of_compatible = "mediatek,mt6397-keys"
> --
> 2.50.0.727.gbf7dc18ff4-goog
>
>
> --
> Dmitry

--
Lee Jones [李琼斯]