greybus: es2: clean up CDSI CPort reservation
[cascardo/linux.git] / drivers / staging / greybus / module.h
1 /*
2  * Greybus Module code
3  *
4  * Copyright 2016 Google Inc.
5  * Copyright 2016 Linaro Ltd.
6  *
7  * Released under the GPLv2 only.
8  */
9
10 #ifndef __MODULE_H
11 #define __MODULE_H
12
13 struct gb_module {
14         struct device dev;
15         struct gb_host_device *hd;
16
17         struct list_head hd_node;
18
19         u8 module_id;
20         size_t num_interfaces;
21
22         bool disconnected;
23
24         struct gb_interface *interfaces[0];
25 };
26 #define to_gb_module(d) container_of(d, struct gb_module, dev)
27
28 struct gb_module *gb_module_create(struct gb_host_device *hd, u8 module_id,
29                                    size_t num_interfaces);
30 int gb_module_add(struct gb_module *module);
31 void gb_module_del(struct gb_module *module);
32 void gb_module_put(struct gb_module *module);
33
34 #endif /* __MODULE_H */