greybus: control: drop legacy-protocol dependency
[cascardo/linux.git] / drivers / staging / greybus / control.h
1 /*
2  * Greybus CPort control protocol
3  *
4  * Copyright 2015 Google Inc.
5  * Copyright 2015 Linaro Ltd.
6  *
7  * Released under the GPLv2 only.
8  */
9
10 #ifndef __CONTROL_H
11 #define __CONTROL_H
12
13 struct gb_control {
14         struct gb_connection    *connection;
15
16         u8 protocol_major;
17         u8 protocol_minor;
18 };
19
20 struct gb_control *gb_control_create(struct gb_interface *intf);
21 int gb_control_enable(struct gb_control *control);
22 void gb_control_disable(struct gb_control *control);
23 void gb_control_destroy(struct gb_control *control);
24
25 int gb_control_connected_operation(struct gb_control *control, u16 cport_id);
26 int gb_control_disconnected_operation(struct gb_control *control, u16 cport_id);
27 int gb_control_get_manifest_size_operation(struct gb_interface *intf);
28 int gb_control_get_manifest_operation(struct gb_interface *intf, void *manifest,
29                                       size_t size);
30 int gb_control_get_interface_version_operation(struct gb_interface *intf);
31
32 #endif /* __CONTROL_H */