| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Greybus Firmware Management Header |
| * |
| * Copyright 2016 Google Inc. |
| * Copyright 2016 Linaro Ltd. |
| */ |
| |
| #ifndef __FIRMWARE_H |
| #define __FIRMWARE_H |
| |
| #include <linux/greybus.h> |
| |
| #define FW_NAME_PREFIX "gmp_" |
| |
| /* |
| * Length of the string in format: "FW_NAME_PREFIX""%08x_%08x_%08x_%08x_%s.tftf" |
| * (3 + 1 + 4 * (8 + 1) + 10 + 1 + 4 + 1) |
| */ |
| #define FW_NAME_SIZE 56 |
| |
| /* Firmware Management Protocol specific functions */ |
| int fw_mgmt_init(void); |
| void fw_mgmt_exit(void); |
| struct gb_connection *to_fw_mgmt_connection(struct device *dev); |
| int gb_fw_mgmt_request_handler(struct gb_operation *op); |
| int gb_fw_mgmt_connection_init(struct gb_connection *connection); |
| void gb_fw_mgmt_connection_exit(struct gb_connection *connection); |
| |
| /* Firmware Download Protocol specific functions */ |
| int gb_fw_download_request_handler(struct gb_operation *op); |
| int gb_fw_download_connection_init(struct gb_connection *connection); |
| void gb_fw_download_connection_exit(struct gb_connection *connection); |
| |
| /* CAP Protocol specific functions */ |
| int cap_init(void); |
| void cap_exit(void); |
| int gb_cap_connection_init(struct gb_connection *connection); |
| void gb_cap_connection_exit(struct gb_connection *connection); |
| |
| #endif /* __FIRMWARE_H */ |