Merge tag 'regmap-v3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[platform/adaptation/renesas_rcar/renesas_kernel.git] / include / linux / component.h
1 #ifndef COMPONENT_H
2 #define COMPONENT_H
3
4 struct device;
5
6 struct component_ops {
7         int (*bind)(struct device *, struct device *, void *);
8         void (*unbind)(struct device *, struct device *, void *);
9 };
10
11 int component_add(struct device *, const struct component_ops *);
12 void component_del(struct device *, const struct component_ops *);
13
14 int component_bind_all(struct device *, void *);
15 void component_unbind_all(struct device *, void *);
16
17 struct master;
18
19 struct component_master_ops {
20         int (*add_components)(struct device *, struct master *);
21         int (*bind)(struct device *);
22         void (*unbind)(struct device *);
23 };
24
25 int component_master_add(struct device *, const struct component_master_ops *);
26 void component_master_del(struct device *,
27         const struct component_master_ops *);
28
29 int component_master_add_child(struct master *master,
30         int (*compare)(struct device *, void *), void *compare_data);
31
32 #endif