diff options
author | Gabriel Fernandez <gabriel.fernandez@foss.st.com> | 2022-05-16 09:05:49 +0200 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2022-05-20 21:07:48 -0700 |
commit | f95cea8308de5ef4075ae4f1f8a72ec275b0d5b5 (patch) | |
tree | eb6a42e83256764d5160c1079813617cae5d601f /drivers/clk/stm32/clk-stm32-core.h | |
parent | 637cee5ffc71698eecf014a794e8d24a213b3c07 (diff) | |
download | linux-f95cea8308de5ef4075ae4f1f8a72ec275b0d5b5.tar.gz linux-f95cea8308de5ef4075ae4f1f8a72ec275b0d5b5.tar.bz2 linux-f95cea8308de5ef4075ae4f1f8a72ec275b0d5b5.zip |
clk: stm32mp13: add stm32_mux clock management
Just to introduce management of a stm32 mux clock.
Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com>
Link: https://lore.kernel.org/r/20220516070600.7692-4-gabriel.fernandez@foss.st.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Diffstat (limited to 'drivers/clk/stm32/clk-stm32-core.h')
-rw-r--r-- | drivers/clk/stm32/clk-stm32-core.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/clk/stm32/clk-stm32-core.h b/drivers/clk/stm32/clk-stm32-core.h index 519723ae97eb..8563e6e1c91a 100644 --- a/drivers/clk/stm32/clk-stm32-core.h +++ b/drivers/clk/stm32/clk-stm32-core.h @@ -83,10 +83,34 @@ int stm32_rcc_init(struct device *dev, const struct of_device_id *match_data, /* DIV define */ #define DIV_NO_RDY 0xFF +/* Definition of clock structure */ +struct clk_stm32_mux { + u16 mux_id; + struct clk_hw hw; + void __iomem *base; + struct clk_stm32_clock_data *clock_data; + spinlock_t *lock; /* spin lock */ +}; + +#define to_clk_stm32_mux(_hw) container_of(_hw, struct clk_stm32_mux, hw) + +/* Clock operators */ +extern const struct clk_ops clk_stm32_mux_ops; + /* Clock registering */ +struct clk_hw *clk_stm32_mux_register(struct device *dev, + const struct stm32_rcc_match_data *data, + void __iomem *base, + spinlock_t *lock, + const struct clock_config *cfg); + #define STM32_CLOCK_CFG(_binding, _clk, _struct, _register)\ {\ .id = (_binding),\ .clock_cfg = (_struct) {_clk},\ .func = (_register),\ } + +#define STM32_MUX_CFG(_binding, _clk)\ + STM32_CLOCK_CFG(_binding, &(_clk), struct clk_stm32_mux *,\ + &clk_stm32_mux_register) |