clk: add CONFIG_CLK_AUTO_ID
Add a new config CONFIG_CLK_AUTO_ID to support a unique clk id for all the clock providers, managed by clk uclass, when the clock reference arg[0] is the same. When the CONFIG is activated, the clock id is limited to the lower CLK_ID_SZ = 24 bits in default clock xlate function and the sequence number + 1 of the clk provider device is added for the 8 higher bits. We use sequence number + 1 to avoid the "dummy" clock id = 0, used for invalid clock when CCF is activated. When this config is activated, the new function clk_get_id() should be used to get back the internal reference to clock for the each clock provider. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Cc: Lukasz Majewski <lukma@denx.de> Cc: Sean Anderson <seanga2@gmail.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
This commit is contained in:
committed by
Patrice Chotard
parent
49bc67b3fa
commit
0846bad0d0
@@ -15,10 +15,17 @@
|
||||
|
||||
struct udevice;
|
||||
|
||||
/* update clock ID for the dev = clock provider, compatible with CLK_AUTO_ID */
|
||||
static inline void dev_clk_dm(const struct udevice *dev, ulong id, struct clk *clk)
|
||||
{
|
||||
if (!IS_ERR(clk))
|
||||
clk->id = CLK_ID(dev, id);
|
||||
}
|
||||
|
||||
static inline void clk_dm(ulong id, struct clk *clk)
|
||||
{
|
||||
if (!IS_ERR(clk))
|
||||
clk->id = id;
|
||||
clk->id = CLK_ID(clk->dev, id);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user