Commit 5fd9c05c authored by Geliang Tang's avatar Geliang Tang Committed by Stephen Boyd

clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h

to_clk_*(_hw) macros have been repeatedly defined in many places.
This patch moves all the to_clk_*(_hw) definitions in the common
clock framework to public header clk-provider.h, and drop the local
definitions.
Signed-off-by: default avatarGeliang Tang <geliangtang@163.com>
Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
parent f9285b54
...@@ -19,8 +19,6 @@ ...@@ -19,8 +19,6 @@
#include <linux/err.h> #include <linux/err.h>
#include <linux/slab.h> #include <linux/slab.h>
#define to_clk_composite(_hw) container_of(_hw, struct clk_composite, hw)
static u8 clk_composite_get_parent(struct clk_hw *hw) static u8 clk_composite_get_parent(struct clk_hw *hw)
{ {
struct clk_composite *composite = to_clk_composite(hw); struct clk_composite *composite = to_clk_composite(hw);
......
...@@ -28,8 +28,6 @@ ...@@ -28,8 +28,6 @@
* parent - fixed parent. No clk_set_parent support * parent - fixed parent. No clk_set_parent support
*/ */
#define to_clk_divider(_hw) container_of(_hw, struct clk_divider, hw)
#define div_mask(width) ((1 << (width)) - 1) #define div_mask(width) ((1 << (width)) - 1)
static unsigned int _get_table_maxdiv(const struct clk_div_table *table, static unsigned int _get_table_maxdiv(const struct clk_div_table *table,
......
...@@ -23,8 +23,6 @@ ...@@ -23,8 +23,6 @@
* parent - fixed parent. No clk_set_parent support * parent - fixed parent. No clk_set_parent support
*/ */
#define to_clk_fixed_factor(_hw) container_of(_hw, struct clk_fixed_factor, hw)
static unsigned long clk_factor_recalc_rate(struct clk_hw *hw, static unsigned long clk_factor_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate) unsigned long parent_rate)
{ {
......
...@@ -26,8 +26,6 @@ ...@@ -26,8 +26,6 @@
* parent - fixed parent. No clk_set_parent support * parent - fixed parent. No clk_set_parent support
*/ */
#define to_clk_fixed_rate(_hw) container_of(_hw, struct clk_fixed_rate, hw)
static unsigned long clk_fixed_rate_recalc_rate(struct clk_hw *hw, static unsigned long clk_fixed_rate_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate) unsigned long parent_rate)
{ {
......
...@@ -16,8 +16,6 @@ ...@@ -16,8 +16,6 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/rational.h> #include <linux/rational.h>
#define to_clk_fd(_hw) container_of(_hw, struct clk_fractional_divider, hw)
static unsigned long clk_fd_recalc_rate(struct clk_hw *hw, static unsigned long clk_fd_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate) unsigned long parent_rate)
{ {
......
...@@ -26,8 +26,6 @@ ...@@ -26,8 +26,6 @@
* parent - fixed parent. No clk_set_parent support * parent - fixed parent. No clk_set_parent support
*/ */
#define to_clk_gate(_hw) container_of(_hw, struct clk_gate, hw)
/* /*
* It works on following logic: * It works on following logic:
* *
......
...@@ -31,8 +31,6 @@ ...@@ -31,8 +31,6 @@
* parent - fixed parent. No clk_set_parent support * parent - fixed parent. No clk_set_parent support
*/ */
#define to_clk_gpio(_hw) container_of(_hw, struct clk_gpio, hw)
static int clk_gpio_gate_enable(struct clk_hw *hw) static int clk_gpio_gate_enable(struct clk_hw *hw)
{ {
struct clk_gpio *clk = to_clk_gpio(hw); struct clk_gpio *clk = to_clk_gpio(hw);
......
...@@ -14,8 +14,6 @@ ...@@ -14,8 +14,6 @@
#include <linux/of.h> #include <linux/of.h>
#include <linux/slab.h> #include <linux/slab.h>
#define to_clk_multiplier(_hw) container_of(_hw, struct clk_multiplier, hw)
static unsigned long __get_mult(struct clk_multiplier *mult, static unsigned long __get_mult(struct clk_multiplier *mult,
unsigned long rate, unsigned long rate,
unsigned long parent_rate) unsigned long parent_rate)
......
...@@ -26,8 +26,6 @@ ...@@ -26,8 +26,6 @@
* parent - parent is adjustable through clk_set_parent * parent - parent is adjustable through clk_set_parent
*/ */
#define to_clk_mux(_hw) container_of(_hw, struct clk_mux, hw)
static u8 clk_mux_get_parent(struct clk_hw *hw) static u8 clk_mux_get_parent(struct clk_hw *hw)
{ {
struct clk_mux *mux = to_clk_mux(hw); struct clk_mux *mux = to_clk_mux(hw);
......
...@@ -38,7 +38,7 @@ struct clk_busy_divider { ...@@ -38,7 +38,7 @@ struct clk_busy_divider {
static inline struct clk_busy_divider *to_clk_busy_divider(struct clk_hw *hw) static inline struct clk_busy_divider *to_clk_busy_divider(struct clk_hw *hw)
{ {
struct clk_divider *div = container_of(hw, struct clk_divider, hw); struct clk_divider *div = to_clk_divider(hw);
return container_of(div, struct clk_busy_divider, div); return container_of(div, struct clk_busy_divider, div);
} }
...@@ -123,7 +123,7 @@ struct clk_busy_mux { ...@@ -123,7 +123,7 @@ struct clk_busy_mux {
static inline struct clk_busy_mux *to_clk_busy_mux(struct clk_hw *hw) static inline struct clk_busy_mux *to_clk_busy_mux(struct clk_hw *hw)
{ {
struct clk_mux *mux = container_of(hw, struct clk_mux, hw); struct clk_mux *mux = to_clk_mux(hw);
return container_of(mux, struct clk_busy_mux, mux); return container_of(mux, struct clk_busy_mux, mux);
} }
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include <linux/slab.h> #include <linux/slab.h>
#include "clk.h" #include "clk.h"
#define to_clk_div(_hw) container_of(_hw, struct clk_divider, hw)
#define div_mask(d) ((1 << (d->width)) - 1) #define div_mask(d) ((1 << (d->width)) - 1)
/** /**
...@@ -35,7 +34,7 @@ struct clk_fixup_div { ...@@ -35,7 +34,7 @@ struct clk_fixup_div {
static inline struct clk_fixup_div *to_clk_fixup_div(struct clk_hw *hw) static inline struct clk_fixup_div *to_clk_fixup_div(struct clk_hw *hw)
{ {
struct clk_divider *divider = to_clk_div(hw); struct clk_divider *divider = to_clk_divider(hw);
return container_of(divider, struct clk_fixup_div, divider); return container_of(divider, struct clk_fixup_div, divider);
} }
...@@ -60,7 +59,7 @@ static int clk_fixup_div_set_rate(struct clk_hw *hw, unsigned long rate, ...@@ -60,7 +59,7 @@ static int clk_fixup_div_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate) unsigned long parent_rate)
{ {
struct clk_fixup_div *fixup_div = to_clk_fixup_div(hw); struct clk_fixup_div *fixup_div = to_clk_fixup_div(hw);
struct clk_divider *div = to_clk_div(hw); struct clk_divider *div = to_clk_divider(hw);
unsigned int divider, value; unsigned int divider, value;
unsigned long flags = 0; unsigned long flags = 0;
u32 val; u32 val;
......
...@@ -15,8 +15,6 @@ ...@@ -15,8 +15,6 @@
#include <linux/slab.h> #include <linux/slab.h>
#include "clk.h" #include "clk.h"
#define to_clk_mux(_hw) container_of(_hw, struct clk_mux, hw)
/** /**
* struct clk_fixup_mux - imx integer fixup multiplexer clock * struct clk_fixup_mux - imx integer fixup multiplexer clock
* @mux: the parent class * @mux: the parent class
......
...@@ -31,7 +31,7 @@ struct clk_gate_exclusive { ...@@ -31,7 +31,7 @@ struct clk_gate_exclusive {
static int clk_gate_exclusive_enable(struct clk_hw *hw) static int clk_gate_exclusive_enable(struct clk_hw *hw)
{ {
struct clk_gate *gate = container_of(hw, struct clk_gate, hw); struct clk_gate *gate = to_clk_gate(hw);
struct clk_gate_exclusive *exgate = container_of(gate, struct clk_gate_exclusive *exgate = container_of(gate,
struct clk_gate_exclusive, gate); struct clk_gate_exclusive, gate);
u32 val = readl(gate->reg); u32 val = readl(gate->reg);
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
static int mtk_cg_bit_is_cleared(struct clk_hw *hw) static int mtk_cg_bit_is_cleared(struct clk_hw *hw)
{ {
struct mtk_clk_gate *cg = to_clk_gate(hw); struct mtk_clk_gate *cg = to_mtk_clk_gate(hw);
u32 val; u32 val;
regmap_read(cg->regmap, cg->sta_ofs, &val); regmap_read(cg->regmap, cg->sta_ofs, &val);
...@@ -37,7 +37,7 @@ static int mtk_cg_bit_is_cleared(struct clk_hw *hw) ...@@ -37,7 +37,7 @@ static int mtk_cg_bit_is_cleared(struct clk_hw *hw)
static int mtk_cg_bit_is_set(struct clk_hw *hw) static int mtk_cg_bit_is_set(struct clk_hw *hw)
{ {
struct mtk_clk_gate *cg = to_clk_gate(hw); struct mtk_clk_gate *cg = to_mtk_clk_gate(hw);
u32 val; u32 val;
regmap_read(cg->regmap, cg->sta_ofs, &val); regmap_read(cg->regmap, cg->sta_ofs, &val);
...@@ -49,14 +49,14 @@ static int mtk_cg_bit_is_set(struct clk_hw *hw) ...@@ -49,14 +49,14 @@ static int mtk_cg_bit_is_set(struct clk_hw *hw)
static void mtk_cg_set_bit(struct clk_hw *hw) static void mtk_cg_set_bit(struct clk_hw *hw)
{ {
struct mtk_clk_gate *cg = to_clk_gate(hw); struct mtk_clk_gate *cg = to_mtk_clk_gate(hw);
regmap_write(cg->regmap, cg->set_ofs, BIT(cg->bit)); regmap_write(cg->regmap, cg->set_ofs, BIT(cg->bit));
} }
static void mtk_cg_clr_bit(struct clk_hw *hw) static void mtk_cg_clr_bit(struct clk_hw *hw)
{ {
struct mtk_clk_gate *cg = to_clk_gate(hw); struct mtk_clk_gate *cg = to_mtk_clk_gate(hw);
regmap_write(cg->regmap, cg->clr_ofs, BIT(cg->bit)); regmap_write(cg->regmap, cg->clr_ofs, BIT(cg->bit));
} }
......
...@@ -29,7 +29,7 @@ struct mtk_clk_gate { ...@@ -29,7 +29,7 @@ struct mtk_clk_gate {
u8 bit; u8 bit;
}; };
static inline struct mtk_clk_gate *to_clk_gate(struct clk_hw *hw) static inline struct mtk_clk_gate *to_mtk_clk_gate(struct clk_hw *hw)
{ {
return container_of(hw, struct mtk_clk_gate, hw); return container_of(hw, struct mtk_clk_gate, hw);
} }
......
...@@ -199,8 +199,6 @@ struct clk_gating_ctrl { ...@@ -199,8 +199,6 @@ struct clk_gating_ctrl {
u32 saved_reg; u32 saved_reg;
}; };
#define to_clk_gate(_hw) container_of(_hw, struct clk_gate, hw)
static struct clk_gating_ctrl *ctrl; static struct clk_gating_ctrl *ctrl;
static struct clk *clk_gating_get_src( static struct clk *clk_gating_get_src(
......
...@@ -256,8 +256,6 @@ static const struct clk_muxing_soc_desc kirkwood_mux_desc[] __initconst = { ...@@ -256,8 +256,6 @@ static const struct clk_muxing_soc_desc kirkwood_mux_desc[] __initconst = {
11, 1, 0 }, 11, 1, 0 },
}; };
#define to_clk_mux(_hw) container_of(_hw, struct clk_mux, hw)
static struct clk *clk_muxing_get_src( static struct clk *clk_muxing_get_src(
struct of_phandle_args *clkspec, void *data) struct of_phandle_args *clkspec, void *data)
{ {
......
...@@ -33,7 +33,7 @@ struct clk_div { ...@@ -33,7 +33,7 @@ struct clk_div {
static inline struct clk_div *to_clk_div(struct clk_hw *hw) static inline struct clk_div *to_clk_div(struct clk_hw *hw)
{ {
struct clk_divider *divider = container_of(hw, struct clk_divider, hw); struct clk_divider *divider = to_clk_divider(hw);
return container_of(divider, struct clk_div, divider); return container_of(divider, struct clk_div, divider);
} }
......
...@@ -28,8 +28,6 @@ ...@@ -28,8 +28,6 @@
#define CCU_BRANCH_IS_BUS BIT(0) #define CCU_BRANCH_IS_BUS BIT(0)
#define CCU_BRANCH_HAVE_DIV2 BIT(1) #define CCU_BRANCH_HAVE_DIV2 BIT(1)
#define to_clk_gate(_hw) container_of(_hw, struct clk_gate, hw)
struct lpc18xx_branch_clk_data { struct lpc18xx_branch_clk_data {
const char **name; const char **name;
int num; int num;
......
...@@ -822,11 +822,10 @@ static void __init st_of_clkgen_vcc_setup(struct device_node *np) ...@@ -822,11 +822,10 @@ static void __init st_of_clkgen_vcc_setup(struct device_node *np)
if (!clk_data->clks[i]) if (!clk_data->clks[i])
continue; continue;
composite = container_of(__clk_get_hw(clk_data->clks[i]), composite = to_clk_composite(__clk_get_hw(clk_data->clks[i]));
struct clk_composite, hw); kfree(to_clk_gate(composite->gate_hw));
kfree(container_of(composite->gate_hw, struct clk_gate, hw)); kfree(to_clk_divider(composite->rate_hw));
kfree(container_of(composite->rate_hw, struct clk_divider, hw)); kfree(to_clk_mux(composite->mux_hw));
kfree(container_of(composite->mux_hw, struct clk_mux, hw));
} }
kfree(clk_data->clks); kfree(clk_data->clks);
......
...@@ -28,8 +28,6 @@ ...@@ -28,8 +28,6 @@
#undef pr_fmt #undef pr_fmt
#define pr_fmt(fmt) "%s: " fmt, __func__ #define pr_fmt(fmt) "%s: " fmt, __func__
#define to_clk_divider(_hw) container_of(_hw, struct clk_divider, hw)
static unsigned long ti_composite_recalc_rate(struct clk_hw *hw, static unsigned long ti_composite_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate) unsigned long parent_rate)
{ {
......
...@@ -26,8 +26,6 @@ ...@@ -26,8 +26,6 @@
#undef pr_fmt #undef pr_fmt
#define pr_fmt(fmt) "%s: " fmt, __func__ #define pr_fmt(fmt) "%s: " fmt, __func__
#define to_clk_divider(_hw) container_of(_hw, struct clk_divider, hw)
#define div_mask(d) ((1 << ((d)->width)) - 1) #define div_mask(d) ((1 << ((d)->width)) - 1)
static unsigned int _get_table_maxdiv(const struct clk_div_table *table) static unsigned int _get_table_maxdiv(const struct clk_div_table *table)
......
...@@ -24,8 +24,6 @@ ...@@ -24,8 +24,6 @@
#include "clock.h" #include "clock.h"
#define to_clk_divider(_hw) container_of(_hw, struct clk_divider, hw)
#undef pr_fmt #undef pr_fmt
#define pr_fmt(fmt) "%s: " fmt, __func__ #define pr_fmt(fmt) "%s: " fmt, __func__
......
...@@ -26,8 +26,6 @@ ...@@ -26,8 +26,6 @@
#undef pr_fmt #undef pr_fmt
#define pr_fmt(fmt) "%s: " fmt, __func__ #define pr_fmt(fmt) "%s: " fmt, __func__
#define to_clk_mux(_hw) container_of(_hw, struct clk_mux, hw)
static u8 ti_clk_mux_get_parent(struct clk_hw *hw) static u8 ti_clk_mux_get_parent(struct clk_hw *hw)
{ {
struct clk_mux *mux = to_clk_mux(hw); struct clk_mux *mux = to_clk_mux(hw);
......
...@@ -276,6 +276,8 @@ struct clk_fixed_rate { ...@@ -276,6 +276,8 @@ struct clk_fixed_rate {
u8 flags; u8 flags;
}; };
#define to_clk_fixed_rate(_hw) container_of(_hw, struct clk_fixed_rate, hw)
extern const struct clk_ops clk_fixed_rate_ops; extern const struct clk_ops clk_fixed_rate_ops;
struct clk *clk_register_fixed_rate(struct device *dev, const char *name, struct clk *clk_register_fixed_rate(struct device *dev, const char *name,
const char *parent_name, unsigned long flags, const char *parent_name, unsigned long flags,
...@@ -314,6 +316,8 @@ struct clk_gate { ...@@ -314,6 +316,8 @@ struct clk_gate {
spinlock_t *lock; spinlock_t *lock;
}; };
#define to_clk_gate(_hw) container_of(_hw, struct clk_gate, hw)
#define CLK_GATE_SET_TO_DISABLE BIT(0) #define CLK_GATE_SET_TO_DISABLE BIT(0)
#define CLK_GATE_HIWORD_MASK BIT(1) #define CLK_GATE_HIWORD_MASK BIT(1)
...@@ -376,6 +380,8 @@ struct clk_divider { ...@@ -376,6 +380,8 @@ struct clk_divider {
spinlock_t *lock; spinlock_t *lock;
}; };
#define to_clk_divider(_hw) container_of(_hw, struct clk_divider, hw)
#define CLK_DIVIDER_ONE_BASED BIT(0) #define CLK_DIVIDER_ONE_BASED BIT(0)
#define CLK_DIVIDER_POWER_OF_TWO BIT(1) #define CLK_DIVIDER_POWER_OF_TWO BIT(1)
#define CLK_DIVIDER_ALLOW_ZERO BIT(2) #define CLK_DIVIDER_ALLOW_ZERO BIT(2)
...@@ -441,6 +447,8 @@ struct clk_mux { ...@@ -441,6 +447,8 @@ struct clk_mux {
spinlock_t *lock; spinlock_t *lock;
}; };
#define to_clk_mux(_hw) container_of(_hw, struct clk_mux, hw)
#define CLK_MUX_INDEX_ONE BIT(0) #define CLK_MUX_INDEX_ONE BIT(0)
#define CLK_MUX_INDEX_BIT BIT(1) #define CLK_MUX_INDEX_BIT BIT(1)
#define CLK_MUX_HIWORD_MASK BIT(2) #define CLK_MUX_HIWORD_MASK BIT(2)
...@@ -484,6 +492,8 @@ struct clk_fixed_factor { ...@@ -484,6 +492,8 @@ struct clk_fixed_factor {
unsigned int div; unsigned int div;
}; };
#define to_clk_fixed_factor(_hw) container_of(_hw, struct clk_fixed_factor, hw)
extern const struct clk_ops clk_fixed_factor_ops; extern const struct clk_ops clk_fixed_factor_ops;
struct clk *clk_register_fixed_factor(struct device *dev, const char *name, struct clk *clk_register_fixed_factor(struct device *dev, const char *name,
const char *parent_name, unsigned long flags, const char *parent_name, unsigned long flags,
...@@ -515,6 +525,8 @@ struct clk_fractional_divider { ...@@ -515,6 +525,8 @@ struct clk_fractional_divider {
spinlock_t *lock; spinlock_t *lock;
}; };
#define to_clk_fd(_hw) container_of(_hw, struct clk_fractional_divider, hw)
extern const struct clk_ops clk_fractional_divider_ops; extern const struct clk_ops clk_fractional_divider_ops;
struct clk *clk_register_fractional_divider(struct device *dev, struct clk *clk_register_fractional_divider(struct device *dev,
const char *name, const char *parent_name, unsigned long flags, const char *name, const char *parent_name, unsigned long flags,
...@@ -551,6 +563,8 @@ struct clk_multiplier { ...@@ -551,6 +563,8 @@ struct clk_multiplier {
spinlock_t *lock; spinlock_t *lock;
}; };
#define to_clk_multiplier(_hw) container_of(_hw, struct clk_multiplier, hw)
#define CLK_MULTIPLIER_ZERO_BYPASS BIT(0) #define CLK_MULTIPLIER_ZERO_BYPASS BIT(0)
#define CLK_MULTIPLIER_ROUND_CLOSEST BIT(1) #define CLK_MULTIPLIER_ROUND_CLOSEST BIT(1)
...@@ -580,6 +594,8 @@ struct clk_composite { ...@@ -580,6 +594,8 @@ struct clk_composite {
const struct clk_ops *gate_ops; const struct clk_ops *gate_ops;
}; };
#define to_clk_composite(_hw) container_of(_hw, struct clk_composite, hw)
struct clk *clk_register_composite(struct device *dev, const char *name, struct clk *clk_register_composite(struct device *dev, const char *name,
const char * const *parent_names, int num_parents, const char * const *parent_names, int num_parents,
struct clk_hw *mux_hw, const struct clk_ops *mux_ops, struct clk_hw *mux_hw, const struct clk_ops *mux_ops,
...@@ -602,6 +618,8 @@ struct clk_gpio { ...@@ -602,6 +618,8 @@ struct clk_gpio {
struct gpio_desc *gpiod; struct gpio_desc *gpiod;
}; };
#define to_clk_gpio(_hw) container_of(_hw, struct clk_gpio, hw)
extern const struct clk_ops clk_gpio_gate_ops; extern const struct clk_ops clk_gpio_gate_ops;
struct clk *clk_register_gpio_gate(struct device *dev, const char *name, struct clk *clk_register_gpio_gate(struct device *dev, const char *name,
const char *parent_name, unsigned gpio, bool active_low, const char *parent_name, unsigned gpio, bool active_low,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment