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 "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 */ 23int fw_mgmt_init(void); 24void fw_mgmt_exit(void); 25struct gb_connection *to_fw_mgmt_connection(struct device *dev); 26int gb_fw_mgmt_request_handler(struct gb_operation *op); 27int gb_fw_mgmt_connection_init(struct gb_connection *connection); 28void gb_fw_mgmt_connection_exit(struct gb_connection *connection); 29 30/* Firmware Download Protocol specific functions */ 31int gb_fw_download_request_handler(struct gb_operation *op); 32int gb_fw_download_connection_init(struct gb_connection *connection); 33void gb_fw_download_connection_exit(struct gb_connection *connection); 34 35/* CAP Protocol specific functions */ 36int cap_init(void); 37void cap_exit(void); 38int gb_cap_connection_init(struct gb_connection *connection); 39void gb_cap_connection_exit(struct gb_connection *connection); 40 41#endif /* __FIRMWARE_H */ 42