diff options
Diffstat (limited to 'drivers/misc/gpsip/cgdriver/CgxDriverCore.h')
| -rw-r--r-- | drivers/misc/gpsip/cgdriver/CgxDriverCore.h | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/drivers/misc/gpsip/cgdriver/CgxDriverCore.h b/drivers/misc/gpsip/cgdriver/CgxDriverCore.h new file mode 100644 index 00000000..fdf41bc7 --- /dev/null +++ b/drivers/misc/gpsip/cgdriver/CgxDriverCore.h @@ -0,0 +1,255 @@ +/******************************************************************************
+ * LEGAL NOTICE *
+ * *
+ * USE OF THIS SOFTWARE (including any copy or compiled version thereof) AND *
+ * DOCUMENTATION IS SUBJECT TO THE SOFTWARE LICENSE AND RESTRICTIONS AND THE *
+ * WARRANTY DISLCAIMER SET FORTH IN LEGAL_NOTICE.TXT FILE. IF YOU DO NOT *
+ * FULLY ACCEPT THE TERMS, YOU MAY NOT INSTALL OR OTHERWISE USE THE SOFTWARE *
+ * OR DOCUMENTATION. *
+ * NOTWITHSTANDING ANYTHING TO THE CONTRARY IN THIS NOTICE, INSTALLING OR *
+ * OTHERISE USING THE SOFTWARE OR DOCUMENTATION INDICATES YOUR ACCEPTANCE OF *
+ * THE LICENSE TERMS AS STATED. *
+ * *
+ ******************************************************************************/
+/* Version: 1.8.9\3686 */
+/* Build : 13 */
+/* Date : 12/08/2012 */
+
+/**
+ \file
+ \brief CellGuide CGX5900 driver core prototypes (non-OS depended)
+ \attention This file should not be modified.
+ If you think something is wrong here, please contact CellGuide
+
+*/
+
+#ifndef CGX_DRIVR_CORE_H
+#define CGX_DRIVR_CORE_H
+
+
+#include "CgReturnCodes.h"
+#include "CgxDriverApi.h"
+
+#define CG_CG_CORE_REG_BASE_ADDRESS (0)
+
+/**
+ Stop driver.
+ The function is called as a result of GPSenseEngine CGX_IOCTL_STOP request.
+ Stop the driver current operations, destroy all memory structures and release system resources.
+ this function is the counterpart of CgxDriverConstruct.
+
+ \note Generic function : Not required to be ported
+
+ \param[in] pDriver Global driver structure pointer
+ \return System wide return code (see CgReturnCodes.h)
+ \retval ECgOk if data ready is 0 (low active)
+*/
+TCgReturnCode CgxDriverDestroy(
+ void *pDriver);
+
+
+
+/**
+ Setup driver structure
+
+ \param[in] pDriver Global driver structure pointer
+ \param[in] pState Driver state structure pointer
+
+ \return System wide return code (see CgReturnCodes.h)
+ \retval ECgOk if data ready is 0 (low active)
+
+*/
+TCgReturnCode CgxDriverConstruct(
+ void *pDriver,
+ TCgxDriverState *pState);
+
+
+
+
+
+
+/**
+ Execute request
+
+ \param[in] pDriver Global driver structure pointer
+ \param[in] pState Driver state structure pointer
+ \param[in] aRequest
+ \param[in] pControl
+ \param[in] pResults
+
+ \return System wide return code (see CgReturnCodes.h)
+ \retval ECgOk if data ready is 0 (low active)
+
+*/
+TCgReturnCode CgxDriverExecute(
+ void *pDriver,
+ TCgxDriverState *pState,
+ U32 aRequest,
+ TCgDriverControl *pControl,
+ TCgDriverStatus *pResults);
+
+/**
+ Execute request, specific to IP/Core
+
+ \param[in] pDriver Global driver structure pointer
+ \param[in] pState Driver state structure pointer
+ \param[in] aRequest
+ \param[in] pControl
+ \param[in] pResults
+
+ \return System wide return code (see CgReturnCodes.h)
+ \retval ECgOk if data ready is 0 (low active)
+
+*/
+TCgReturnCode CgxDriverExecuteSpecific(
+ void *pDriver,
+ TCgxDriverState *pState,
+ U32 aRequest,
+ TCgDriverControl *pControl,
+ TCgDriverStatus *pResults);
+
+
+/**
+ Check if request canceled
+
+ \param[in] pState Driver state structure pointer
+
+ \return System wide return code (see CgReturnCodes.h)
+ \retval ECgOk if data ready is 0 (low active)
+
+*/
+TCgReturnCode CgxDriverIsReadCanceled(TCgxDriverState *pState);
+
+
+
+/**
+ Handle GPS interrupt
+
+ \param[in] pDriver Global driver structure pointer
+ \param[in] pState Driver state structure pointer
+
+ \return System wide return code (see CgReturnCodes.h)
+ \retval ECgOk if data ready is 0 (low active)
+
+*/
+TCgReturnCode CgxDriverGpsInterruptHandler(
+ void *pDriver,
+ TCgxDriverState *pState);
+
+
+
+/**
+ Handle DMA interrupt
+
+ \param[in] pDriver Global driver structure pointer
+ \param[in] pState Driver state structure pointer
+
+ \return System wide return code (see CgReturnCodes.h)
+ \retval ECgOk if data ready is 0 (low active)
+
+*/
+TCgReturnCode CgxDriverDataReadyInterruptHandler(
+ void *pDriver,
+ TCgxDriverState *pState);
+
+TCgReturnCode CgxDriverHardwareReset(unsigned long aResetLevel);
+
+/**
+ Move chip to power down mode
+
+ \return System wide return code (see CgReturnCodes.h)
+ \retval ECgOk if chip finished power-down
+
+*/
+TCgReturnCode CgxDriverPowerDown(void);
+
+/**
+ Move chip to power up mode
+
+ \return System wide return code (see CgReturnCodes.h)
+ \retval ECgOk if chip finished power-down
+
+*/
+TCgReturnCode CgxDriverPowerUp(void);
+
+/**
+Cut power from the CellGuide device
+
+\return System wide return code (see CgReturnCodes.h)
+\retval ECgOk if chip finished power-down
+
+*/
+TCgReturnCode CgxDriverPowerOn(void);
+
+/**
+Connect power to the CellGuide device
+
+\return System wide return code (see CgReturnCodes.h)
+\retval ECgOk if chip finished power-down
+
+*/
+TCgReturnCode CgxDriverPowerOff(void);
+
+/**
+Move RF chip to power down mode
+
+\return System wide return code (see CgReturnCodes.h)
+\retval ECgOk if RF chip finished power-down
+
+*/
+TCgReturnCode CgxDriverRFPowerDown(void);
+
+/**
+Move RF chip to power down mode
+
+\return System wide return code (see CgReturnCodes.h)
+\retval ECgOk if RF chip finished power-up
+
+*/
+TCgReturnCode CgxDriverRFPowerUp(void);
+
+/**
+ Set output of CGsnap's GPO aGpioPin, to aVal
+
+ \return System wide return code (see CgReturnCodes.h)
+*/
+TCgReturnCode CgCGCoreGpioSet(U32 aGpioPin, U32 aVal);
+
+
+#if 0
+//gaole add
+void CgCoreReleaseRes(void);
+void CgGpsReset(void);
+#endif
+
+
+
+#ifndef MIN
+ #define MIN(__a__, __b__) ((__a__) < (__b__) ? (__a__) : (__b__))
+#endif
+
+//#define CGCORE_ACCESS_VIA_SPI
+extern bool flag_power_up;
+extern void gps_gpio_request(void);
+
+#ifdef CGCORE_ACCESS_VIA_SPI
+extern int gps_spi_sysreg_write_bytes (u32 len, u32 addr, u32 data);
+extern int gps_spi_sysreg_read_bytes (u32 len, u32 addr, u32 * data);
+
+extern int gps_spi_write_bytes( unsigned int len, unsigned int addr,unsigned int data);
+ #define CGCORE_WRITE_REG(addr,val) \
+ gps_spi_write_bytes(1,(U32)addr,val)
+
+
+extern int gps_spi_read_bytes( unsigned int len,unsigned int addr,unsigned int *data);
+ #define CGCORE_READ_REG(addr,val) \
+ gps_spi_read_bytes(1,(U32)addr,(unsigned int *)val)
+
+#else
+ #define CGCORE_WRITE_REG(addr,val) CgxCpuWriteMemory((U32)CG_DRIVER_CGCORE_BASE_VA, (U32)addr, val);
+ #define CGCORE_READ_REG(addr,val) CgxCpuReadMemory((U32)CG_DRIVER_CGCORE_BASE_VA, (U32)addr, val);
+#endif
+
+
+
+#endif
|
