clk: Use device_get_match_data()
authorRob Herring <robh@kernel.org>
Fri, 6 Oct 2023 21:39:58 +0000 (16:39 -0500)
committerStephen Boyd <sboyd@kernel.org>
Tue, 24 Oct 2023 03:16:21 +0000 (20:16 -0700)
Use preferred device_get_match_data() instead of of_match_device() to
get the driver match data. With this, adjust the includes to explicitly
include the correct headers.

Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20231006213959.334439-1-robh@kernel.org
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> #msm part
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> # Samsung
Acked-by: David Lechner <david@lechnology.com>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
13 files changed:
drivers/clk/clk-lochnagar.c
drivers/clk/davinci/da8xx-cfgchip.c
drivers/clk/davinci/pll.c
drivers/clk/davinci/psc.c
drivers/clk/qcom/gcc-msm8960.c
drivers/clk/qcom/gcc-msm8974.c
drivers/clk/qcom/kpss-xcc.c
drivers/clk/qcom/krait-cc.c
drivers/clk/qcom/mmcc-msm8960.c
drivers/clk/qcom/mmcc-sdm660.c
drivers/clk/rockchip/clk-rk3399.c
drivers/clk/samsung/clk-exynos-clkout.c
drivers/clk/ti/adpll.c

index db468a62c8d71b1c9472918cce71a04afed7384a..5561a2c66b697367c5279fa896e66580996177db 100644 (file)
@@ -12,8 +12,8 @@
 #include <linux/device.h>
 #include <linux/module.h>
 #include <linux/of.h>
-#include <linux/of_device.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/regmap.h>
 
 #include <linux/mfd/lochnagar1_regs.h>
@@ -242,22 +242,17 @@ static int lochnagar_clk_probe(struct platform_device *pdev)
        };
        struct device *dev = &pdev->dev;
        struct lochnagar_clk_priv *priv;
-       const struct of_device_id *of_id;
        struct lochnagar_clk *lclk;
        struct lochnagar_config *conf;
        int ret, i;
 
-       of_id = of_match_device(lochnagar_of_match, dev);
-       if (!of_id)
-               return -EINVAL;
-
        priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
        if (!priv)
                return -ENOMEM;
 
        priv->dev = dev;
        priv->regmap = dev_get_regmap(dev->parent, NULL);
-       conf = (struct lochnagar_config *)of_id->data;
+       conf = (struct lochnagar_config *)device_get_match_data(dev);
 
        memcpy(priv->lclks, conf->clks, sizeof(priv->lclks));
 
index e5b2cdfe88ce18c5267304ef90ad6f4da6b320b3..ad2d0df43dc6ff520fc146ae342fb5227de2e898 100644 (file)
 #include <linux/init.h>
 #include <linux/mfd/da8xx-cfgchip.h>
 #include <linux/mfd/syscon.h>
-#include <linux/of_device.h>
 #include <linux/of.h>
 #include <linux/platform_data/clk-da8xx-cfgchip.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/regmap.h>
 #include <linux/slab.h>
 
@@ -744,15 +744,13 @@ static int da8xx_cfgchip_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
        struct da8xx_cfgchip_clk_platform_data *pdata = dev->platform_data;
-       const struct of_device_id *of_id;
        da8xx_cfgchip_init clk_init = NULL;
        struct regmap *regmap = NULL;
 
