blob: 186a0ebc27bce3bb06e3d7b5b244399858ff00cd [file] [log] [blame]
/*********************************************************************
* All Rights Reserved
*
* MARVELL CONFIDENTIAL
* Copyright 2012 Marvell International Ltd All Rights Reserved.
* The source code contained or described herein and all documents related to
* the source code ("Material") are owned by Marvell International Ltd or its
* suppliers or licensors. Title to the Material remains with Marvell International Ltd
* or its suppliers and licensors. The Material contains trade secrets and
* proprietary and confidential information of Marvell or its suppliers and
* licensors. The Material is protected by worldwide copyright and trade secret
* laws and treaty provisions. No part of the Material may be used, copied,
* reproduced, modified, published, uploaded, posted, transmitted, distributed,
* or disclosed in any way without Marvell's prior express written permission.
*
* No license under any patent, copyright, trade secret or other intellectual
* property right is granted to or conferred upon you by disclosure or delivery
* of the Materials, either expressly, by implication, inducement, estoppel or
* otherwise. Any license under such intellectual property rights must be
* express and approved by Marvell in writing.
*
**********************************************************************/
/**********************************************************************
* File Name:
*
* File Description:
* Header file for Lx000 Platform Software Manager interface definition
*
**********************************************************************/
#ifndef _LPM_COMM_H_
#define _LPM_COMM_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "gps_types.h"
/*LPM service module type*/
#define LPM_SERVICE_SENSORHUB 1
#define LPM_SERVICE_GNSS 2
#define LPM_SERVICE_LPM 3
/*LPM message type definition, sensor hub/GNSS---->LPM*/
#define LPM_MSG_SERVICE_INIT 1 /*Service init from sensor hub or GNSS*/
#define LPM_MSG_SERVICE_START 2 /*Service start from sensor hub or GNSS*/
#define LPM_MSG_SERVICE_STOP 3 /*Service stop from sensor hub or GNSS*/
#define LPM_MSG_SERVICE_DEINIT 4 /*Service cleanup from sensor hub or GNSS*/
#define LPM_MSG_SERVICE_RESET 10 /*Service reset from sensor hub or GNSS*/
/*LPM message type definition, LPM --->sensor hub/GNSS*/
#define LPM_MSG_M3_INIT_SUCCESS 5 /*M3 init success msg fromn LPM*/
#define LPM_MSG_M3_INIT_FAILURE 6 /*M3 init failure msg fromn LPM*/
#define LPM_MSG_M3_STOPPED 7 /*M3 stop status indication from LPM*/
#define LPM_MSG_M3_READY 8 /*M3 ready status indication from LPM*/
#define LPM_MSG_M3_DEINIT_ACK 9 /*Service Cleanup Ack mseesage from LPM*/
#define LPM_MSG_M3_RESET_ACK 11 /*Service Reset Ack mseesage from LPM*/
/*LPM service message header structure*/
typedef struct
{
U16 type;
U16 length;
U16 source;
U16 dest;
} mrvlGpsLpmServiceMsgHdr_t;
/*LPM service message structure*/
typedef struct
{
mrvlGpsLpmServiceMsgHdr_t hdr;
U32 data[0];
} mrvlGpsLpmServiceMsg_t;
S32 mrvlGpsLpmServiceInit(U32 service_type, S32 timeout);
S32 mrvlGpsLpmServiceStart(U32 service_type, S32 timeout);
S32 mrvlGpsLpmServiceStop(U32 service_type, S32 timeout);
S32 mrvlGpsLpmServiceCleanup(U32 service_type, S32 timeout);
S32 mrvlGpsLpmServiceReset(U32 service_type, S32 timeout);
#ifdef __cplusplus
}
#endif
#endif