Exemplo n.º 1
0
static void reset_usb(void)
{
#if defined(CONFIG_PLAT_AMBARELLA_SUPPORT_HAL)
#if (CHIP_REV == A5S) || (CHIP_REV == A7)
	amb_usb_subsystem_soft_reset(HAL_BASE_VP);
#elif (CHIP_REV == I1)||(CHIP_REV == S2)
	amb_usb_device_soft_reset(HAL_BASE_VP);
#endif
#else
	u32 val;

	val = amba_rct_readl(ANA_PWR_REG);
	/* force usbphy on */
	amba_rct_writel(ANA_PWR_REG, val | 0x4);
	udelay(1);
	/* UDC soft reset */
	amba_rct_setbitsl(USB_REFCLK_REG, 0x20000000);
	udelay(1);
	amba_rct_clrbitsl(USB_REFCLK_REG, 0x20000000);
	udelay(1);
	/* restore ana_pwr_reg */
	amba_rct_writel(ANA_PWR_REG, val);
	udelay(1);
#endif
}
Exemplo n.º 2
0
void rct_usb_reset(void)
{
	if (amb_usb_subsystem_soft_reset(HAL_BASE_VP) != AMB_HAL_SUCCESS) {
		DEBUG_MSG("amb_usb_subsystem_soft_reset() failed\r\n");
	}
}