-       of_id = of_match_device(da8xx_cfgchip_of_match, dev);
-       if (of_id) {
+       clk_init = device_get_match_data(dev);
+       if (clk_init) {
                struct device_node *parent;
 
-               clk_init = of_id->data;
                parent = of_get_parent(dev->of_node);
                regmap = syscon_node_to_regmap(parent);
                of_node_put(parent);
index 87bdf88790452e0343b76be4ef65ebb3f61736b9..5bbbb3a6647785781ec3e2148ab69107087aa9fb 100644 (file)
 #include <linux/kernel.h>
 #include <linux/mfd/syscon.h>
 #include <linux/notifier.h>
-#include <linux/of_address.h>
-#include <linux/of_device.h>
 #include <linux/of.h>
 #include <linux/platform_data/clk-davinci-pll.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/regmap.h>
 #include <linux/slab.h>
 #include <linux/types.h>
@@ -892,14 +891,11 @@ static int davinci_pll_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
        struct davinci_pll_platform_data *pdata;
-       const struct of_device_id *of_id;
        davinci_pll_init pll_init = NULL;
        void __iomem *base;
 
-       of_id = of_match_device(davinci_pll_of_match, dev);
-       if (of_id)
-               pll_init = of_id->data;
-       else if (pdev->id_entry)
+       pll_init = device_get_match_data(dev);
+       if (!pll_init && pdev->id_entry)
                pll_init = (void *)pdev->id_entry->driver_data;
 
        if (!pll_init) {
index cd85d9f158b0c2e3c4f9131190a9c4579ac08129..355d1be0b5d8da5f1559736141ac34c87af95834 100644 (file)
 #include <linux/clk/davinci.h>
 #include <linux/clkdev.h>
 #include <linux/err.h>
-#include <linux/of_address.h>
-#include <linux/of_device.h>
 #include <linux/of.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/pm_clock.h>
 #include <linux/pm_domain.h>
 #include <linux/regmap.h>
@@ -517,15 +516,12 @@ static const struct platform_device_id davinci_psc_id_table[] = {
 static int davinci_psc_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
-       const struct of_device_id *of_id;
        const struct davinci_psc_init_data *init_data = NULL;
        void __iomem *base;
        int ret;
 
-       of_id = of_match_device(davinci_psc_of_match, dev);
-       if (of_id)
-               init_data = of_id->data;
-       else if (pdev->id_entry)
+       init_data = device_get_match_data(dev);
+       if (!init_data && pdev->id_entry)
                init_data = (void *)pdev->id_entry->driver_data;
 
        if (!init_data) {
index dbc7093ab9cc45c603ab3d138b53140efaf9dfc3..6236a458e4eb26c451418771a5c412c0d74820c6 100644 (file)
@@ -7,9 +7,10 @@
 #include <linux/bitops.h>
 #include <linux/err.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/module.h>
 #include <linux/of.h>
-#include <linux/of_device.h>
+#include <linux/of_platform.h>
 #include <linux/clk-provider.h>
 #include <linux/regmap.h>
 #include <linux/reset-controller.h>
@@ -3716,14 +3717,10 @@ MODULE_DEVICE_TABLE(of, gcc_msm8960_match_table);
 static int gcc_msm8960_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
-       const struct of_device_id *match;
        struct platform_device *tsens;
+       const struct qcom_cc_desc *desc = device_get_match_data(dev);
        int ret;
 
-       match = of_match_device(gcc_msm8960_match_table, &pdev->dev);
-       if (!match)
-               return -EINVAL;
-
        ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000);
        if (ret)
                return ret;
@@ -3732,11 +3729,11 @@ static int gcc_msm8960_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       ret = qcom_cc_probe(pdev, match->data);
+       ret = qcom_cc_probe(pdev, desc);
        if (ret)
                return ret;
 
-       if (match->data == &gcc_apq8064_desc) {
+       if (desc == &gcc_apq8064_desc) {
                hfpll1.d = &hfpll1_8064_data;
                hfpll_l2.d = &hfpll_l2_8064_data;
        }
index 0231c1efd286444c33932d99f41878d1b2857187..b32e66714951b79b1dbdb346c3b64f487af980ef 100644 (file)
@@ -7,9 +7,9 @@
 #include <linux/bitops.h>
 #include <linux/err.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/module.h>
 #include <linux/of.h>
-#include <linux/of_device.h>
 #include <linux/clk-provider.h>
 #include <linux/regmap.h>
 #include <linux/reset-controller.h>
@@ -2875,14 +2875,10 @@ static int gcc_msm8974_probe(struct platform_device *pdev)
 {
        int ret;
        struct device *dev = &pdev->dev;
-       const struct of_device_id *id;
-
-       id = of_match_device(gcc_msm8974_match_table, dev);
-       if (!id)
-               return -ENODEV;
+       const void *data = device_get_match_data(dev);
 
        if (!of_device_is_compatible(dev->of_node, "qcom,gcc-msm8974")) {
-               if (id->data == &gcc_msm8226_desc)
+               if (data == &gcc_msm8226_desc)
                        msm8226_clock_override();
                else
                        msm8974_pro_clock_override();
index 97358c98c6c98ef846b048570d5e919ded44bfea..23b0b11f00077183a05d867cbe930a25c4506300 100644 (file)
@@ -5,10 +5,10 @@
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/of.h>
-#include <linux/of_device.h>
 #include <linux/clk.h>
 #include <linux/clk-provider.h>
 
@@ -32,20 +32,15 @@ MODULE_DEVICE_TABLE(of, kpss_xcc_match_table);
 static int kpss_xcc_driver_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
-       const struct of_device_id *id;
        void __iomem *base;
        struct clk_hw *hw;
        const char *name;
 
-       id = of_match_device(kpss_xcc_match_table, dev);
-       if (!id)
-               return -ENODEV;
-
        base = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(base))
                return PTR_ERR(base);
 
-       if (id->data) {
+       if (device_get_match_data(&pdev->dev)) {
                if (of_property_read_string_index(dev->of_node,
                                                  "clock-output-names",
                                                  0, &name))
index 410ae8390f1c286eed5b881332e6713ad2eea0f4..ae325f4e1047c6254022fe4f0988395eb53b5f30 100644 (file)
@@ -5,10 +5,10 @@
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/of.h>
-#include <linux/of_device.h>
 #include <linux/clk.h>
 #include <linux/clk-provider.h>
 #include <linux/slab.h>
@@ -347,22 +347,18 @@ MODULE_DEVICE_TABLE(of, krait_cc_match_table);
 static int krait_cc_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
-       const struct of_device_id *id;
        unsigned long cur_rate, aux_rate;
        int cpu;
        struct clk_hw *mux, *l2_pri_mux;
        struct clk *clk, **clks;
-
-       id = of_match_device(krait_cc_match_table, dev);
-       if (!id)
-               return -ENODEV;
+       bool unique_aux = !!device_get_match_data(dev);
 
        /* Rate is 1 because 0 causes problems for __clk_mux_determine_rate */
        clk = clk_register_fixed_rate(dev, "qsb", NULL, 0, 1);
        if (IS_ERR(clk))
                return PTR_ERR(clk);
 
-       if (!id->data) {
+       if (!unique_aux) {
                clk = clk_register_fixed_factor(dev, "acpu_aux",
                                                "gpll0_vote", 0, 1, 2);
                if (IS_ERR(clk))
@@ -375,13 +371,13 @@ static int krait_cc_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        for_each_possible_cpu(cpu) {
-               mux = krait_add_clks(dev, cpu, id->data);
+               mux = krait_add_clks(dev, cpu, unique_aux);
                if (IS_ERR(mux))
                        return PTR_ERR(mux);
                clks[cpu] = mux->clk;
        }
 
-       l2_pri_mux = krait_add_clks(dev, -1, id->data);
+       l2_pri_mux = krait_add_clks(dev, -1, unique_aux);
        if (IS_ERR(l2_pri_mux))
                return PTR_ERR(l2_pri_mux);
        clks[l2_mux] = l2_pri_mux->clk;
index 6bf908a51f5309ee6f4a61a58ad61d55eac42085..50638ab341eca19c95695ec053e8f02fd2be77e2 100644 (file)
@@ -8,9 +8,9 @@
 #include <linux/err.h>
 #include <linux/delay.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/module.h>
 #include <linux/of.h>
-#include <linux/of_device.h>
 #include <linux/clk.h>
 #include <linux/clk-provider.h>
 #include <linux/regmap.h>
@@ -3105,30 +3105,24 @@ MODULE_DEVICE_TABLE(of, mmcc_msm8960_match_table);
 
 static int mmcc_msm8960_probe(struct platform_device *pdev)
 {
-       const struct of_device_id *match;
        struct regmap *regmap;
-       bool is_8064;
        struct device *dev = &pdev->dev;
+       const struct qcom_cc_desc *desc = device_get_match_data(dev);
 
-       match = of_match_device(mmcc_msm8960_match_table, dev);
-       if (!match)
-               return -EINVAL;
-
-       is_8064 = of_device_is_compatible(dev->of_node, "qcom,mmcc-apq8064");
-       if (is_8064) {
+       if (desc == &mmcc_apq8064_desc) {
                gfx3d_src.freq_tbl = clk_tbl_gfx3d_8064;
                gfx3d_src.clkr.hw.init = &gfx3d_8064_init;
                gfx3d_src.s[0].parent_map = mmcc_pxo_pll8_pll2_pll15_map;
                gfx3d_src.s[1].parent_map = mmcc_pxo_pll8_pll2_pll15_map;
        }
 
-       regmap = qcom_cc_map(pdev, match->data);
+       regmap = qcom_cc_map(pdev, desc);
        if (IS_ERR(regmap))
                return PTR_ERR(regmap);
 
        clk_pll_configure_sr(&pll15, regmap, &pll15_config, false);
 
-       return qcom_cc_really_probe(pdev, match->data, regmap);
+       return qcom_cc_really_probe(pdev, desc, regmap);
 }
 
 static struct platform_driver mmcc_msm8960_driver = {
index bc19a23e13f8ab35af6af116b5216efc574e7722..996bd01fb9ac8a372191632b1c86d91c850e5cf6 100644 (file)
@@ -9,9 +9,9 @@
 #include <linux/bitops.h>
 #include <linux/err.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/module.h>
 #include <linux/of.h>
-#include <linux/of_device.h>
 #include <linux/clk-provider.h>
 #include <linux/regmap.h>
 #include <linux/reset-controller.h>
@@ -2828,14 +2828,10 @@ static void sdm630_clock_override(void)
 
 static int mmcc_660_probe(struct platform_device *pdev)
 {
-       const struct of_device_id *id;
        struct regmap *regmap;
        bool is_sdm630;
 
-       id = of_match_device(mmcc_660_match_table, &pdev->dev);
-       if (!id)
-               return -ENODEV;
-       is_sdm630 = !!(id->data);
+       is_sdm630 = !!device_get_match_data(&pdev->dev);
 
        regmap = qcom_cc_map(pdev, &mmcc_660_desc);
        if (IS_ERR(regmap))
index 9ebd6c451b3dbf81698627a12310e64cfb6cc445..9316e5c8a0ea58bb2de806225cb1b1b4b4e89d36 100644 (file)
@@ -9,8 +9,8 @@
 #include <linux/io.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
-#include <linux/of_device.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/regmap.h>
 #include <dt-bindings/clock/rk3399-cru.h>
 #include "clk.h"
@@ -1634,14 +1634,9 @@ static const struct of_device_id clk_rk3399_match_table[] = {
 static int __init clk_rk3399_probe(struct platform_device *pdev)
 {
        struct device_node *np = pdev->dev.of_node;
-       const struct of_device_id *match;
        const struct clk_rk3399_inits *init_data;
 
-       match = of_match_device(clk_rk3399_match_table, &pdev->dev);
-       if (!match || !match->data)
-               return -EINVAL;
-
-       init_data = match->data;
+       init_data = device_get_match_data(&pdev->dev);
        if (init_data->inits)
                init_data->inits(np);
 
index 72b6cf83aff4d50e92365834d3b3d061ac0cbbf2..3484e6cc80ad10d1eceaba017de2a9bfc7602880 100644 (file)
@@ -13,9 +13,9 @@
 #include <linux/io.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
-#include <linux/of_device.h>
 #include <linux/platform_device.h>
 #include <linux/pm.h>
+#include <linux/property.h>
 
 #define EXYNOS_CLKOUT_NR_CLKS          1
 #define EXYNOS_CLKOUT_PARENTS          32
@@ -84,19 +84,17 @@ MODULE_DEVICE_TABLE(of, exynos_clkout_ids);
 static int exynos_clkout_match_parent_dev(struct device *dev, u32 *mux_mask)
 {
        const struct exynos_clkout_variant *variant;
-       const struct of_device_id *match;
 
        if (!dev->parent) {
                dev_err(dev, "not instantiated from MFD\n");
                return -EINVAL;
        }
 
-       match = of_match_device(exynos_clkout_ids, dev->parent);
-       if (!match) {
+       variant = device_get_match_data(dev->parent);
+       if (!variant) {
                dev_err(dev, "cannot match parent device\n");
                return -EINVAL;
        }
-       variant = match->data;
 
        *mux_mask = variant->mux_mask;
 
index ff42ea75cb4395c31e2f26a2e7c8114ee8b1c644..6121020b4b38a9474c0331d97f547fcd1a69071b 100644 (file)
@@ -8,7 +8,9 @@
 #include <linux/io.h>
 #include <linux/math64.h>
 #include <linux/module.h>
-#include <linux/of_device.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/string.h>
 
 #define ADPLL_PLLSS_MMR_LOCK_OFFSET    0x00    /* Managed by MPPULL */
@@ -860,24 +862,16 @@ static int ti_adpll_probe(struct platform_device *pdev)
 {
        struct device_node *node = pdev->dev.of_node;
        struct device *dev = &pdev->dev;
-       const struct of_device_id *match;
-       const struct ti_adpll_platform_data *pdata;
        struct ti_adpll_data *d;
        struct resource *res;
        int err;
 
-       match = of_match_device(ti_adpll_match, dev);
-       if (match)
-               pdata = match->data;
-       else
-               return -ENODEV;
-
        d = devm_kzalloc(dev, sizeof(*d), GFP_KERNEL);
        if (!d)
                return -ENOMEM;
        d->dev = dev;
        d->np = node;
-       d->c = pdata;
+       d->c = device_get_match_data(dev);
        dev_set_drvdata(d->dev, d);
        spin_lock_init(&d->lock);