1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * Greybus Firmware Management Header |
4 | * |
5 | * Copyright 2016 Google Inc. |
6 | * Copyright 2016 Linaro Ltd. |
7 | */ |
8 | |
9 | #ifndef __FIRMWARE_H |
10 | #define __FIRMWARE_H |
11 | |
12 | #include <linux/greybus.h> |
13 | |
14 | #define FW_NAME_PREFIX "gmp_" |
15 | |
16 | /* |
17 | * Length of the string in format: "FW_NAME_PREFIX""%08x_%08x_%08x_%08x_%s.tftf" |
18 | * (3 + 1 + 4 * (8 + 1) + 10 + 1 + 4 + 1) |
19 | */ |
20 | #define FW_NAME_SIZE 56 |
21 | |
22 | /* Firmware Management Protocol specific functions */ |
23 | int fw_mgmt_init(void); |
24 | void fw_mgmt_exit(void); |
25 | struct gb_connection *to_fw_mgmt_connection(struct device *dev); |
26 | int gb_fw_mgmt_request_handler(struct gb_operation *op); |
27 | int gb_fw_mgmt_connection_init(struct gb_connection *connection); |
28 | void gb_fw_mgmt_connection_exit(struct gb_connection *connection); |
29 | |
30 | /* Firmware Download Protocol specific functions */ |
31 | int gb_fw_download_request_handler(struct gb_operation *op); |
32 | int gb_fw_download_connection_init(struct gb_connection *connection); |
33 | void gb_fw_download_connection_exit(struct gb_connection *connection); |
34 | |
35 | /* CAP Protocol specific functions */ |
36 | int cap_init(void); |
37 | void cap_exit(void); |
38 | int gb_cap_connection_init(struct gb_connection *connection); |
39 | void gb_cap_connection_exit(struct gb_connection *connection); |
40 | |
41 | #endif /* __FIRMWARE_H */ |
42 | |