Prepare for adding a CCF version of clk_sandbox by moving the existing
version to clk/basic. Additionally fix the clk_set_rate() tests which
erroneously expect set_rate to return the old clock rate, this doesn't
match the documentation nor any real implementations or users. Adjust it
to return the new rate instead.

Signed-off-by: Casey Connolly <[email protected]>
---
 drivers/clk/Makefile                  |  1 -
 drivers/clk/basic/Makefile            |  1 +
 drivers/clk/{ => basic}/clk_sandbox.c | 47 ++---------------------------------
 test/dm/clk.c                         |  8 +++---
 4 files changed, 7 insertions(+), 50 deletions(-)

diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
index 4bec2e4c61a8..52a9fc01106c 100644
--- a/drivers/clk/Makefile
+++ b/drivers/clk/Makefile
@@ -64,6 +64,5 @@ obj-$(CONFIG_CLK_XLNX_CLKWZRD) += clk-xlnx-clock-wizard.o
 obj-$(CONFIG_CLK_ZYNQ) += clk_zynq.o
 obj-$(CONFIG_CLK_ZYNQMP) += clk_zynqmp.o
 obj-$(CONFIG_CLK_ICS8N3QV01) += ics8n3qv01.o
 obj-$(CONFIG_MACH_PIC32) += clk_pic32.o
-obj-$(CONFIG_SANDBOX) += clk_sandbox.o
 obj-$(CONFIG_SANDBOX) += clk_sandbox_test.o
diff --git a/drivers/clk/basic/Makefile b/drivers/clk/basic/Makefile
index 4cf9469d2312..bc0282d4e247 100644
--- a/drivers/clk/basic/Makefile
+++ b/drivers/clk/basic/Makefile
@@ -4,4 +4,5 @@
 #
 
 obj-$(CONFIG_$(PHASE_)CLK) += clk_fixed_rate.o
 obj-$(CONFIG_$(PHASE_)CLK) += clk_fixed_factor.o
+obj-$(CONFIG_SANDBOX) += clk_sandbox.o
diff --git a/drivers/clk/clk_sandbox.c b/drivers/clk/basic/clk_sandbox.c
similarity index 80%
rename from drivers/clk/clk_sandbox.c
rename to drivers/clk/basic/clk_sandbox.c
index 36ca128892b5..1092a5a085fc 100644
--- a/drivers/clk/clk_sandbox.c
+++ b/drivers/clk/basic/clk_sandbox.c
@@ -43,9 +43,8 @@ static ulong sandbox_clk_round_rate(struct clk *clk, ulong 
rate)
 
 static long sandbox_clk_set_rate(struct clk *clk, ulong rate)
 {
        struct sandbox_clk_priv *priv = dev_get_priv(clk->dev);
-       ulong old_rate;
        ulong id = clk_get_id(clk);
 
        if (!priv->probed)
                return -ENODEV;
@@ -55,12 +54,11 @@ static long sandbox_clk_set_rate(struct clk *clk, ulong 
rate)
 
        if (!rate)
                return -EINVAL;
 
-       old_rate = priv->rate[id];
        priv->rate[id] = rate;
 
-       return old_rate;
+       return rate;
 }
 
 static int sandbox_clk_enable(struct clk *clk)
 {
@@ -165,9 +163,8 @@ int sandbox_clk_query_requested(struct udevice *dev, int id)
                return -EINVAL;
        return priv->requested[id];
 }
 
-#if !CONFIG_IS_ENABLED(CLK_CCF_FULL)
 static int clk_fixed_rate_of_to_plat(struct udevice *dev)
 {
        struct clk_fixed_rate *cplat;
 
@@ -196,45 +193,5 @@ U_BOOT_DRIVER(sandbox_fixed_clock) = {
        .of_to_plat = clk_fixed_rate_of_to_plat,
        .plat_auto = sizeof(struct sandbox_clk_fixed_rate_plat),
        .ops = &clk_fixed_rate_ops,
        .flags = DM_FLAG_PRE_RELOC,
-};
-#else
-static int clk_fixed_rate_probe(struct udevice *dev)
-{
-       ofnode node = dev_ofnode(dev);
-       const char *clk_name;
-       struct clk_hw *hw;
-       u32 rate = 0;
-       int ret;
-
-       ofnode_read_u32(node, "clock-frequency", &rate);
-
-       clk_name = ofnode_read_string(node, "clock-output-names");
-       if (!clk_name)
-               clk_name = ofnode_get_name(node);
-
-       hw = clk_hw_register_fixed_rate(dev, clk_name, NULL, 0, rate);
-       if (IS_ERR(hw))
-               return PTR_ERR(hw);
-
-       ret = of_clk_add_hw_provider(node, of_clk_hw_simple_get, hw);
-       if (ret) {
-               clk_hw_unregister_fixed_rate(hw);
-               return ret;
-       }
-
-       return 0;
-}
-
-static const struct udevice_id sandbox_clk_fixed_rate_match[] = {
-       { .compatible = "sandbox,fixed-clock" },
-       { /* sentinel */ }
-};
-
-U_BOOT_DRIVER(sandbox_fixed_clock) = {
-       .name = "sandbox_fixed_clock",
-       .id = UCLASS_NOP,
-       .of_match = sandbox_clk_fixed_rate_match,
-       .probe = clk_fixed_rate_probe,
-};
-#endif
+};
\ No newline at end of file
diff --git a/test/dm/clk.c b/test/dm/clk.c
index 790968e64774..67d9a2bb4815 100644
--- a/test/dm/clk.c
+++ b/test/dm/clk.c
@@ -99,24 +99,24 @@ static int dm_test_clk(struct unit_test_state *uts)
        ut_assert(IS_ERR_VALUE(rate));
        rate = sandbox_clk_test_get_rate(dev_test, SANDBOX_CLK_TEST_ID_FIXED);
        ut_asserteq(1234, rate);
 
-       ut_asserteq(0, sandbox_clk_test_set_rate(dev_test,
+       ut_asserteq(1000, sandbox_clk_test_set_rate(dev_test,
                                                 SANDBOX_CLK_TEST_ID_SPI,
                                                 1000));
-       ut_asserteq(0, sandbox_clk_test_set_rate(dev_test,
+       ut_asserteq(2000, sandbox_clk_test_set_rate(dev_test,
                                                 SANDBOX_CLK_TEST_ID_I2C,
                                                 2000));
 
        ut_asserteq(1000, sandbox_clk_test_get_rate(dev_test,
                                                    SANDBOX_CLK_TEST_ID_SPI));
        ut_asserteq(2000, sandbox_clk_test_get_rate(dev_test,
                                                    SANDBOX_CLK_TEST_ID_I2C));
 
-       ut_asserteq(1000, sandbox_clk_test_set_rate(dev_test,
+       ut_asserteq(10000, sandbox_clk_test_set_rate(dev_test,
                                                    SANDBOX_CLK_TEST_ID_SPI,
                                                    10000));
-       ut_asserteq(2000, sandbox_clk_test_set_rate(dev_test,
+       ut_asserteq(20000, sandbox_clk_test_set_rate(dev_test,
                                                    SANDBOX_CLK_TEST_ID_I2C,
                                                    20000));
 
        rate = sandbox_clk_test_set_rate(dev_test, SANDBOX_CLK_TEST_ID_SPI, 0);

-- 
2.55.0

Reply via email to