From nobody Sun Sep 22 09:30:11 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 970E8C433EF for ; Tue, 22 Feb 2022 11:11:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231622AbiBVLMU (ORCPT ); Tue, 22 Feb 2022 06:12:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38638 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231573AbiBVLMR (ORCPT ); Tue, 22 Feb 2022 06:12:17 -0500 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 345BE69CF5; Tue, 22 Feb 2022 03:11:51 -0800 (PST) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: kholk11) with ESMTPSA id 48BFB1F43811 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1645528309; bh=cpo6vlQK830VyMFFPzoTFasodql+SY0NouJYyX3BTA4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WLJB3nEJV0eO8wE9mXnE+E4m0GRq/3YvxR+njd0TO7K6Tj2WEHul5B8WL7boh4WBB ytqcPLQjZP4grgF773QiT65nRPn1WKV7o9k7Jy+MjDZaZ30ejVgwza/MmFg8cT88mj E2h8GL20dYH3RnEQH1gWFO2OOtttZUlwY4yj4CKZVV2cjwZOZy+URAkQ1SJ+DoUQVQ MX1l3WvKJyncBcfBgWan0FuL/QNgInz/RNDzIPlqUHCPXtP6Z7W9oyg5RVDS8BfjTw weksthAj6uTWBUJ8HeZJls65N72FgL5fVNmaj865hq1KHSsScXvgq1GrL0eq4dO7NP /AgMGhGZnyscQ== From: AngeloGioacchino Del Regno To: sean.wang@kernel.org Cc: linus.walleij@linaro.org, matthias.bgg@gmail.com, linux-mediatek@lists.infradead.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@collabora.com, wenst@chromium.org, AngeloGioacchino Del Regno Subject: [PATCH v2 1/5] pinctrl: mediatek: paris: Unify probe function by using OF match data Date: Tue, 22 Feb 2022 12:11:40 +0100 Message-Id: <20220222111144.20796-2-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220222111144.20796-1-angelogioacchino.delregno@collabora.com> References: <20220222111144.20796-1-angelogioacchino.delregno@collabora.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" All of the SoCs using Paris pinctrl are defining a custom probe function that is simply calling mtk_paris_pinctrl_probe() passing a pointer to the SoC specific mtk_pin_soc structure and nothing else. Simplify the probe mechanism across all pinctrl drivers that are using pinctrl-paris by passing the specific mtk_pin_soc as match data and using function mtk_paris_pinctrl_probe as a common probe function for all of them. Signed-off-by: AngeloGioacchino Del Regno Reviewed-by: Chen-Yu Tsai --- drivers/pinctrl/mediatek/pinctrl-mt6765.c | 9 ++------- drivers/pinctrl/mediatek/pinctrl-mt6779.c | 9 ++------- drivers/pinctrl/mediatek/pinctrl-mt6797.c | 9 ++------- drivers/pinctrl/mediatek/pinctrl-mt8183.c | 9 ++------- drivers/pinctrl/mediatek/pinctrl-mt8192.c | 9 ++------- drivers/pinctrl/mediatek/pinctrl-mt8195.c | 9 ++------- drivers/pinctrl/mediatek/pinctrl-paris.c | 9 ++++++--- drivers/pinctrl/mediatek/pinctrl-paris.h | 3 +-- 8 files changed, 19 insertions(+), 47 deletions(-) diff --git a/drivers/pinctrl/mediatek/pinctrl-mt6765.c b/drivers/pinctrl/me= diatek/pinctrl-mt6765.c index 2c59d3936256..c57b19fcda03 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt6765.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt6765.c @@ -1082,21 +1082,16 @@ static const struct mtk_pin_soc mt6765_data =3D { }; =20 static const struct of_device_id mt6765_pinctrl_of_match[] =3D { - { .compatible =3D "mediatek,mt6765-pinctrl", }, + { .compatible =3D "mediatek,mt6765-pinctrl", .data =3D &mt6765_data }, { } }; =20 -static int mt6765_pinctrl_probe(struct platform_device *pdev) -{ - return mtk_paris_pinctrl_probe(pdev, &mt6765_data); -} - static struct platform_driver mt6765_pinctrl_driver =3D { .driver =3D { .name =3D "mt6765-pinctrl", .of_match_table =3D mt6765_pinctrl_of_match, }, - .probe =3D mt6765_pinctrl_probe, + .probe =3D mtk_paris_pinctrl_probe, }; =20 static int __init mt6765_pinctrl_init(void) diff --git a/drivers/pinctrl/mediatek/pinctrl-mt6779.c b/drivers/pinctrl/me= diatek/pinctrl-mt6779.c index bb0851c73304..4ddf8bda6827 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt6779.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt6779.c @@ -758,21 +758,16 @@ static const struct mtk_pin_soc mt6779_data =3D { }; =20 static const struct of_device_id mt6779_pinctrl_of_match[] =3D { - { .compatible =3D "mediatek,mt6779-pinctrl", }, + { .compatible =3D "mediatek,mt6779-pinctrl", .data =3D &mt6779_data }, { } }; =20 -static int mt6779_pinctrl_probe(struct platform_device *pdev) -{ - return mtk_paris_pinctrl_probe(pdev, &mt6779_data); -} - static struct platform_driver mt6779_pinctrl_driver =3D { .driver =3D { .name =3D "mt6779-pinctrl", .of_match_table =3D mt6779_pinctrl_of_match, }, - .probe =3D mt6779_pinctrl_probe, + .probe =3D mtk_paris_pinctrl_probe, }; =20 static int __init mt6779_pinctrl_init(void) diff --git a/drivers/pinctrl/mediatek/pinctrl-mt6797.c b/drivers/pinctrl/me= diatek/pinctrl-mt6797.c index adebe4333ed9..53f240491259 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt6797.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt6797.c @@ -58,21 +58,16 @@ static const struct mtk_pin_soc mt6797_data =3D { }; =20 static const struct of_device_id mt6797_pinctrl_of_match[] =3D { - { .compatible =3D "mediatek,mt6797-pinctrl", }, + { .compatible =3D "mediatek,mt6797-pinctrl", .data =3D &mt6797_data }, { } }; =20 -static int mt6797_pinctrl_probe(struct platform_device *pdev) -{ - return mtk_paris_pinctrl_probe(pdev, &mt6797_data); -} - static struct platform_driver mt6797_pinctrl_driver =3D { .driver =3D { .name =3D "mt6797-pinctrl", .of_match_table =3D mt6797_pinctrl_of_match, }, - .probe =3D mt6797_pinctrl_probe, + .probe =3D mtk_paris_pinctrl_probe, }; =20 static int __init mt6797_pinctrl_init(void) diff --git a/drivers/pinctrl/mediatek/pinctrl-mt8183.c b/drivers/pinctrl/me= diatek/pinctrl-mt8183.c index 60318339b618..fecb1e64fff4 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt8183.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt8183.c @@ -567,22 +567,17 @@ static const struct mtk_pin_soc mt8183_data =3D { }; =20 static const struct of_device_id mt8183_pinctrl_of_match[] =3D { - { .compatible =3D "mediatek,mt8183-pinctrl", }, + { .compatible =3D "mediatek,mt8183-pinctrl", .data =3D &mt8183_data }, { } }; =20 -static int mt8183_pinctrl_probe(struct platform_device *pdev) -{ - return mtk_paris_pinctrl_probe(pdev, &mt8183_data); -} - static struct platform_driver mt8183_pinctrl_driver =3D { .driver =3D { .name =3D "mt8183-pinctrl", .of_match_table =3D mt8183_pinctrl_of_match, .pm =3D &mtk_paris_pinctrl_pm_ops, }, - .probe =3D mt8183_pinctrl_probe, + .probe =3D mtk_paris_pinctrl_probe, }; =20 static int __init mt8183_pinctrl_init(void) diff --git a/drivers/pinctrl/mediatek/pinctrl-mt8192.c b/drivers/pinctrl/me= diatek/pinctrl-mt8192.c index 0c16b2c756bf..acccde9262ba 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt8192.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt8192.c @@ -1381,22 +1381,17 @@ static const struct mtk_pin_soc mt8192_data =3D { }; =20 static const struct of_device_id mt8192_pinctrl_of_match[] =3D { - { .compatible =3D "mediatek,mt8192-pinctrl", }, + { .compatible =3D "mediatek,mt8192-pinctrl", .data =3D &mt8192_data }, { } }; =20 -static int mt8192_pinctrl_probe(struct platform_device *pdev) -{ - return mtk_paris_pinctrl_probe(pdev, &mt8192_data); -} - static struct platform_driver mt8192_pinctrl_driver =3D { .driver =3D { .name =3D "mt8192-pinctrl", .of_match_table =3D mt8192_pinctrl_of_match, .pm =3D &mtk_paris_pinctrl_pm_ops, }, - .probe =3D mt8192_pinctrl_probe, + .probe =3D mtk_paris_pinctrl_probe, }; =20 static int __init mt8192_pinctrl_init(void) diff --git a/drivers/pinctrl/mediatek/pinctrl-mt8195.c b/drivers/pinctrl/me= diatek/pinctrl-mt8195.c index 275b7ba4386d..563693d3d4c2 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt8195.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt8195.c @@ -959,22 +959,17 @@ static const struct mtk_pin_soc mt8195_data =3D { }; =20 static const struct of_device_id mt8195_pinctrl_of_match[] =3D { - { .compatible =3D "mediatek,mt8195-pinctrl", }, + { .compatible =3D "mediatek,mt8195-pinctrl", .data =3D &mt8195_data }, { } }; =20 -static int mt8195_pinctrl_probe(struct platform_device *pdev) -{ - return mtk_paris_pinctrl_probe(pdev, &mt8195_data); -} - static struct platform_driver mt8195_pinctrl_driver =3D { .driver =3D { .name =3D "mt8195-pinctrl", .of_match_table =3D mt8195_pinctrl_of_match, .pm =3D &mtk_paris_pinctrl_pm_ops, }, - .probe =3D mt8195_pinctrl_probe, + .probe =3D mtk_paris_pinctrl_probe, }; =20 static int __init mt8195_pinctrl_init(void) diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/med= iatek/pinctrl-paris.c index 784eb152b637..6d9e4d625517 100644 --- a/drivers/pinctrl/mediatek/pinctrl-paris.c +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c @@ -1036,8 +1036,7 @@ static int mtk_pctrl_build_state(struct platform_devi= ce *pdev) return 0; } =20 -int mtk_paris_pinctrl_probe(struct platform_device *pdev, - const struct mtk_pin_soc *soc) +int mtk_paris_pinctrl_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; struct pinctrl_pin_desc *pins; @@ -1049,7 +1048,11 @@ int mtk_paris_pinctrl_probe(struct platform_device *= pdev, return -ENOMEM; =20 platform_set_drvdata(pdev, hw); - hw->soc =3D soc; + + hw->soc =3D device_get_match_data(dev); + if (!hw->soc) + return -ENOENT; + hw->dev =3D &pdev->dev; =20 if (!hw->soc->nbase_names) diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.h b/drivers/pinctrl/med= iatek/pinctrl-paris.h index afb7650fd25b..8762ac599329 100644 --- a/drivers/pinctrl/mediatek/pinctrl-paris.h +++ b/drivers/pinctrl/mediatek/pinctrl-paris.h @@ -57,8 +57,7 @@ id##_funcs, \ } =20 -int mtk_paris_pinctrl_probe(struct platform_device *pdev, - const struct mtk_pin_soc *soc); +int mtk_paris_pinctrl_probe(struct platform_device *pdev); =20 ssize_t mtk_pctrl_show_one_pin(struct mtk_pinctrl *hw, unsigned int gpio, char *buf, unsigned int bufLen); --=20 2.33.1