mirror of
https://github.com/torvalds/linux
synced 2024-10-27 21:59:21 +00:00
clk: add non CONFIG_OF routines for clk-provider
Some drivers that are shared between architectures have HAVE_CLK selected but don't have OF. To remove compilation errors for drivers that provide clocks on DT with of_clk_add_provider we would have to enclose these calls within #ifdef CONFIG_OF, #endif. This patch adds some stubs for OF related clk-provider functions that either do nothing or return appropriate values if CONFIG_OF is not set. So, definition of these routines will always be available. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Mike Turquette <mturquette@linaro.org>
This commit is contained in:
parent
f8aa0bd5c9
commit
0b151debc3
|
@ -423,6 +423,17 @@ struct of_device_id;
|
||||||
|
|
||||||
typedef void (*of_clk_init_cb_t)(struct device_node *);
|
typedef void (*of_clk_init_cb_t)(struct device_node *);
|
||||||
|
|
||||||
|
struct clk_onecell_data {
|
||||||
|
struct clk **clks;
|
||||||
|
unsigned int clk_num;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define CLK_OF_DECLARE(name, compat, fn) \
|
||||||
|
static const struct of_device_id __clk_of_table_##name \
|
||||||
|
__used __section(__clk_of_table) \
|
||||||
|
= { .compatible = compat, .data = fn };
|
||||||
|
|
||||||
|
#ifdef CONFIG_OF
|
||||||
int of_clk_add_provider(struct device_node *np,
|
int of_clk_add_provider(struct device_node *np,
|
||||||
struct clk *(*clk_src_get)(struct of_phandle_args *args,
|
struct clk *(*clk_src_get)(struct of_phandle_args *args,
|
||||||
void *data),
|
void *data),
|
||||||
|
@ -430,19 +441,39 @@ int of_clk_add_provider(struct device_node *np,
|
||||||
void of_clk_del_provider(struct device_node *np);
|
void of_clk_del_provider(struct device_node *np);
|
||||||
struct clk *of_clk_src_simple_get(struct of_phandle_args *clkspec,
|
struct clk *of_clk_src_simple_get(struct of_phandle_args *clkspec,
|
||||||
void *data);
|
void *data);
|
||||||
struct clk_onecell_data {
|
|
||||||
struct clk **clks;
|
|
||||||
unsigned int clk_num;
|
|
||||||
};
|
|
||||||
struct clk *of_clk_src_onecell_get(struct of_phandle_args *clkspec, void *data);
|
struct clk *of_clk_src_onecell_get(struct of_phandle_args *clkspec, void *data);
|
||||||
const char *of_clk_get_parent_name(struct device_node *np, int index);
|
const char *of_clk_get_parent_name(struct device_node *np, int index);
|
||||||
|
|
||||||
void of_clk_init(const struct of_device_id *matches);
|
void of_clk_init(const struct of_device_id *matches);
|
||||||
|
|
||||||
#define CLK_OF_DECLARE(name, compat, fn) \
|
#else /* !CONFIG_OF */
|
||||||
static const struct of_device_id __clk_of_table_##name \
|
|
||||||
__used __section(__clk_of_table) \
|
|
||||||
= { .compatible = compat, .data = fn };
|
|
||||||
|
|
||||||
|
static inline int of_clk_add_provider(struct device_node *np,
|
||||||
|
struct clk *(*clk_src_get)(struct of_phandle_args *args,
|
||||||
|
void *data),
|
||||||
|
void *data)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#define of_clk_del_provider(np) \
|
||||||
|
{ while (0); }
|
||||||
|
static inline struct clk *of_clk_src_simple_get(
|
||||||
|
struct of_phandle_args *clkspec, void *data)
|
||||||
|
{
|
||||||
|
return ERR_PTR(-ENOENT);
|
||||||
|
}
|
||||||
|
static inline struct clk *of_clk_src_onecell_get(
|
||||||
|
struct of_phandle_args *clkspec, void *data)
|
||||||
|
{
|
||||||
|
return ERR_PTR(-ENOENT);
|
||||||
|
}
|
||||||
|
static inline const char *of_clk_get_parent_name(struct device_node *np,
|
||||||
|
int index)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
#define of_clk_init(matches) \
|
||||||
|
{ while (0); }
|
||||||
|
#endif /* CONFIG_OF */
|
||||||
#endif /* CONFIG_COMMON_CLK */
|
#endif /* CONFIG_COMMON_CLK */
|
||||||
#endif /* CLK_PROVIDER_H */
|
#endif /* CLK_PROVIDER_H */
|
||||||
|
|
Loading…
Reference in a new issue