Alex Elder | 8c12cde | 2014-10-01 21:54:12 -0500 | [diff] [blame] | 1 | /* |
Greg Kroah-Hartman | 1db0a5f | 2014-12-12 17:10:17 -0500 | [diff] [blame] | 2 | * Greybus bundles |
Alex Elder | 8c12cde | 2014-10-01 21:54:12 -0500 | [diff] [blame] | 3 | * |
| 4 | * Copyright 2014 Google Inc. |
Alex Elder | a46e967 | 2014-12-12 12:08:42 -0600 | [diff] [blame] | 5 | * Copyright 2014 Linaro Ltd. |
Alex Elder | 8c12cde | 2014-10-01 21:54:12 -0500 | [diff] [blame] | 6 | * |
| 7 | * Released under the GPLv2 only. |
| 8 | */ |
| 9 | |
Greg Kroah-Hartman | 1db0a5f | 2014-12-12 17:10:17 -0500 | [diff] [blame] | 10 | #ifndef __BUNDLE_H |
| 11 | #define __BUNDLE_H |
Alex Elder | 8c12cde | 2014-10-01 21:54:12 -0500 | [diff] [blame] | 12 | |
| 13 | #include <linux/list.h> |
| 14 | |
Greg Kroah-Hartman | 1db0a5f | 2014-12-12 17:10:17 -0500 | [diff] [blame] | 15 | /* Greybus "public" definitions" */ |
| 16 | struct gb_bundle { |
Greg Kroah-Hartman | f0f61b9 | 2014-10-24 17:34:46 +0800 | [diff] [blame] | 17 | struct device dev; |
Greg Kroah-Hartman | 4ab9b3c | 2014-12-19 14:56:31 -0800 | [diff] [blame] | 18 | struct gb_interface *intf; |
Alex Elder | 63cc932 | 2014-10-02 12:30:02 -0500 | [diff] [blame] | 19 | u8 id; |
Viresh Kumar | 7c183f7 | 2015-04-01 20:32:00 +0530 | [diff] [blame^] | 20 | u8 class_type; |
Matt Porter | 1a4c013 | 2014-10-21 22:43:30 -0400 | [diff] [blame] | 21 | u8 device_id; |
Alex Elder | 748e123 | 2014-10-03 14:14:22 -0500 | [diff] [blame] | 22 | struct list_head connections; |
Alex Elder | 8c12cde | 2014-10-01 21:54:12 -0500 | [diff] [blame] | 23 | |
Greg Kroah-Hartman | 1db0a5f | 2014-12-12 17:10:17 -0500 | [diff] [blame] | 24 | struct list_head links; /* interface->bundles */ |
Alex Elder | 8c12cde | 2014-10-01 21:54:12 -0500 | [diff] [blame] | 25 | }; |
Greg Kroah-Hartman | 1db0a5f | 2014-12-12 17:10:17 -0500 | [diff] [blame] | 26 | #define to_gb_bundle(d) container_of(d, struct gb_bundle, dev) |
Alex Elder | 8c12cde | 2014-10-01 21:54:12 -0500 | [diff] [blame] | 27 | |
Greg Kroah-Hartman | 1b6ea0d | 2014-12-24 13:01:39 -0800 | [diff] [blame] | 28 | #define GB_DEVICE_ID_BAD 0xff |
| 29 | |
Greg Kroah-Hartman | 1db0a5f | 2014-12-12 17:10:17 -0500 | [diff] [blame] | 30 | /* Greybus "private" definitions" */ |
Viresh Kumar | 7c183f7 | 2015-04-01 20:32:00 +0530 | [diff] [blame^] | 31 | struct gb_bundle *gb_bundle_create(struct gb_interface *intf, u8 bundle_id, |
| 32 | u8 class_type); |
Greg Kroah-Hartman | 4ab9b3c | 2014-12-19 14:56:31 -0800 | [diff] [blame] | 33 | void gb_bundle_destroy(struct gb_interface *intf); |
| 34 | int gb_bundle_init(struct gb_interface *intf, u8 module_id, u8 device_id); |
Alex Elder | 8c12cde | 2014-10-01 21:54:12 -0500 | [diff] [blame] | 35 | |
Greg Kroah-Hartman | 4ab9b3c | 2014-12-19 14:56:31 -0800 | [diff] [blame] | 36 | struct gb_bundle *gb_bundle_find(struct gb_interface *intf, u8 bundle_id); |
Greg Kroah-Hartman | fb69cb5 | 2014-12-23 15:16:53 -0800 | [diff] [blame] | 37 | void gb_bundle_bind_protocols(void); |
Matt Porter | 1a4c013 | 2014-10-21 22:43:30 -0400 | [diff] [blame] | 38 | |
Greg Kroah-Hartman | 1db0a5f | 2014-12-12 17:10:17 -0500 | [diff] [blame] | 39 | #endif /* __BUNDLE_H */ |