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 */ 35