diff mbox series

[v2,1/2] clk: introduce (devm_)hw_register_mux_parent_data_table API

Message ID 20220914144743.17369-1-ansuelsmth@gmail.com
State Accepted
Commit d7915651fe9a6474e06161c34c637e6aeb811e9d
Headers show
Series [v2,1/2] clk: introduce (devm_)hw_register_mux_parent_data_table API | expand

Commit Message

Christian Marangi Sept. 14, 2022, 2:47 p.m. UTC
Introduce (devm_)hw_register_mux_parent_data_table new API. We have
basic support for clk_register_mux using parent_data but we lack any API
to provide a custom parent_map. Add these 2 new API to correctly handle
these special configuration instead of using the generic
__(devm_)clk_hw_register_mux API.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
v2:
- Rebase on top of linux-next/master

 include/linux/clk-provider.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Comments

Stephen Boyd Sept. 30, 2022, 7:19 p.m. UTC | #1
Quoting Christian Marangi (2022-09-14 07:47:42)
> Introduce (devm_)hw_register_mux_parent_data_table new API. We have
> basic support for clk_register_mux using parent_data but we lack any API
> to provide a custom parent_map. Add these 2 new API to correctly handle
> these special configuration instead of using the generic
> __(devm_)clk_hw_register_mux API.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---

Acked-by: Stephen Boyd <sboyd@kernel.org>

or I'll pick it up after Bjorn sends qcom PR.
Stephen Boyd Oct. 4, 2022, 3:51 a.m. UTC | #2
Quoting Christian Marangi (2022-09-14 07:47:42)
> Introduce (devm_)hw_register_mux_parent_data_table new API. We have
> basic support for clk_register_mux using parent_data but we lack any API
> to provide a custom parent_map. Add these 2 new API to correctly handle
> these special configuration instead of using the generic
> __(devm_)clk_hw_register_mux API.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---

Applied to clk-next
diff mbox series

Patch

diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index 1615010aa0ec..65b70f0d62c5 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -974,6 +974,13 @@  struct clk *clk_register_mux_table(struct device *dev, const char *name,
 	__clk_hw_register_mux((dev), NULL, (name), (num_parents), NULL, NULL, \
 			      (parent_data), (flags), (reg), (shift),	      \
 			      BIT((width)) - 1, (clk_mux_flags), NULL, (lock))
+#define clk_hw_register_mux_parent_data_table(dev, name, parent_data,	      \
+					      num_parents, flags, reg, shift, \
+					      width, clk_mux_flags, table,    \
+					      lock)			      \
+	__clk_hw_register_mux((dev), NULL, (name), (num_parents), NULL, NULL, \
+			      (parent_data), (flags), (reg), (shift),	      \
+			      BIT((width)) - 1, (clk_mux_flags), table, (lock))
 #define devm_clk_hw_register_mux(dev, name, parent_names, num_parents, flags, reg, \
 			    shift, width, clk_mux_flags, lock)		      \
 	__devm_clk_hw_register_mux((dev), NULL, (name), (num_parents),	      \
@@ -987,6 +994,13 @@  struct clk *clk_register_mux_table(struct device *dev, const char *name,
 				   (parent_hws), NULL, (flags), (reg),        \
 				   (shift), BIT((width)) - 1,		      \
 				   (clk_mux_flags), NULL, (lock))
+#define devm_clk_hw_register_mux_parent_data_table(dev, name, parent_data,    \
+					      num_parents, flags, reg, shift, \
+					      width, clk_mux_flags, table,    \
+					      lock)			      \
+	__devm_clk_hw_register_mux((dev), NULL, (name), (num_parents), NULL,  \
+			      NULL, (parent_data), (flags), (reg), (shift),   \
+			      BIT((width)) - 1, (clk_mux_flags), table, (lock))
 
 int clk_mux_val_to_index(struct clk_hw *hw, const u32 *table, unsigned int flags,
 			 unsigned int val);