mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 12:54:37 +00:00
sandbox: clk: add clk enable/disable test code
Since we added clk enable_count and prograte clk child enabling operation to clk parent, so add a new function sandbox_clk_enable_count to get enable_count for test usage. And add test code to get the enable_count after we enable/disable the device clk. Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
parent
aeeb2e6d9c
commit
c66f4f5e30
3 changed files with 46 additions and 0 deletions
|
@ -25,6 +25,18 @@ struct clk_pllv3 {
|
||||||
u32 div_shift;
|
u32 div_shift;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int sandbox_clk_enable_count(struct clk *clk)
|
||||||
|
{
|
||||||
|
struct clk *clkp = NULL;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = clk_get_by_id(clk->id, &clkp);
|
||||||
|
if (ret)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return clkp->enable_count;
|
||||||
|
}
|
||||||
|
|
||||||
static ulong clk_pllv3_get_rate(struct clk *clk)
|
static ulong clk_pllv3_get_rate(struct clk *clk)
|
||||||
{
|
{
|
||||||
unsigned long parent_rate = clk_get_parent_rate(clk);
|
unsigned long parent_rate = clk_get_parent_rate(clk);
|
||||||
|
@ -254,6 +266,9 @@ static int sandbox_clk_ccf_probe(struct udevice *dev)
|
||||||
sandbox_clk_composite("i2c", i2c_sels, ARRAY_SIZE(i2c_sels),
|
sandbox_clk_composite("i2c", i2c_sels, ARRAY_SIZE(i2c_sels),
|
||||||
®, 0));
|
®, 0));
|
||||||
|
|
||||||
|
clk_dm(SANDBOX_CLK_I2C_ROOT,
|
||||||
|
sandbox_clk_gate2("i2c_root", "i2c", base + 0x7c, 0));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ enum {
|
||||||
SANDBOX_CLK_USDHC1_SEL,
|
SANDBOX_CLK_USDHC1_SEL,
|
||||||
SANDBOX_CLK_USDHC2_SEL,
|
SANDBOX_CLK_USDHC2_SEL,
|
||||||
SANDBOX_CLK_I2C,
|
SANDBOX_CLK_I2C,
|
||||||
|
SANDBOX_CLK_I2C_ROOT,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum sandbox_pllv3_type {
|
enum sandbox_pllv3_type {
|
||||||
|
@ -74,4 +75,6 @@ static inline struct clk *sandbox_clk_mux(const char *name, void __iomem *reg,
|
||||||
width, 0);
|
width, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int sandbox_clk_enable_count(struct clk *clk);
|
||||||
|
|
||||||
#endif /* __SANDBOX_CLK_H__ */
|
#endif /* __SANDBOX_CLK_H__ */
|
||||||
|
|
|
@ -64,6 +64,34 @@ static int dm_test_clk_ccf(struct unit_test_state *uts)
|
||||||
rate = clk_get_rate(clk);
|
rate = clk_get_rate(clk);
|
||||||
ut_asserteq(rate, 60000000);
|
ut_asserteq(rate, 60000000);
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(CLK_CCF)
|
||||||
|
/* Test clk tree enable/disable */
|
||||||
|
ret = clk_get_by_id(SANDBOX_CLK_I2C_ROOT, &clk);
|
||||||
|
ut_assertok(ret);
|
||||||
|
ut_asserteq_str("i2c_root", clk->dev->name);
|
||||||
|
|
||||||
|
ret = clk_enable(clk);
|
||||||
|
ut_assertok(ret);
|
||||||
|
|
||||||
|
ret = sandbox_clk_enable_count(clk);
|
||||||
|
ut_asserteq(ret, 1);
|
||||||
|
|
||||||
|
ret = clk_get_by_id(SANDBOX_CLK_I2C, &pclk);
|
||||||
|
ut_assertok(ret);
|
||||||
|
|
||||||
|
ret = sandbox_clk_enable_count(pclk);
|
||||||
|
ut_asserteq(ret, 1);
|
||||||
|
|
||||||
|
ret = clk_disable(clk);
|
||||||
|
ut_assertok(ret);
|
||||||
|
|
||||||
|
ret = sandbox_clk_enable_count(clk);
|
||||||
|
ut_asserteq(ret, 0);
|
||||||
|
|
||||||
|
ret = sandbox_clk_enable_count(pclk);
|
||||||
|
ut_asserteq(ret, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue