1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Intel MIC Platform Software Stack (MPSS) 4 * 5 * Copyright(c) 2015 Intel Corporation. 6 * 7 * Intel MIC Coprocessor State Management (COSM) Driver 8 */ 9#ifndef _COSM_COSM_H_ 10#define _COSM_COSM_H_ 11 12#include <linux/scif.h> 13#include "../bus/cosm_bus.h" 14 15#define COSM_HEARTBEAT_SEND_SEC 30 16#define SCIF_COSM_LISTEN_PORT 201 17 18/** 19 * enum COSM msg id's 20 * @COSM_MSG_SHUTDOWN: host->card trigger shutdown 21 * @COSM_MSG_SYNC_TIME: host->card send host time to card to sync time 22 * @COSM_MSG_HEARTBEAT: card->host heartbeat 23 * @COSM_MSG_SHUTDOWN_STATUS: card->host with shutdown status as payload 24 */ 25enum cosm_msg_id { 26 COSM_MSG_SHUTDOWN, 27 COSM_MSG_SYNC_TIME, 28 COSM_MSG_HEARTBEAT, 29 COSM_MSG_SHUTDOWN_STATUS, 30}; 31 32struct cosm_msg { 33 u64 id; 34 union { 35 u64 shutdown_status; 36 struct { 37 u64 tv_sec; 38 u64 tv_nsec; 39 } timespec; 40 }; 41}; 42 43extern const char * const cosm_state_string[]; 44extern const char * const cosm_shutdown_status_string[]; 45 46void cosm_sysfs_init(struct cosm_device *cdev); 47int cosm_start(struct cosm_device *cdev); 48void cosm_stop(struct cosm_device *cdev, bool force); 49int cosm_reset(struct cosm_device *cdev); 50int cosm_shutdown(struct cosm_device *cdev); 51void cosm_set_state(struct cosm_device *cdev, u8 state); 52void cosm_set_shutdown_status(struct cosm_device *cdev, u8 status); 53void cosm_init_debugfs(void); 54void cosm_exit_debugfs(void); 55void cosm_create_debug_dir(struct cosm_device *cdev); 56void cosm_delete_debug_dir(struct cosm_device *cdev); 57int cosm_scif_init(void); 58void cosm_scif_exit(void); 59void cosm_scif_work(struct work_struct *work); 60 61#endif 62