Linux 4.16.11
[linux/fpc-iii.git] / drivers / staging / greybus / module.h
blobb1ebcc6636db74c844b4424eacdbdb78ecb859c0
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3 * Greybus Module code
5 * Copyright 2016 Google Inc.
6 * Copyright 2016 Linaro Ltd.
7 */
9 #ifndef __MODULE_H
10 #define __MODULE_H
12 struct gb_module {
13 struct device dev;
14 struct gb_host_device *hd;
16 struct list_head hd_node;
18 u8 module_id;
19 size_t num_interfaces;
21 bool disconnected;
23 struct gb_interface *interfaces[0];
25 #define to_gb_module(d) container_of(d, struct gb_module, dev)
27 struct gb_module *gb_module_create(struct gb_host_device *hd, u8 module_id,
28 size_t num_interfaces);
29 int gb_module_add(struct gb_module *module);
30 void gb_module_del(struct gb_module *module);
31 void gb_module_put(struct gb_module *module);
33 #endif /* __MODULE_H */