67 lines
1.4 KiB
C
67 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) 2019 MediaTek Inc.
|
|
*/
|
|
|
|
#ifndef __CONAP_SCP_H__
|
|
#define __CONAP_SCP_H__
|
|
|
|
enum conap_scp_drv_type {
|
|
DRV_TYPE_CORE = 0,
|
|
DRV_TYPE_CONN = 1,
|
|
DRV_TYPE_GPS = 2,
|
|
DRV_TYPE_EM = 3,
|
|
DRV_TYPE_FLP = 4,
|
|
DRV_TYPE_GEOFENCE = 5,
|
|
CONAP_SCP_DRV_NUM
|
|
};
|
|
|
|
enum conap_scp_status {
|
|
CONN_SUCCESS = 0,
|
|
CONN_INVALID_HANDLE = -1,
|
|
CONN_INVALID_ARGUMENT = -2,
|
|
CONN_NOT_READY = -3,
|
|
CONN_RESET = -4,
|
|
CONN_TIMEOUT = -5,
|
|
CONN_MSG_ONGOING = -6,
|
|
CONN_MSG_QUEUE_FULL = -7,
|
|
CONN_CONAP_NOT_SUPPORT = -8
|
|
};
|
|
|
|
struct conap_scp_drv_cb {
|
|
/* notify message is arrived */
|
|
void (*conap_scp_msg_notify_cb)(unsigned int msg_id, unsigned int *buf, unsigned int size);
|
|
/* notify was resetted */
|
|
void (*conap_scp_state_notify_cb)(int state);
|
|
};
|
|
|
|
/*
|
|
* >= 0: success
|
|
* <0 : fail
|
|
*/
|
|
int conap_scp_register_drv(enum conap_scp_drv_type type, struct conap_scp_drv_cb *cb);
|
|
|
|
int conap_scp_unregister_drv(enum conap_scp_drv_type type);
|
|
|
|
/*
|
|
* return
|
|
* >0 : success, seq num,
|
|
* means msg was sent, but doesn't mean connsys received
|
|
* ack_cb was called when
|
|
* ret=0, consys was received msg
|
|
* ret=CONN_TIMEOUT, timeout, connsys no response
|
|
*/
|
|
int conap_scp_send_message(enum conap_scp_drv_type type,
|
|
unsigned int msg_id,
|
|
unsigned char *buf, unsigned int size);
|
|
|
|
/*
|
|
* return
|
|
* 1 : scp driver ready
|
|
* 0 : scp driver not ready
|
|
* <0 : fail, error no
|
|
*/
|
|
int conap_scp_is_drv_ready(enum conap_scp_drv_type type);
|
|
|
|
|
|
#endif
|