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 }
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"); } }