diff options
Diffstat (limited to 'sound/soc/codecs/ymu831/mcservice.c')
-rw-r--r-- | sound/soc/codecs/ymu831/mcservice.c | 407 |
1 files changed, 407 insertions, 0 deletions
diff --git a/sound/soc/codecs/ymu831/mcservice.c b/sound/soc/codecs/ymu831/mcservice.c new file mode 100644 index 000000000000..3e93291b1512 --- /dev/null +++ b/sound/soc/codecs/ymu831/mcservice.c @@ -0,0 +1,407 @@ +/**************************************************************************** + * + * Copyright(c) 2012 Yamaha Corporation. All rights reserved. + * + * Module : mcservice.c + * + * Description : MC Driver service routine + * + * Version : 1.0.0 2012.12.13 + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ****************************************************************************/ + + +#include "mcdefs.h" +#include "mcservice.h" +#include "mcmachdep.h" +#include "mcresctrl.h" +#include "mcdevprof.h" +#if (MCDRV_DEBUG_LEVEL >= 4) +#include "mcdebuglog.h" +#endif + + +/**************************************************************************** + * McSrv_SystemInit + * + * Description: + * Initialize the system. + * Arguments: + * none + * Return: + * none + * + ****************************************************************************/ +void McSrv_SystemInit( + void +) +{ +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncIn("McSrv_SystemInit"); +#endif + + machdep_SystemInit(); + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncOut("McSrv_SystemInit", 0); +#endif +} + +/**************************************************************************** + * McSrv_SystemTerm + * + * Description: + * Terminate the system. + * Arguments: + * none + * Return: + * none + * + ****************************************************************************/ +void McSrv_SystemTerm( + void +) +{ +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncIn("McSrv_SystemTerm"); +#endif + + machdep_SystemTerm(); + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncOut("McSrv_SystemTerm", 0); +#endif +} + +/**************************************************************************** + * McSrv_ClockStart + * + * Description: + * Start clock. + * Arguments: + * none + * Return: + * none + * + ****************************************************************************/ +void McSrv_ClockStart( + void +) +{ +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncIn("McSrv_ClockStart"); +#endif + + machdep_ClockStart(); + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncOut("McSrv_ClockStart", 0); +#endif +} + +/**************************************************************************** + * McSrv_ClockStop + * + * Description: + * Stop clock. + * Arguments: + * none + * Return: + * none + * + ****************************************************************************/ +void McSrv_ClockStop( + void +) +{ +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncIn("McSrv_ClockStop"); +#endif + + machdep_ClockStop(); + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncOut("McSrv_ClockStop", 0); +#endif +} + +/**************************************************************************** + * McSrv_WriteReg + * + * Description: + * Write data to register. + * Arguments: + * bSlaveAddr slave address + * pbData data + * dSize data size + * Return: + * none + * + ****************************************************************************/ +void McSrv_WriteReg( + UINT8 bSlaveAddr, + UINT8 *pbData, + UINT32 dSize +) +{ +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncIn("McSrv_WriteReg"); +#endif + + McSrv_DisableIrq(); + machdep_WriteReg(bSlaveAddr, pbData, dSize); + McSrv_EnableIrq(); + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncOut("McSrv_WriteReg", 0); +#endif +} + +/**************************************************************************** + * McSrv_ReadReg + * + * Function: + * Read a byte data from the register. + * Arguments: + * bSlaveAddr slave address + * dRegAddr address of register + * Return: + * read data + * + ****************************************************************************/ +UINT8 McSrv_ReadReg( + UINT8 bSlaveAddr, + UINT32 dRegAddr +) +{ + UINT8 bReg; + +#if (MCDRV_DEBUG_LEVEL >= 4) + SINT32 sdRet; + McDebugLog_FuncIn("McSrv_ReadReg"); +#endif + + McSrv_DisableIrq(); + machdep_ReadReg(bSlaveAddr, dRegAddr, &bReg, 1); + McSrv_EnableIrq(); + +#if (MCDRV_DEBUG_LEVEL >= 4) + sdRet = (SINT32)bReg; + McDebugLog_FuncOut("McSrv_ReadReg", &sdRet); +#endif + + return bReg; +} + +/**************************************************************************** + * McSrv_ReadRegN + * + * Function: + * Read a byte data from the register. + * Arguments: + * bSlaveAddr slave address + * dRegAddr address of register + * pbData pointer to read data buffer + * dSize read count + * Return: + * none + * + ****************************************************************************/ +void McSrv_ReadRegN( + UINT8 bSlaveAddr, + UINT32 dRegAddr, + UINT8 *pbData, + UINT32 dSize +) +{ +#if (MCDRV_DEBUG_LEVEL >= 4) + SINT32 sdRet; + McDebugLog_FuncIn("McSrv_ReadRegN"); +#endif + McSrv_DisableIrq(); + machdep_ReadReg(bSlaveAddr, dRegAddr, pbData, dSize); + McSrv_EnableIrq(); + +#if (MCDRV_DEBUG_LEVEL >= 4) + sdRet = (SINT32)dSize; + McDebugLog_FuncOut("McSrv_ReadRegN", &sdRet); +#endif +} + +/*************************************************************************** + * McSrv_Sleep + * + * Function: + * Sleep for a specified interval. + * Arguments: + * dSleepTime sleep time [us] + * Return: + * none + * + ****************************************************************************/ +void McSrv_Sleep( + UINT32 dSleepTime +) +{ +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncIn("McSrv_Sleep"); +#endif + + machdep_Sleep(dSleepTime); + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncOut("McSrv_Sleep", 0); +#endif +} + +/**************************************************************************** + * McSrv_Lock + * + * Description: + * Lock a call of the driver. + * Arguments: + * none + * Return: + * none + * + ****************************************************************************/ +void McSrv_Lock( + void +) +{ +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncIn("McSrv_Lock"); +#endif + + machdep_Lock(); + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncOut("McSrv_Lock", 0); +#endif +} + +/*************************************************************************** + * McSrv_Unlock + * + * Function: + * Unlock a call of the driver. + * Arguments: + * none + * Return: + * none + * + ****************************************************************************/ +void McSrv_Unlock( + void +) +{ +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncIn("McSrv_Unlock"); +#endif + + machdep_Unlock(); + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncOut("McSrv_Unlock", 0); +#endif +} + +/*************************************************************************** + * McSrv_MemCopy + * + * Function: + * Copy memory. + * Arguments: + * pbSrc copy source + * pbDest copy destination + * dSize size + * Return: + * none + * + ****************************************************************************/ +void McSrv_MemCopy( + const UINT8 *pbSrc, + UINT8 *pbDest, + UINT32 dSize +) +{ + UINT32 i; + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncIn("McSrv_MemCopy"); +#endif + + for (i = 0; i < dSize; i++) { + ; + pbDest[i] = pbSrc[i]; + } + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncOut("McSrv_MemCopy", 0); +#endif +} + +/*************************************************************************** + * McSrv_DisableIrq + * + * Function: + * Disable interrupt. + * Arguments: + * none + * Return: + * none + * + ****************************************************************************/ +void McSrv_DisableIrq( + void +) +{ +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncIn("McSrv_DisableIrq"); +#endif + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncOut("McSrv_DisableIrq", 0); +#endif +} + +/*************************************************************************** + * McSrv_EnableIrq + * + * Function: + * Enable interrupt. + * Arguments: + * none + * Return: + * none + * + ****************************************************************************/ +void McSrv_EnableIrq( + void +) +{ +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncIn("McSrv_EnableIrq"); +#endif + +#if (MCDRV_DEBUG_LEVEL >= 4) + McDebugLog_FuncOut("McSrv_EnableIrq", 0); +#endif +} + |