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