]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
clk: Rename clk_get_by_driver_info()
authorSimon Glass <sjg@chromium.org>
Sat, 7 Aug 2021 13:24:09 +0000 (07:24 -0600)
committerSimon Glass <sjg@chromium.org>
Sat, 25 Sep 2021 15:46:15 +0000 (09:46 -0600)
This is actually a misnomer now, since the phandle info may contain
a driver_info index or a udevice index. Rename it to use the word
'phandle', which seems more accurate. Add a comment while we are here.

Also add a test for this function.

Signed-off-by: Simon Glass <sjg@chromium.org>
drivers/clk/clk-uclass.c
drivers/mmc/ftsdc010_mci.c
drivers/mmc/rockchip_dw_mmc.c
drivers/ram/rockchip/sdram_rk3399.c
drivers/spi/rk_spi.c
include/clk.h
test/dm/of_platdata.c

index 7b1ea076afd5e222f2679e3fe8b1e8899b0627e7..493018b33eb6ae583ec19bb7ba4462d4935fa11f 100644 (file)
@@ -36,8 +36,8 @@ struct clk *dev_get_clk_ptr(struct udevice *dev)
 }
 
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-int clk_get_by_driver_info(struct udevice *dev, struct phandle_1_arg *cells,
-                          struct clk *clk)
+int clk_get_by_phandle(struct udevice *dev, const struct phandle_1_arg *cells,
+                      struct clk *clk)
 {
        int ret;
 
@@ -413,6 +413,7 @@ int clk_get_by_name(struct udevice *dev, const char *name, struct clk *clk)
 
        return clk_get_by_index(dev, index, clk);
 }
+#endif /* OF_REAL */
 
 int clk_get_by_name_nodev(ofnode node, const char *name, struct clk *clk)
 {
@@ -465,8 +466,6 @@ int clk_release_all(struct clk *clk, int count)
        return 0;
 }
 
-#endif /* OF_REAL */
-
 int clk_request(struct udevice *dev, struct clk *clk)
 {
        const struct clk_ops *ops;
index b8cafeb0431721be7667b0647184ae74eaab6aa2..570d54cf9d8fa68b5fc04ea6cda7ab145f4e1433 100644 (file)
@@ -433,7 +433,7 @@ static int ftsdc010_mmc_probe(struct udevice *dev)
        chip->priv = dev;
        chip->dev_index = 1;
        memcpy(priv->minmax, dtplat->clock_freq_min_max, sizeof(priv->minmax));
-       ret = clk_get_by_driver_info(dev, dtplat->clocks, &priv->clk);
+       ret = clk_get_by_phandle(dev, dtplat->clocks, &priv->clk);
        if (ret < 0)
                return ret;
 #endif
index 855c0e7af52c14273c1c9aa0bf8e11b5c7e6f748..7f8dea1e343d70b6ff0a77babc695d482a4e8622 100644 (file)
@@ -123,7 +123,7 @@ static int rockchip_dwmmc_probe(struct udevice *dev)
        priv->minmax[0] = 400000;  /*  400 kHz */
        priv->minmax[1] = dtplat->max_frequency;
 
-       ret = clk_get_by_driver_info(dev, dtplat->clocks, &priv->clk);
+       ret = clk_get_by_phandle(dev, dtplat->clocks, &priv->clk);
        if (ret < 0)
                return ret;
 #else
index ce33fbbd7a6d5f95f52d43cbdaaad7ab3c56f2ac..c0a06dcaed04e2dfc11fbaa0f33baf726d51295f 100644 (file)
@@ -3107,7 +3107,7 @@ static int rk3399_dmc_init(struct udevice *dev)
              priv->cic, priv->pmugrf, priv->pmusgrf, priv->pmucru, priv->pmu);
 
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-       ret = clk_get_by_driver_info(dev, dtplat->clocks, &priv->ddr_clk);
+       ret = clk_get_by_phandle(dev, dtplat->clocks, &priv->ddr_clk);
 #else
        ret = clk_get_by_index(dev, 0, &priv->ddr_clk);
 #endif
index 8309a5301f2ab6e4d75c417bc7e3feac72e0aa8d..cb80be77ae9fc04910f460f95140336e4b20db2f 100644 (file)
@@ -183,7 +183,7 @@ static int conv_of_plat(struct udevice *dev)
 
        plat->base = dtplat->reg[0];
        plat->frequency = 20000000;
-       ret = clk_get_by_driver_info(dev, dtplat->clocks, &priv->clk);
+       ret = clk_get_by_phandle(dev, dtplat->clocks, &priv->clk);
        if (ret < 0)
                return ret;
 
index f34401f48ee46d8d6e98ca993c0e030676cd9970..a928879b12225ba5b3acd98ed6d8f900a8aaf01e 100644 (file)
@@ -89,11 +89,36 @@ struct clk_bulk {
 
 #if CONFIG_IS_ENABLED(OF_CONTROL) && CONFIG_IS_ENABLED(CLK)
 struct phandle_1_arg;
-int clk_get_by_driver_info(struct udevice *dev,
-                          struct phandle_1_arg *cells, struct clk *clk);
+/**
+ * clk_get_by_phandle() - Get a clock by its phandle information (of-platadata)
+ *
+ * This function is used when of-platdata is enabled.
+ *
+ * This looks up a clock using the phandle info. With dtoc, each phandle in the
+ * 'clocks' property is transformed into an idx representing the device. For
+ * example:
+ *
+ *     clocks = <&dpll_mpu_ck 23>;
+ *
+ * might result in:
+ *
+ *     .clocks = {1, {23}},},
+ *
+ * indicating that the clock is udevice idx 1 in dt-plat.c with an argument of
+ * 23. This function can return a valid clock given the above information. In
+ * this example it would return a clock containing the 'dpll_mpu_ck' device and
+ * the clock ID 23.
+ *
+ * @dev: Device containing the phandle
+ * @cells: Phandle info
+ * @clock: A pointer to a clock struct to initialise
+ * @return 0 if OK, or a negative error code.
+ */
+int clk_get_by_phandle(struct udevice *dev, const struct phandle_1_arg *cells,
+                      struct clk *clk);
 
 /**
- * clk_get_by_index - Get/request a clock by integer index.
+ * clk_get_by_index() - Get/request a clock by integer index.
  *
  * This looks up and requests a clock. The index is relative to the client
  * device; each device is assumed to have n clocks associated with it somehow,
index 0463cf0b433c34c84dd66372777aaf2b0e56aeef..c4a2d114104f6dfb04216c808bea3e029292d06b 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 
 #include <common.h>
+#include <clk.h>
 #include <dm.h>
 #include <dt-structs.h>
 #include <dm/test.h>
@@ -222,3 +223,21 @@ static int dm_test_of_plat_parent(struct unit_test_state *uts)
 }
 DM_TEST(dm_test_of_plat_parent, UT_TESTF_SCAN_PDATA);
 #endif
+
+/* Test clocks with of-platdata */
+static int dm_test_of_plat_clk(struct unit_test_state *uts)
+{
+       struct dtd_sandbox_clk_test *plat;
+       struct udevice *dev;
+       struct clk clk;
+
+       ut_assertok(uclass_first_device_err(UCLASS_MISC, &dev));
+       ut_asserteq_str("sandbox_clk_test", dev->name);
+       plat = dev_get_plat(dev);
+
+       ut_assertok(clk_get_by_phandle(dev, &plat->clocks[0], &clk));
+       ut_asserteq_str("sandbox_fixed_clock", clk.dev->name);
+
+       return 0;
+}
+DM_TEST(dm_test_of_plat_clk, UT_TESTF_SCAN_PDATA);