📄 wmxscalemisc.c
字号:
wmStatus = WMS_WRONG_MODE;
break;
case XLLP_STATUS_RESOURCE_ALREADY_EXISTS:
wmStatus = WMS_RESOURCE_CONFLICT;
break;
case XLLP_STATUS_NO_DMA_CHANNEL_AVAILABLE:
wmStatus = WMS_FAILURE;
break;
case XLLP_STATUS_TOUCH_PEN_NOT_DOWN:
wmStatus = WMS_NO_PEN_DOWN;
break;
case XLLP_STATUS_FAILURE:
case XLLP_STATUS_OPERATION_ABORTED:
case XLLP_STATUS_PCCARD_FAILURE:
case XLLP_STATUS_PCCARD_INVALID_SOCKET_NUMBER:
case XLLP_STATUS_PCCARD_INVALID_POINTER_ALLOC:
case XLLP_STATUS_USIM_PARITY_ERROR:
case XLLP_STATUS_USIM_CHAR_NOT_RECEIVED_YET:
case XLLP_STATUS_USIM_ATR_FAILURE:
case XLLP_STATUS_USIM_ATR_NOT_CORRECT:
default:
wmStatus = WMS_FAILURE;
break;
}
return wmStatus;
}
#endif /* XLLP_AVAILABLE */
#ifdef DEBUG
/*-----------------------------------------------------------------------------
* Function: WMPlatformDumpAC97Regs
*
* Dump all the AC97 Registers to the debug console.
*
* Parameters:
* hDevice handle to the device (from WMOpenDevice)
*
* Returns: void.
*
----------------------------------------------------------------------------*/
void WMPlatformDumpAC97Regs( WM_DEVICE_HANDLE hDevice )
{
WM_XSCALE_DEVICE_CONTEXT *pDeviceContext =
(WM_XSCALE_DEVICE_CONTEXT*) hDevice;
volatile XLLP_AC97_T *v_pAc97regs;
if (! WM_IS_AC97( hDevice ) )
{
/*
* The AC97 registers are meaningless so return.
*/
WM_TRACE( hDevice, ( "WMPlatformDumpAC97Regs: not AC'97" ) );
return;
}
if (NULL == pDeviceContext || NULL == pDeviceContext->v_pAC97Regs)
{
WM_TRACE( hDevice, (
"***** WMPlatformDumpAC97Regs: Error XScale AC97 registers not initialised *****"
));
return;
}
v_pAc97regs = pDeviceContext->v_pAC97Regs;
TRACE_REG_TITLE( "AC97");
TRACE_REG_HEADER_FOOTER;
TRACE_REG( v_pAC97Regs, POCR, "PCM out control" );
TRACE_REG( v_pAC97Regs, PICR, "PCM in control" );
TRACE_REG( v_pAC97Regs, MCCR, "Microphone in control" );
TRACE_REG( v_pAC97Regs, GCR, "Global control" );
TRACE_REG( v_pAC97Regs, POSR, "PCM out status" );
TRACE_REG( v_pAC97Regs, PISR, "PCM in status" );
TRACE_REG( v_pAC97Regs, MCSR, "Microphone in status" );
TRACE_REG( v_pAC97Regs, GSR, "Global status" );
TRACE_REG( v_pAC97Regs, CAR, "Codec access" );
TRACE_REG( v_pAC97Regs, PCDR, "PCM data" );
TRACE_REG( v_pAC97Regs, MCDR, "Microphone in data" );
TRACE_REG( v_pAC97Regs, MOCR, "Modem out control" );
TRACE_REG( v_pAC97Regs, MICR, "Modem in control" );
TRACE_REG( v_pAC97Regs, MOSR, "Modem out status" );
TRACE_REG( v_pAC97Regs, MISR, "Modem in status" );
TRACE_REG( v_pAC97Regs, MODR, "Modem data" );
TRACE_REG_HEADER_FOOTER;
}
/*-----------------------------------------------------------------------------
* Function: WMPlatformDumpI2SRegs
*
* Dump all the I2S Registers to the debug console.
*
* Parameters:
* hDevice handle to the device (from WMOpenDevice)
*
* Returns: none
*---------------------------------------------------------------------------*/
void WMPlatformDumpI2SRegs( WM_DEVICE_HANDLE hDevice )
{
WM_XSCALE_DEVICE_CONTEXT *pDeviceContext =
(WM_XSCALE_DEVICE_CONTEXT*) hDevice;
if (! WM_IS_I2S( hDevice ) )
{
/*
* The I2S registers are meaningless so return.
*/
WM_TRACE( hDevice, ( "WMPlatformDumpI2SRegs: not I2S" ) );
return;
}
if ( NULL == pDeviceContext || NULL == pDeviceContext->v_pI2SRegs )
{
WM_TRACE( hDevice, (
"***** WMPlatformDumpI2SRegs: Error I2S registers not initialised *****"
));
return;
}
TRACE_REG_TITLE( "I2S");
TRACE_REG_HEADER_FOOTER;
TRACE_REG( v_pI2SRegs, SACR0, "Global control" );
TRACE_REG( v_pI2SRegs, SACR1, "I2S/MSB-justified control" );
TRACE_REG( v_pI2SRegs, SASR0, "I2S/MSB-justified interface and FIFO status" );
TRACE_REG( v_pI2SRegs, SAIMR, "Interrupt mask" );
TRACE_REG( v_pI2SRegs, SAICR, "Interrupt clear" );
TRACE_REG( v_pI2SRegs, SADIV, "Clock divider" );
TRACE_REG( v_pI2SRegs, SADR, "Data read/write" );
TRACE_REG_HEADER_FOOTER;
}
#if WM_VOICE
/*-----------------------------------------------------------------------------
* Function: WMPlatformDumpSSP2Regs
*
* Dump all the SSP2 Registers to the debug console.
*
* Parameters:
* hDevice handle to the device (from WMOpenDevice)
*
* Returns: none
*---------------------------------------------------------------------------*/
void WMPlatformDumpSSP2Regs( WM_DEVICE_HANDLE hDevice )
{
WM_XSCALE_DEVICE_CONTEXT *pDeviceContext =
(WM_XSCALE_DEVICE_CONTEXT*) hDevice;
if (! WM_IS_VOICE_SUPPORTED( hDevice ) )
{
/*
* The SSP2 registers are meaningless so return.
*/
WM_TRACE( hDevice, ( "WMPlatformDumpSSP2Regs: not voice" ) );
return;
}
if ( NULL == pDeviceContext || NULL == pDeviceContext->v_pSSP2Regs )
{
WM_TRACE( hDevice, (
"***** WMPlatformDumpSSP2Regs: Error SSP2 registers not initialised *****"
));
return;
}
TRACE_REG_TITLE( "SSP2");
TRACE_REG_HEADER_FOOTER;
TRACE_REG( v_pSSP2Regs, sscr0, "Control 0" );
TRACE_REG( v_pSSP2Regs, sscr1, "Control 1" );
TRACE_REG( v_pSSP2Regs, ssr, "Status" );
#if WM_CPU_PXA27X
TRACE_REG( v_pSSP2Regs, ssitr, "Interrupt test" );
#endif
TRACE_REG( v_pSSP2Regs, ssdr, "Data read/write" );
#if WM_CPU_PXA27X
TRACE_REG( v_pSSP2Regs, ssto, "Time out register" );
TRACE_REG( v_pSSP2Regs, sspsp, "Programmable serial protocol" );
TRACE_REG( v_pSSP2Regs, sstsa, "TX time slot active" );
TRACE_REG( v_pSSP2Regs, ssrsa, "RX time slot active" );
/* sstss and ssacd aren't defined */
#endif
TRACE_REG_HEADER_FOOTER;
}
#endif /* WM_VOICE */
/*-----------------------------------------------------------------------------
* Function: WMPlatformDumpClockRegs
*
* Dump all the clock Registers to the debug console.
*
* Parameters:
* hDevice handle to the device (from WMOpenDevice)
*
* Returns: none
*---------------------------------------------------------------------------*/
void WMPlatformDumpClockRegs( WM_DEVICE_HANDLE hDevice )
{
WM_XSCALE_DEVICE_CONTEXT *pDeviceContext =
(WM_XSCALE_DEVICE_CONTEXT*) hDevice;
if ( NULL == pDeviceContext || NULL == pDeviceContext->v_pClkRegs )
{
WM_TRACE( hDevice, (
"***** WMPlatformDumpClockRegs: Error Clock registers not initialised *****"
));
return;
}
TRACE_REG_TITLE( "Clock");
TRACE_REG_HEADER_FOOTER;
TRACE_REG( v_pClkRegs, cccr, "Core clock configuration" );
TRACE_REG( v_pClkRegs, cken, "Clock enable" );
TRACE_REG( v_pClkRegs, oscc, "Oscillator configuration" );
#if WM_CPU_PXA27X
TRACE_REG( v_pClkRegs, ccsr, "Core clock status" );
#endif
TRACE_REG_HEADER_FOOTER;
}
/*-----------------------------------------------------------------------------
* Function: WMPlatformDumpGPIORegs
*
* Dump all the GPIO Registers to the debug console.
*
* Parameters:
* hDevice handle to the device (from WMOpenDevice)
*
* Returns: none
*---------------------------------------------------------------------------*/
void WMPlatformDumpGPIORegs( WM_DEVICE_HANDLE hDevice )
{
WM_XSCALE_DEVICE_CONTEXT *pDeviceContext =
(WM_XSCALE_DEVICE_CONTEXT*) hDevice;
if ( NULL == pDeviceContext || NULL == pDeviceContext->v_pGPIORegs )
{
WM_TRACE( hDevice, (
"***** WMPlatformDumpGPIORegs: Error GPIO registers not initialised *****"
));
return;
}
TRACE_REG_TITLE( "GPIO");
TRACE_REG_HEADER_FOOTER;
TRACE_REG( v_pGPIORegs, GPLR0, "Pin-level GPIO<31:0>" );
TRACE_REG( v_pGPIORegs, GPLR1, "Pin-level GPIO<63:32>" );
TRACE_REG( v_pGPIORegs, GPLR2, "Pin-level GPIO<95:64>" );
#if WM_CPU_PXA27X
TRACE_REG( v_pGPIORegs, GPLR3, "Pin-level GPIO<120:96>" );
#endif
TRACE_REG( v_pGPIORegs, GPDR0, "Pin-direction GPIO<31:0> " );
TRACE_REG( v_pGPIORegs, GPDR1, "Pin-direction GPIO<63:32>" );
TRACE_REG( v_pGPIORegs, GPDR2, "Pin-direction GPIO<95:64>" );
#if WM_CPU_PXA27X
TRACE_REG( v_pGPIORegs, GPDR3, "Pin-level GPIO<120:96>" );
#endif
TRACE_REG( v_pGPIORegs, GPSR0, "Pin output set GPIO<31:0>" );
TRACE_REG( v_pGPIORegs, GPSR1, "Pin output set GPIO<63:32>" );
TRACE_REG( v_pGPIORegs, GPSR2, "Pin output set GPIO<95:64>" );
#if WM_CPU_PXA27X
TRACE_REG( v_pGPIORegs, GPSR3, "Pin output set GPIO<120:96>" );
#endif
TRACE_REG( v_pGPIORegs, GPCR0, "Pin output clear GPIO<31:0>" );
TRACE_REG( v_pGPIORegs, GPCR1, "Pin output clear GPIO<63:32>" );
TRACE_REG( v_pGPIORegs, GPCR2, "Pin output clear GPIO<95:64>" );
#if WM_CPU_PXA27X
TRACE_REG( v_pGPIORegs, GPCR3, "Pin output clear GPIO<120:96>" );
#endif
TRACE_REG( v_pGPIORegs, GRER0, "Rising-edge detect enable GPIO<31:0>" );
TRACE_REG( v_pGPIORegs, GRER1, "Rising-edge detect enable GPIO<63:32>" );
TRACE_REG( v_pGPIORegs, GRER2, "Rising-edge detect enable GPIO<95:64>" );
#if WM_CPU_PXA27X
TRACE_REG( v_pGPIORegs, GRER3, "Rising-edge detect enable GPIO<120:96>" );
#endif
TRACE_REG( v_pGPIORegs, GFER0, "Falling-edge detect enable GPIO<31:0>" );
TRACE_REG( v_pGPIORegs, GFER1, "Falling-edge detect enable GPIO<63:32>" );
TRACE_REG( v_pGPIORegs, GFER2, "Falling-edge detect enable GPIO<95:64>" );
#if WM_CPU_PXA27X
TRACE_REG( v_pGPIORegs, GFER3, "Falling-edge detect enable GPIO<120:96>" );
#endif
TRACE_REG( v_pGPIORegs, GEDR0, "Edge detect status GPIO<31:0>" );
TRACE_REG( v_pGPIORegs, GEDR1, "Edge detect status GPIO<63:32>" );
TRACE_REG( v_pGPIORegs, GEDR2, "Edge detect status GPIO<95:64>" );
#if WM_CPU_PXA27X
TRACE_REG( v_pGPIORegs, GEDR3, "Edge detect status GPIO<120:96>" );
#endif
TRACE_REG( v_pGPIORegs, GAFR0_L, "Alternate function GPIO<15:0>" );
TRACE_REG( v_pGPIORegs, GAFR0_U, "Alternate function GPIO<31:16>" );
TRACE_REG( v_pGPIORegs, GAFR1_L, "Alternate function GPIO<47:32>" );
TRACE_REG( v_pGPIORegs, GAFR1_U, "Alternate function GPIO<63:48>" );
TRACE_REG( v_pGPIORegs, GAFR2_L, "Alternate function GPIO<79:64>" );
TRACE_REG( v_pGPIORegs, GAFR2_U, "Alternate function GPIO<95:80>" );
#if WM_CPU_PXA27X
TRACE_REG( v_pGPIORegs, GAFR3_L, "Alternate function GPIO<111:96>" );
TRACE_REG( v_pGPIORegs, GAFR3_U, "Alternate function GPIO<120:112>" );
#endif
TRACE_REG_HEADER_FOOTER;
}
#endif /* DEBUG */
/*------------------------------ END OF FILE ---------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -