summaryrefslogtreecommitdiff
path: root/drivers/pinctrl/mediatek/pinctrl-paris.c
diff options
context:
space:
mode:
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>2022-02-22 14:11:40 +0300
committerLinus Walleij <linus.walleij@linaro.org>2022-03-17 04:06:52 +0300
commit78df7bba4ab88dd6f663335858b92f9cfa2cb850 (patch)
treeb85ea05e4ee8aa638c956e9a08f71c5407aff838 /drivers/pinctrl/mediatek/pinctrl-paris.c
parent89388f8730699c259f8090ec435fb43569efe4ac (diff)
downloadlinux-78df7bba4ab88dd6f663335858b92f9cfa2cb850.tar.xz
pinctrl: mediatek: paris: Unify probe function by using OF match data
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 <angelogioacchino.delregno@collabora.com> Reviewed-by: Chen-Yu Tsai <wenst@chromium.org> Link: https://lore.kernel.org/r/20220222111144.20796-2-angelogioacchino.delregno@collabora.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/mediatek/pinctrl-paris.c')
-rw-r--r--drivers/pinctrl/mediatek/pinctrl-paris.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c
index 85ce7ae5ec65..74517e810958 100644
--- a/drivers/pinctrl/mediatek/pinctrl-paris.c
+++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
@@ -1021,8 +1021,7 @@ static int mtk_pctrl_build_state(struct platform_device *pdev)
return 0;
}
-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 = &pdev->dev;
struct pinctrl_pin_desc *pins;
@@ -1034,7 +1033,11 @@ int mtk_paris_pinctrl_probe(struct platform_device *pdev,
return -ENOMEM;
platform_set_drvdata(pdev, hw);
- hw->soc = soc;
+
+ hw->soc = device_get_match_data(dev);
+ if (!hw->soc)
+ return -ENOENT;
+
hw->dev = &pdev->dev;
if (!hw->soc->nbase_names)