1 /******************************************************************************
\r
4 * USE OF THIS SOFTWARE (including any copy or compiled version thereof) AND *
\r
5 * DOCUMENTATION IS SUBJECT TO THE SOFTWARE LICENSE AND RESTRICTIONS AND THE *
\r
6 * WARRANTY DISLCAIMER SET FORTH IN LEGAL_NOTICE.TXT FILE. IF YOU DO NOT *
\r
7 * FULLY ACCEPT THE TERMS, YOU MAY NOT INSTALL OR OTHERWISE USE THE SOFTWARE *
\r
8 * OR DOCUMENTATION. *
\r
9 * NOTWITHSTANDING ANYTHING TO THE CONTRARY IN THIS NOTICE, INSTALLING OR *
\r
10 * OTHERISE USING THE SOFTWARE OR DOCUMENTATION INDICATES YOUR ACCEPTANCE OF *
\r
11 * THE LICENSE TERMS AS STATED. *
\r
13 ******************************************************************************/
\r
14 /* Version: 1.8.9\3686 */
\r
16 /* Date : 12/08/2012 */
\r
20 \brief CellGuide CGX5900 driver core prototypes (non-OS depended)
\r
21 \attention This file should not be modified.
\r
22 If you think something is wrong here, please contact CellGuide
\r
26 #ifndef CGX_DRIVR_CORE_H
\r
27 #define CGX_DRIVR_CORE_H
\r
30 #include "CgReturnCodes.h"
\r
31 #include "CgxDriverApi.h"
\r
33 #define CG_CG_CORE_REG_BASE_ADDRESS (0)
\r
37 The function is called as a result of GPSenseEngine CGX_IOCTL_STOP request.
\r
38 Stop the driver current operations, destroy all memory structures and release system resources.
\r
39 this function is the counterpart of CgxDriverConstruct.
\r
41 \note Generic function : Not required to be ported
\r
43 \param[in] pDriver Global driver structure pointer
\r
44 \return System wide return code (see CgReturnCodes.h)
\r
45 \retval ECgOk if data ready is 0 (low active)
\r
47 TCgReturnCode CgxDriverDestroy(
\r
53 Setup driver structure
\r
55 \param[in] pDriver Global driver structure pointer
\r
56 \param[in] pState Driver state structure pointer
\r
58 \return System wide return code (see CgReturnCodes.h)
\r
59 \retval ECgOk if data ready is 0 (low active)
\r
62 TCgReturnCode CgxDriverConstruct(
\r
64 TCgxDriverState *pState);
\r
74 \param[in] pDriver Global driver structure pointer
\r
75 \param[in] pState Driver state structure pointer
\r
80 \return System wide return code (see CgReturnCodes.h)
\r
81 \retval ECgOk if data ready is 0 (low active)
\r
84 TCgReturnCode CgxDriverExecute(
\r
86 TCgxDriverState *pState,
\r
88 TCgDriverControl *pControl,
\r
89 TCgDriverStatus *pResults);
\r
92 Execute request, specific to IP/Core
\r
94 \param[in] pDriver Global driver structure pointer
\r
95 \param[in] pState Driver state structure pointer
\r
100 \return System wide return code (see CgReturnCodes.h)
\r
101 \retval ECgOk if data ready is 0 (low active)
\r
104 TCgReturnCode CgxDriverExecuteSpecific(
\r
106 TCgxDriverState *pState,
\r
108 TCgDriverControl *pControl,
\r
109 TCgDriverStatus *pResults);
\r
113 Check if request canceled
\r
115 \param[in] pState Driver state structure pointer
\r
117 \return System wide return code (see CgReturnCodes.h)
\r
118 \retval ECgOk if data ready is 0 (low active)
\r
121 TCgReturnCode CgxDriverIsReadCanceled(TCgxDriverState *pState);
\r
126 Handle GPS interrupt
\r
128 \param[in] pDriver Global driver structure pointer
\r
129 \param[in] pState Driver state structure pointer
\r
131 \return System wide return code (see CgReturnCodes.h)
\r
132 \retval ECgOk if data ready is 0 (low active)
\r
135 TCgReturnCode CgxDriverGpsInterruptHandler(
\r
137 TCgxDriverState *pState);
\r
142 Handle DMA interrupt
\r
144 \param[in] pDriver Global driver structure pointer
\r
145 \param[in] pState Driver state structure pointer
\r
147 \return System wide return code (see CgReturnCodes.h)
\r
148 \retval ECgOk if data ready is 0 (low active)
\r
151 TCgReturnCode CgxDriverDataReadyInterruptHandler(
\r
153 TCgxDriverState *pState);
\r
155 TCgReturnCode CgxDriverHardwareReset(unsigned long aResetLevel);
\r
158 Move chip to power down mode
\r
160 \return System wide return code (see CgReturnCodes.h)
\r
161 \retval ECgOk if chip finished power-down
\r
164 TCgReturnCode CgxDriverPowerDown(void);
\r
167 Move chip to power up mode
\r
169 \return System wide return code (see CgReturnCodes.h)
\r
170 \retval ECgOk if chip finished power-down
\r
173 TCgReturnCode CgxDriverPowerUp(void);
\r
176 Cut power from the CellGuide device
\r
178 \return System wide return code (see CgReturnCodes.h)
\r
179 \retval ECgOk if chip finished power-down
\r
182 TCgReturnCode CgxDriverPowerOn(void);
\r
185 Connect power to the CellGuide device
\r
187 \return System wide return code (see CgReturnCodes.h)
\r
188 \retval ECgOk if chip finished power-down
\r
191 TCgReturnCode CgxDriverPowerOff(void);
\r
194 Move RF chip to power down mode
\r
196 \return System wide return code (see CgReturnCodes.h)
\r
197 \retval ECgOk if RF chip finished power-down
\r
200 TCgReturnCode CgxDriverRFPowerDown(void);
\r
203 Move RF chip to power down mode
\r
205 \return System wide return code (see CgReturnCodes.h)
\r
206 \retval ECgOk if RF chip finished power-up
\r
209 TCgReturnCode CgxDriverRFPowerUp(void);
\r
212 Set output of CGsnap's GPO aGpioPin, to aVal
\r
214 \return System wide return code (see CgReturnCodes.h)
\r
216 TCgReturnCode CgCGCoreGpioSet(U32 aGpioPin, U32 aVal);
\r
221 void CgCoreReleaseRes(void);
\r
222 void CgGpsReset(void);
\r
228 #define MIN(__a__, __b__) ((__a__) < (__b__) ? (__a__) : (__b__))
\r
231 //#define CGCORE_ACCESS_VIA_SPI
\r
232 extern bool flag_power_up;
\r
233 extern void gps_gpio_request(void);
\r
235 #ifdef CGCORE_ACCESS_VIA_SPI
\r
236 extern int gps_spi_sysreg_write_bytes (u32 len, u32 addr, u32 data);
\r
237 extern int gps_spi_sysreg_read_bytes (u32 len, u32 addr, u32 * data);
\r
239 extern int gps_spi_write_bytes( unsigned int len, unsigned int addr,unsigned int data);
\r
240 #define CGCORE_WRITE_REG(addr,val) \
\r
241 gps_spi_write_bytes(1,(U32)addr,val)
\r
244 extern int gps_spi_read_bytes( unsigned int len,unsigned int addr,unsigned int *data);
\r
245 #define CGCORE_READ_REG(addr,val) \
\r
246 gps_spi_read_bytes(1,(U32)addr,(unsigned int *)val)
\r
249 #define CGCORE_WRITE_REG(addr,val) CgxCpuWriteMemory((U32)CG_DRIVER_CGCORE_BASE_VA, (U32)addr, val);
\r
250 #define CGCORE_READ_REG(addr,val) CgxCpuReadMemory((U32)CG_DRIVER_CGCORE_BASE_VA, (U32)addr, val);
\r