void PwrCon_set_USB_phy(BOOL bOn)
{
	PWRCON_MSG((_T("[PWRCON]++PwrCon_set_USB_phy(%d)\n\r"), bOn));

	if (bOn)
	{
		g_pSysConReg->OTHERS |= (1<<16);
	}
	else
	{
		g_pSysConReg->OTHERS &= ~(1<<16);
	}

	PWRCON_MSG((_T("[PWRCON]--PwrCon_set_USB_phy()\n\r")));
}
BOOL PwrCon_initialize_register_address(void *pSysConReg)
{
	PWRCON_MSG((_T("[PWRCON]++PwrCon_initialize_register_address(0x%08x)\n\r"), pSysConReg));

	if (pSysConReg == NULL)
	{
		PWRCON_ERR((_T("[PWRCON:ERR] PwrCon_initialize_register_address() : NULL pointer parameter\n\r")));
		return FALSE;
	}
	else
	{
		g_pSysConReg = (S3C6400_SYSCON_REG *)pSysConReg;
		PWRCON_INF((_T("[PWRCON:INF] g_pSysConReg    = 0x%08x\n\r"), g_pSysConReg));
	}

	PWRCON_MSG((_T("[PWRCON]--PwrCon_initialize_register_address()\n\r")));

	return TRUE;
}
BOOL PwrCon_set_block_power_on(BLKPWR_DOMAIN eDomain)
{
	PWRCON_MSG((_T("[PWRCON]++PwrCon_set_block_power_on(%d)\n\r"), eDomain));

	switch(eDomain)
	{
	case BLKPWR_DOMAIN_IROM:	// Internal ROM
		g_pSysConReg->NORMAL_CFG |= (1<<30);
		break;
	case BLKPWR_DOMAIN_ETM:	// ETM
		g_pSysConReg->NORMAL_CFG |= (1<<16);
		while(!(g_pSysConReg->BLK_PWR_STAT & (1<<6)));
		break;
	case BLKPWR_DOMAIN_S:		// SDMA, Security System
		g_pSysConReg->NORMAL_CFG |= (1<<15);
		while(!(g_pSysConReg->BLK_PWR_STAT & (1<<5)));
		break;
	case BLKPWR_DOMAIN_F:		// Display Controller, Post Processor, Rotator
		g_pSysConReg->NORMAL_CFG |= (1<<14);
		while(!(g_pSysConReg->BLK_PWR_STAT & (1<<4)));
		break;
	case BLKPWR_DOMAIN_P:		// FIMG-2D, TV Encoder, TV Scaler
		g_pSysConReg->NORMAL_CFG |= (1<<13);
		while(!(g_pSysConReg->BLK_PWR_STAT & (1<<3)));
		break;
	case BLKPWR_DOMAIN_I:		// Camera interface, Jpeg
		g_pSysConReg->NORMAL_CFG |= (1<<12);
		while(!(g_pSysConReg->BLK_PWR_STAT & (1<<2)));
		break;
	case BLKPWR_DOMAIN_V:		// MFC
		g_pSysConReg->NORMAL_CFG |= (1<<9);
		while(!(g_pSysConReg->BLK_PWR_STAT & (1<<1)));
		break;
	default:
		PWRCON_ERR((_T("[PWRCON:ERR] PwrCon_set_block_power_on() : Unknown Domain = %d\n\r"), eDomain));
		return FALSE;
	}

	PWRCON_MSG((_T("[PWRCON]--PwrCon_set_block_power_on()\n\r")));

	return TRUE;
}
RESET_STATUS PwrCon_get_reset_status(void)
{
	RESET_STATUS RstStatus = RST_UNKNOWN;

	switch(g_pSysConReg->RST_STAT)
	{
	case 0x01:
		PWRCON_INF((_T("[PWRCON:INF] PwrCon_get_reset_status() : H/W Reset [0x%08x]\n\r"), g_pSysConReg->RST_STAT));
		RstStatus = RST_HW_RESET;
		break;
	case 0x02:
		PWRCON_INF((_T("[PWRCON:INF] PwrCon_get_reset_status() : Warm Reset [0x%08x]\n\r"), g_pSysConReg->RST_STAT));
		RstStatus = RST_WARM_RESET;
		break;
	case 0x04:
		PWRCON_INF((_T("[PWRCON:INF] PwrCon_get_reset_status() : Watch Dog Timer Reset [0x%08x]\n\r"), g_pSysConReg->RST_STAT));
		RstStatus = RST_WDT_RESET;
		break;
	case 0x08:
		PWRCON_INF((_T("[PWRCON:INF] PwrCon_get_reset_status() : Sleep/Wakeup Reset [0x%08x]\n\r"), g_pSysConReg->RST_STAT));
		RstStatus = RST_SLEEP_WAKEUP;
		break;
	case 0x10:
		PWRCON_INF((_T("[PWRCON:INF] PwrCon_get_reset_status() : eSleep/Wakeup Reset [0x%08x]\n\r"), g_pSysConReg->RST_STAT));
		RstStatus = RST_ESLEEP_WAKEUP;
		break;
	case 0x20:
		PWRCON_INF((_T("[PWRCON:INF] PwrCon_get_reset_status() : S/W Reset [0x%08x]\n\r"), g_pSysConReg->RST_STAT));
		RstStatus = RST_SW_RESET;
		break;
	default:
		PWRCON_ERR((_T("[PWRCON:ERR] PwrCon_get_reset_status() : Unknown RST_STAT [0x%08x]\n\r"), g_pSysConReg->RST_STAT));
		break;
	}

	PWRCON_MSG((_T("[PWRCON] PwrCon_get_reset_status() = %d\n\r"), RstStatus));

	return RstStatus;
}
Exemplo n.º 5
0
BOOL PwrCon_set_block_power_on(BLKPWR_DOMAIN eDomain)
{
    UINT32 TimeOut;
	PWRCON_MSG((_T("[PWRCON]++PwrCon_set_block_power_on(%d)\n\r"), eDomain));

    TimeOut = 10000000L;   // This is big value.

	switch(eDomain)
	{
	case BLKPWR_DOMAIN_IROM:	// Internal ROM
		g_pSysConReg->NORMAL_CFG |= (1<<30);
		break;
	case BLKPWR_DOMAIN_ETM:	// ETM
		g_pSysConReg->NORMAL_CFG |= (1<<16);
        while(!(g_pSysConReg->BLK_PWR_STAT & (1<<6)) || (TimeOut-- == 0));
        if(TimeOut == 0) goto Block_Pwr_ON_FAIL;
		break;
	case BLKPWR_DOMAIN_S:		// SDMA, Security System
		g_pSysConReg->NORMAL_CFG |= (1<<15);
        while(!(g_pSysConReg->BLK_PWR_STAT & (1<<5)) || (TimeOut-- == 0));
        if(TimeOut == 0) goto Block_Pwr_ON_FAIL;
		break;
	case BLKPWR_DOMAIN_F:		// Display Controller, Post Processor, Rotator
		g_pSysConReg->NORMAL_CFG |= (1<<14);
        while(!(g_pSysConReg->BLK_PWR_STAT & (1<<4)) || (TimeOut-- == 0));
        if(TimeOut == 0) goto Block_Pwr_ON_FAIL;
		break;
	case BLKPWR_DOMAIN_P:		// FIMG-2D, TV Encoder, TV Scaler
		g_pSysConReg->NORMAL_CFG |= (1<<13);
        while(!(g_pSysConReg->BLK_PWR_STAT & (1<<3)) || (TimeOut-- == 0));
        if(TimeOut == 0) goto Block_Pwr_ON_FAIL;
		break;
	case BLKPWR_DOMAIN_I:		// Camera interface, Jpeg
		g_pSysConReg->NORMAL_CFG |= (1<<12);
        while(!(g_pSysConReg->BLK_PWR_STAT & (1<<2)) || (TimeOut-- == 0));
        if(TimeOut == 0) goto Block_Pwr_ON_FAIL;        
		break;
	case BLKPWR_DOMAIN_G:		// 3D
		g_pSysConReg->NORMAL_CFG |= (1<<10);
        while(!(g_pSysConReg->BLK_PWR_STAT & (1<<7)) || (TimeOut-- == 0));
        if(TimeOut == 0) goto Block_Pwr_ON_FAIL;        
		break;
	case BLKPWR_DOMAIN_V:		// MFC
		g_pSysConReg->NORMAL_CFG |= (1<<9);
        while(!(g_pSysConReg->BLK_PWR_STAT & (1<<1)) || (TimeOut-- == 0));
        if(TimeOut == 0) goto Block_Pwr_ON_FAIL;        
		break;
	default:
		PWRCON_ERR((_T("[PWRCON:ERR] PwrCon_set_block_power_on() : Unknown Domain = %d\n\r"), eDomain));
		return FALSE;
	}

	PWRCON_MSG((_T("[PWRCON]--PwrCon_set_block_power_on()\n\r")));

	return TRUE;

Block_Pwr_ON_FAIL:
    PWRCON_ERR((_T("[PWRCON:ERR] %s() : Time OUT!! Domain = %d\n\r"), _T(__FUNCTION__), eDomain));
    
    return FALSE;
}