u_tcm.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * u_tcm.h
  3. *
  4. * Utility definitions for the tcm function
  5. *
  6. * Copyright (c) 2015 Samsung Electronics Co., Ltd.
  7. * http://www.samsung.com
  8. *
  9. * Author: Andrzej Pietrasiewicz <andrzej.p@xxxxxxxxxxx>
  10. *
  11. * This program is free software; you can redistribute it and/or modify
  12. * it under the terms of the GNU General Public License version 2 as
  13. * published by the Free Software Foundation.
  14. */
  15. #ifndef U_TCM_H
  16. #define U_TCM_H
  17. #include <linux/usb/composite.h>
  18. /**
  19. * @dependent: optional dependent module. Meant for legacy gadget.
  20. * If non-null its refcount will be increased when a tpg is created and
  21. * decreased when tpg is dropped.
  22. * @dep_lock: lock for dependent module operations.
  23. * @ready: true if the dependent module information is set.
  24. * @can_attach: true a function can be bound to gadget
  25. * @has_dep: true if there is a dependent module
  26. *
  27. */
  28. struct f_tcm_opts {
  29. struct usb_function_instance func_inst;
  30. struct module *dependent;
  31. struct mutex dep_lock;
  32. bool ready;
  33. bool can_attach;
  34. bool has_dep;
  35. /*
  36. * Callbacks to be removed when legacy tcm gadget disappears.
  37. *
  38. * If you use the new function registration interface
  39. * programmatically, you MUST set these callbacks to
  40. * something sensible (e.g. probe/remove the composite).
  41. */
  42. int (*tcm_register_callback)(struct usb_function_instance *);
  43. void (*tcm_unregister_callback)(struct usb_function_instance *);
  44. };
  45. #endif /* U_TCM_H */