clk: add clk_valid()

Add clk_valid() to check for optional clocks are valid.
Call clk_valid() in test/dm/clk.c and add relevant test routine to
sandbox clk tests.

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
lime2-spi
Fabrice Gasnier 6 years ago committed by Tom Rini
parent 14aa210c1d
commit 1fe243a1e4
  1. 8
      arch/sandbox/include/asm/clk.h
  2. 13
      drivers/clk/clk_sandbox_test.c
  3. 10
      include/clk.h
  4. 1
      test/dm/clk.c

@ -138,5 +138,13 @@ int sandbox_clk_test_free(struct udevice *dev);
* @return: 0 if OK, or a negative error code.
*/
int sandbox_clk_test_release_bulk(struct udevice *dev);
/**
* sandbox_clk_test_valid - Ask the sandbox clock test device to check its
* clocks are valid.
*
* @dev: The sandbox clock test (client) devivce.
* @return: 0 if OK, or a negative error code.
*/
int sandbox_clk_test_valid(struct udevice *dev);
#endif

@ -116,6 +116,19 @@ int sandbox_clk_test_release_bulk(struct udevice *dev)
return clk_release_bulk(&sbct->bulk);
}
int sandbox_clk_test_valid(struct udevice *dev)
{
struct sandbox_clk_test *sbct = dev_get_priv(dev);
int i;
for (i = 0; i < SANDBOX_CLK_TEST_ID_COUNT; i++) {
if (!clk_valid(&sbct->clks[i]))
return -EINVAL;
}
return 0;
}
static const struct udevice_id sandbox_clk_test_ids[] = {
{ .compatible = "sandbox,clk-test" },
{ }

@ -294,4 +294,14 @@ int clk_disable_bulk(struct clk_bulk *bulk);
int soc_clk_dump(void);
/**
* clk_valid() - check if clk is valid
*
* @clk: the clock to check
* @return true if valid, or false
*/
static inline bool clk_valid(struct clk *clk)
{
return !!clk->dev;
}
#endif

@ -28,6 +28,7 @@ static int dm_test_clk(struct unit_test_state *uts)
ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "clk-test",
&dev_test));
ut_assertok(sandbox_clk_test_get(dev_test));
ut_assertok(sandbox_clk_test_valid(dev_test));
ut_asserteq(1234,
sandbox_clk_test_get_rate(dev_test,

Loading…
Cancel
Save