clk: add CONFIG_CLK_AUTO_ID
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Tue, 27 May 2025 13:27:46 +0000 (15:27 +0200)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Wed, 11 Jun 2025 07:42:55 +0000 (09:42 +0200)
commit0846bad0d08b53f6abaa4c8afe812dba93057424
treeac1b211b41cf6c1173eb318e59547cc7150a3326
parent49bc67b3fa0f245dacc7e88797d88343a72163a5
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>
drivers/clk/Kconfig
drivers/clk/clk-uclass.c
drivers/clk/stm32/clk-stm32-core.c
include/clk.h
include/linux/clk-provider.h