1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * include/linux/clkdev.h |
4 | * |
5 | * Copyright (C) 2008 Russell King. |
6 | * |
7 | * Helper for the clk API to assist looking up a struct clk. |
8 | */ |
9 | #ifndef __CLKDEV_H |
10 | #define __CLKDEV_H |
11 | |
12 | #include <linux/slab.h> |
13 | |
14 | struct clk; |
15 | struct clk_hw; |
16 | struct device; |
17 | |
18 | struct clk_lookup { |
19 | struct list_head node; |
20 | const char *dev_id; |
21 | const char *con_id; |
22 | struct clk *clk; |
23 | struct clk_hw *clk_hw; |
24 | }; |
25 | |
26 | #define CLKDEV_INIT(d, n, c) \ |
27 | { \ |
28 | .dev_id = d, \ |
29 | .con_id = n, \ |
30 | .clk = c, \ |
31 | } |
32 | |
33 | void clkdev_add(struct clk_lookup *cl); |
34 | void clkdev_drop(struct clk_lookup *cl); |
35 | |
36 | struct clk_lookup *clkdev_create(struct clk *clk, const char *con_id, |
37 | const char *dev_fmt, ...) __printf(3, 4); |
38 | struct clk_lookup *clkdev_hw_create(struct clk_hw *hw, const char *con_id, |
39 | const char *dev_fmt, ...) __printf(3, 4); |
40 | |
41 | void clkdev_add_table(struct clk_lookup *, size_t); |
42 | int clk_add_alias(const char *, const char *, const char *, struct device *); |
43 | |
44 | int clk_register_clkdev(struct clk *, const char *, const char *); |
45 | int clk_hw_register_clkdev(struct clk_hw *, const char *, const char *); |
46 | |
47 | int devm_clk_hw_register_clkdev(struct device *dev, struct clk_hw *hw, |
48 | const char *con_id, const char *dev_id); |
49 | #endif |
50 | |