All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4 11/13] clk: test: Provide unit test for clk_get_parent_rate() method
Date: Fri, 17 May 2019 00:10:40 +0200	[thread overview]
Message-ID: <20190516221042.3583-12-lukma@denx.de> (raw)
In-Reply-To: <20190516221042.3583-1-lukma@denx.de>

This commit provides sandbox unit test for clk_get_parent_rate() method.

For testing the default test clocks setup had to be adjusted to emulate
structure similar to clocks in the Common Clock Framework [CCF]
(for iMX devices).

The clk_get_parent_rate() relies on dev->driver_data having the pointer
to proper struct clk.
It uses internally clk_get_parent() method also tested by this test.

Signed-off-by: Lukasz Majewski <lukma@denx.de>

---

Changes in v4: None
Changes in v3:
- New patch

 arch/sandbox/include/asm/clk.h |  8 ++++++++
 drivers/clk/clk_sandbox_test.c | 26 ++++++++++++++++++++++++++
 test/dm/clk.c                  |  1 +
 3 files changed, 35 insertions(+)

diff --git a/arch/sandbox/include/asm/clk.h b/arch/sandbox/include/asm/clk.h
index 90f925109f..1df9534236 100644
--- a/arch/sandbox/include/asm/clk.h
+++ b/arch/sandbox/include/asm/clk.h
@@ -79,6 +79,14 @@ int sandbox_clk_test_get_by_id(struct udevice *dev);
  */
 int sandbox_clk_test_get_bulk(struct udevice *dev);
 /**
+ * sandbox_clk_test_get_parent_rate - Ask the sandbox clock test device to
+ * query a passed clock's parent rate.
+ *
+ * @dev:	The sandbox clock test (client) devivce.
+ * @return:	The rate of the clock
+ */
+ulong sandbox_clk_test_get_parent_rate(struct udevice *dev);
+/**
  * sandbox_clk_test_get_rate - Ask the sandbox clock test device to query a
  * clock's rate.
  *
diff --git a/drivers/clk/clk_sandbox_test.c b/drivers/clk/clk_sandbox_test.c
index 4d276f55b9..8ea15614c1 100644
--- a/drivers/clk/clk_sandbox_test.c
+++ b/drivers/clk/clk_sandbox_test.c
@@ -64,6 +64,32 @@ int sandbox_clk_test_get_bulk(struct udevice *dev)
 	return clk_get_bulk(dev, &sbct->bulk);
 }
 
+ulong sandbox_clk_test_get_parent_rate(struct udevice *dev)
+{
+	struct sandbox_clk_test *sbct = dev_get_priv(dev);
+	struct clk *i2c_clk, *parent_clk;
+	struct udevice *parent_bkp;
+	ulong rate;
+
+	parent_clk = &sbct->clks[SANDBOX_CLK_TEST_ID_FIXED];
+	i2c_clk = &sbct->clks[SANDBOX_CLK_TEST_ID_I2C];
+
+	parent_clk->dev->driver_data = (ulong)parent_clk;
+	parent_bkp = i2c_clk->dev->parent;
+	i2c_clk->dev->parent = parent_clk->dev;
+
+	rate = clk_get_parent_rate(i2c_clk);
+
+	i2c_clk->dev->parent = parent_bkp;
+	parent_clk->dev->driver_data = 0;
+
+	/* Check if cache'd value is correct */
+	if (parent_clk->rate != 1234)
+		return 0;
+
+	return rate;
+}
+
 ulong sandbox_clk_test_get_rate(struct udevice *dev, int id)
 {
 	struct sandbox_clk_test *sbct = dev_get_priv(dev);
diff --git a/test/dm/clk.c b/test/dm/clk.c
index 1685532259..438e4277f0 100644
--- a/test/dm/clk.c
+++ b/test/dm/clk.c
@@ -121,6 +121,7 @@ static int dm_test_clk(struct unit_test_state *uts)
 	ut_asserteq(0, sandbox_clk_query_enable(dev_clk, SANDBOX_CLK_ID_I2C));
 
 	ut_asserteq(0, sandbox_clk_test_get_by_id(dev_test));
+	ut_asserteq(1234, sandbox_clk_test_get_parent_rate(dev_test));
 
 	ut_assertok(sandbox_clk_test_free(dev_test));
 	return 0;
-- 
2.11.0

  parent reply	other threads:[~2019-05-16 22:10 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-16 22:10 [U-Boot] [PATCH v4 00/13] clk: Port Linux common clock framework [CCF] to U-boot (tag: 5.0-rc3) Lukasz Majewski
2019-05-16 22:10 ` [U-Boot] [PATCH v4 01/13] clk: doc: Add documentation entry for Common Clock Framework [CCF] (i.MX) Lukasz Majewski
2019-05-16 23:22   ` Marek Vasut
2019-05-17  6:15   ` Peng Fan
2019-06-10  9:40   ` [U-Boot] [PATCH v4 01/13] clk: doc: Add documentation entry for sbabic at denx.de
2019-05-16 22:10 ` [U-Boot] [PATCH v4 02/13] dm: Fix documentation entry as there is no UCLASS_CLOCK uclass Lukasz Majewski
2019-05-17  5:52   ` Peng Fan
2019-06-10  9:59   ` [U-Boot] [PATCH v4 02/13] dm: Fix documentation entry as there is sbabic at denx.de
2019-05-16 22:10 ` [U-Boot] [PATCH v4 03/13] clk: Remove clock ID check in .get_rate() of clk_fixed_* Lukasz Majewski
2019-05-17  5:53   ` Peng Fan
2019-06-08 15:22   ` Stefano Babic
2019-06-10  9:39   ` [U-Boot] [PATCH v4 03/13] clk: Remove clock ID check in .get_rate() sbabic at denx.de
2019-05-16 22:10 ` [U-Boot] [PATCH v4 04/13] clk: Extend struct clk to provide information regarding clock rate Lukasz Majewski
2019-05-16 23:23   ` Marek Vasut
2019-05-17  6:42     ` Lukasz Majewski
2019-06-08 15:22   ` Stefano Babic
2019-06-10  9:59   ` [U-Boot] [PATCH v4 04/13] clk: Extend struct clk to provide sbabic at denx.de
2019-05-16 22:10 ` [U-Boot] [PATCH v4 05/13] clk: Extend struct clk to provide clock type agnostic flags Lukasz Majewski
2019-05-17  5:54   ` Peng Fan
2019-06-08 15:22   ` Stefano Babic
2019-06-10  9:40   ` [U-Boot] [PATCH v4 05/13] clk: Extend struct clk to provide clock sbabic at denx.de
2019-05-16 22:10 ` [U-Boot] [PATCH v4 06/13] clk: Provide struct clk for fixed rate clock (clk_fixed_rate.c) Lukasz Majewski
2019-05-17  5:55   ` Peng Fan
2019-06-08 15:23   ` Stefano Babic
2019-06-10  9:40   ` [U-Boot] [PATCH v4 06/13] clk: Provide struct clk for fixed rate sbabic at denx.de
2019-05-16 22:10 ` [U-Boot] [PATCH v4 07/13] dm: clk: Define clk_get_parent() for clk operations Lukasz Majewski
2019-05-17  5:46   ` Peng Fan
2019-05-17  5:56     ` Peng Fan
2019-05-17  5:57   ` Peng Fan
2019-05-18 16:08   ` Simon Glass
2019-05-18 20:52     ` Lukasz Majewski
2019-05-18 22:04       ` Simon Glass
2019-06-08 15:24   ` Stefano Babic
2019-06-10  9:40   ` [U-Boot] [PATCH v4 07/13] dm: clk: Define clk_get_parent() for clk sbabic at denx.de
2019-05-16 22:10 ` [U-Boot] [PATCH v4 08/13] dm: clk: Define clk_get_parent_rate() for clk operations Lukasz Majewski
2019-05-17  5:58   ` Peng Fan
2019-05-18 16:08   ` Simon Glass
2019-05-18 20:45     ` Lukasz Majewski
2019-06-10  9:39   ` [U-Boot] [PATCH v4 08/13] dm: clk: Define clk_get_parent_rate() for sbabic at denx.de
2019-05-16 22:10 ` [U-Boot] [PATCH v4 09/13] dm: clk: Define clk_get_by_id() for clk operations Lukasz Majewski
2019-05-17  5:58   ` Peng Fan
2019-05-18 16:08   ` Simon Glass
2019-05-18 20:44     ` Lukasz Majewski
2019-06-08 15:24   ` Stefano Babic
2019-06-10  9:39   ` [U-Boot] [PATCH v4 09/13] dm: clk: Define clk_get_by_id() for clk sbabic at denx.de
2019-05-16 22:10 ` [U-Boot] [PATCH v4 10/13] clk: test: Provide unit test for clk_get_by_id() method Lukasz Majewski
2019-05-17  6:00   ` Peng Fan
2019-06-10  9:41   ` [U-Boot] [PATCH v4 10/13] clk: test: Provide unit test for sbabic at denx.de
2019-05-16 22:10 ` Lukasz Majewski [this message]
2019-05-18 16:33   ` [U-Boot] [PATCH v4 11/13] clk: test: Provide unit test for clk_get_parent_rate() method Simon Glass
2019-06-10  9:49   ` [U-Boot] [PATCH v4 11/13] clk: test: Provide unit test for sbabic at denx.de
2019-05-16 22:10 ` [U-Boot] [PATCH v4 12/13] clk: Port Linux common clock framework [CCF] for imx6q to U-boot (tag: 5.0-rc3) Lukasz Majewski
2019-05-17  2:48   ` Bin Meng
2019-05-17 12:31     ` Adam Ford
2019-05-17 13:19       ` Lukasz Majewski
2019-06-10  9:40   ` [U-Boot] [PATCH v4 12/13] clk: Port Linux common clock framework sbabic at denx.de
2019-06-10 21:36   ` Lukasz Majewski
2019-06-11  8:29     ` Stefano Babic
2019-05-16 22:10 ` [U-Boot] [PATCH v4 13/13] dm: clk: Extend clk_get_parent_rate() to support CLK_GET_RATE_NOCACHE flag Lukasz Majewski
2019-05-17  6:03   ` Peng Fan
2019-06-10  9:39   ` [U-Boot] [PATCH v4 13/13] dm: clk: Extend clk_get_parent_rate() to sbabic at denx.de
2019-05-18 16:08 ` [U-Boot] [PATCH v4 00/13] clk: Port Linux common clock framework [CCF] to U-boot (tag: 5.0-rc3) Simon Glass
2019-05-18 20:49   ` Lukasz Majewski
2019-05-18 22:02     ` Simon Glass
2019-05-19 14:34       ` Lukasz Majewski
2019-05-20 15:35         ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190516221042.3583-12-lukma@denx.de \
    --to=lukma@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.