12a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt/* 22a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * SdioAdapter.h 32a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 42a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. 52a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * All rights reserved. 62a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 72a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Redistribution and use in source and binary forms, with or without 82a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * modification, are permitted provided that the following conditions 92a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * are met: 102a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 112a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * * Redistributions of source code must retain the above copyright 122a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * notice, this list of conditions and the following disclaimer. 132a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * * Redistributions in binary form must reproduce the above copyright 142a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * notice, this list of conditions and the following disclaimer in 152a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * the documentation and/or other materials provided with the 162a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * distribution. 172a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * * Neither the name Texas Instruments nor the names of its 182a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * contributors may be used to endorse or promote products derived 192a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * from this software without specific prior written permission. 202a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 212a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 222a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 232a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 242a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 252a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 262a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 272a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 282a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 292a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 302a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 312a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 322a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt */ 332a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt 342a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt/** \file SdioAdapter.h 352a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \brief SDIO adapter module API definition 362a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 372a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \see SdioAdapter.c 382a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt */ 392a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt 402a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt#ifndef __SDIO_ADAPT_API_H__ 412a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt#define __SDIO_ADAPT_API_H__ 422a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt 432a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt 442a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt#include "TxnDefs.h" 452a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt 462a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt 472a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt/************************************************************************ 482a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Defines 492a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt ************************************************************************/ 502a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt 512a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt/************************************************************************ 522a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Types 532a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt ************************************************************************/ 542a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt 552a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt/************************************************************************ 562a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Functions 572a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt ************************************************************************/ 582a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt/** \brief sdioAdapt_ConnectBus: Init SDIO driver and HW 592a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 602a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param fCbFunc - The bus driver's callback upon async transaction completion 612a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param hCbArg - The CB function handle 622a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param uBlkSizeShift - In block-mode: BlkSize = (1 << uBlkSizeShift) 63653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt * \param uSdioThreadPriority - The SDIO interrupt handler thread priority 642a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \return 0 = OK, otherwise = error 652a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 662a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \par Description 672a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Called by BusDrv to initialize the SDIO driver and HW. 682a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 692a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \sa 702a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt */ 712a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidtint sdioAdapt_ConnectBus (void * fCbFunc, 722a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt void * hCbArg, 732a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt unsigned int uBlkSizeShift, 74653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt unsigned int uSdioThreadPriority, 75653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt unsigned char **pTxDmaSrcAddr); 76653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt 772a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt/** \brief sdioAdapt_DisconnectBus: Disconnect SDIO driver 782a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 792a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param void 802a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \return 0 = OK, otherwise = error 812a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 822a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \par Description 832a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Called by BusDrv. Disconnect the SDIO driver. 842a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 852a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \sa 862a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt */ 872a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidtint sdioAdapt_DisconnectBus (void); 882a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt/** \brief sdioAdapt_Transact: Process transaction 892a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 902a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param uFuncId - SDIO function ID (1- BT, 2 - WLAN) 912a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param uHwAddr - HW address where to write the data 922a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param pHostAddr - The data buffer to write from or read into 932a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param uLength - The data length in bytes 942a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param bDirection - TRUE = Read, FALSE = Write 952a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param bBlkMode - If TRUE - use block mode 962a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param bMore - If TRUE, more transactions are expected so don't turn off any HW 972a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \return COMPLETE if Txn completed in this context, PENDING if not, ERROR if failed 982a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 992a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \par Description 1002a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Called by the BusDrv module to issue an SDIO transaction. 1012a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Call write or read SDIO-driver function according to the direction. 1022a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Use Sync or Async method according to the transaction length 1032a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 1042a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \note It's assumed that this function is called only when idle (i.e. previous Txn is done). 1052a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 1062a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \sa 1072a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt */ 1082a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry ShmidtETxnStatus sdioAdapt_Transact (unsigned int uFuncId, 1092a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt unsigned int uHwAddr, 1102a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt void * pHostAddr, 1112a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt unsigned int uLength, 1122a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt unsigned int bDirection, 1132a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt unsigned int bBlkMode, 1142a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt unsigned int bFixedAddr, 1152a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt unsigned int bMore); 1162a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt/** \brief sdioAdapt_TransactBytes: Process bytes transaction 1172a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 1182a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param uFuncId - SDIO function ID (1- BT, 2 - WLAN) 1192a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param uHwAddr - HW address where to write the data 1202a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param pHostAddr - The data buffer to write from or read into 1212a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param uLength - The data length in bytes 1222a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param bDirection - TRUE = Read, FALSE = Write 1232a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \param bMore - If TRUE, more transactions are expected so don't turn off any HW 1242a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \return COMPLETE if Txn succeeded, ERROR if failed 1252a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 1262a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \par Description 1272a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Called by the BusDrv module to issue a bytes stream SDIO transaction. 1282a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * Call write or read SDIO-driver Sync function according to the direction. 1292a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 1302a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \note It's assumed that this function is called only when idle (i.e. previous Txn is done). 1312a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * 1322a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt * \sa 1332a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt */ 1342a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry ShmidtETxnStatus sdioAdapt_TransactBytes (unsigned int uFuncId, 1352a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt unsigned int uHwAddr, 1362a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt void * pHostAddr, 1372a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt unsigned int uLength, 1382a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt unsigned int bDirection, 1392a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt unsigned int bMore); 1402a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt 1412a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt 1422a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt 1432a41c9bcfdb878f169a6794b7d7e55ec821ffa9cDmitry Shmidt#endif /*__SDIO_ADAPT_API_H__*/ 144