hi,
we are testing our dm648 board, but can not power on vedio port 3 by setting LPSC register. we debuged the function in pal_sys.c of psp driver, and check the procedure on page 59 of sprueu6b(TMS320DM647/DM648 Subsystem User's Guide), but the function returned with an error code. function is listed below:
PAL_Result PAL_sysModuleClkCtrl(Uint32 moduleId,PAL_SysModuleClkControl clkCtrl)
{
#define TIMEOUT_COUNT (10240u)
PAL_Result result = PAL_SOK;
Uint32 lpscNum = moduleId;
Uint16 state = 0;
volatile Uint32 count = 0;
if(clkCtrl == PAL_SYS_MODULE_CLK_ENABLE) /* Module clk enable in LPSC */
{
state = (0x0003u);
}
else /* Module clk disable in LPSC */
{
state = (0x0002u);
}
/* NEXT=state */
pscRegs->MDCTL[lpscNum] = (pscRegs->MDCTL[lpscNum]&0xFFFFFFE0) | state;
pscRegs->PTCMD = (0x1u);
/*Wait for power state transition to finish*/
count = TIMEOUT_COUNT;
while( ((pscRegs->PTSTAT & (0x1u)) != 0) && (count>0))
{
count --;
}
if (0 == count) /* If timeout, then there is no such resource in LPSC */
{
result = PAL_SYS_ERROR_NO_RESOURCES;
}
else
{
/* Wait for MODSTAT = ENABLE/DISABLE from LPSC */
count = TIMEOUT_COUNT;
while( ((pscRegs->MDSTAT[lpscNum] & (0x1Fu)) != state) && (count>0))
{
count --;
}
if (0 == count) /* If timeout, the resource may not be functioning */
{
result = PAL_SYS_ERROR_NO_RESOURCES;
}
}
return result;
}
the same program was working well on dm648 evm board, and the function returned successfully.
then we test all the module in LPSC, and fount some module can power on, while some can't.
module can power on:
LPSC NUMBER MODULE
0 EDMA3CC(EDMATPCC)
7 DDR2(EMIF3D)
8 UHPI
9 VLYNQ
10 GPIO
11 TIMER0
12 TIMER1
26 TIMER2
27 TIMER3
31 VICP(IMCOP)
33 CPU(GEM)
34 Ethernet
5 TSIP0
6 TSIP1
32 CHIP
module can't power on:
LPSC NUMBER MODULE
17 SPI
18 I2C
19 PCI
20 VP0
21 VP1
22 VP2
23 VP3
24 VP4
25 EMIFA(EMIF3B)
28 VIC
29 MCASP
30 UART
we don't know why all the module using bus can't power on, while the internal module can.
thank you for your help.