root/include/linux/greybus/control.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Greybus CPort control protocol
   4  *
   5  * Copyright 2015 Google Inc.
   6  * Copyright 2015 Linaro Ltd.
   7  */
   8 
   9 #ifndef __CONTROL_H
  10 #define __CONTROL_H
  11 
  12 #include <linux/types.h>
  13 #include <linux/device.h>
  14 
  15 struct gb_control {
  16         struct device dev;
  17         struct gb_interface *intf;
  18 
  19         struct gb_connection *connection;
  20 
  21         u8 protocol_major;
  22         u8 protocol_minor;
  23 
  24         bool has_bundle_activate;
  25         bool has_bundle_version;
  26 
  27         char *vendor_string;
  28         char *product_string;
  29 };
  30 #define to_gb_control(d) container_of(d, struct gb_control, dev)
  31 
  32 struct gb_control *gb_control_create(struct gb_interface *intf);
  33 int gb_control_enable(struct gb_control *control);
  34 void gb_control_disable(struct gb_control *control);
  35 int gb_control_suspend(struct gb_control *control);
  36 int gb_control_resume(struct gb_control *control);
  37 int gb_control_add(struct gb_control *control);
  38 void gb_control_del(struct gb_control *control);
  39 struct gb_control *gb_control_get(struct gb_control *control);
  40 void gb_control_put(struct gb_control *control);
  41 
  42 int gb_control_get_bundle_versions(struct gb_control *control);
  43 int gb_control_connected_operation(struct gb_control *control, u16 cport_id);
  44 int gb_control_disconnected_operation(struct gb_control *control, u16 cport_id);
  45 int gb_control_disconnecting_operation(struct gb_control *control,
  46                                        u16 cport_id);
  47 int gb_control_mode_switch_operation(struct gb_control *control);
  48 void gb_control_mode_switch_prepare(struct gb_control *control);
  49 void gb_control_mode_switch_complete(struct gb_control *control);
  50 int gb_control_get_manifest_size_operation(struct gb_interface *intf);
  51 int gb_control_get_manifest_operation(struct gb_interface *intf, void *manifest,
  52                                       size_t size);
  53 int gb_control_bundle_suspend(struct gb_control *control, u8 bundle_id);
  54 int gb_control_bundle_resume(struct gb_control *control, u8 bundle_id);
  55 int gb_control_bundle_deactivate(struct gb_control *control, u8 bundle_id);
  56 int gb_control_bundle_activate(struct gb_control *control, u8 bundle_id);
  57 int gb_control_interface_suspend_prepare(struct gb_control *control);
  58 int gb_control_interface_deactivate_prepare(struct gb_control *control);
  59 int gb_control_interface_hibernate_abort(struct gb_control *control);
  60 #endif /* __CONTROL_H */

/* [<][>][^][v][top][bottom][index][help] */