GRSTCTL
grstctl = dwc2_readl(hsotg, GRSTCTL);
dwc2_writel(hsotg, grstctl, GRSTCTL);
greset = dwc2_readl(hsotg, GRSTCTL);
dwc2_writel(hsotg, greset, GRSTCTL);
if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL,
if (dwc2_hsotg_wait_bit_set(hsotg, GRSTCTL,
greset = dwc2_readl(hsotg, GRSTCTL);
dwc2_writel(hsotg, greset, GRSTCTL);
if (dwc2_hsotg_wait_bit_set(hsotg, GRSTCTL, GRSTCTL_AHBIDLE, 10000)) {
addr = hsotg->regs + GRSTCTL;
(unsigned long)addr, dwc2_readl(hsotg, GRSTCTL));
if (dwc2_hsotg_wait_bit_set(hsotg, GRSTCTL, GRSTCTL_AHBIDLE, 10000))
dwc2_writel(hsotg, greset, GRSTCTL);
if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_TXFFLSH, 10000))
if (dwc2_hsotg_wait_bit_set(hsotg, GRSTCTL, GRSTCTL_AHBIDLE, 10000))
dwc2_writel(hsotg, greset, GRSTCTL);
if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_RXFFLSH, 10000))
dump_register(GRSTCTL),
GRSTCTL);
if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_TXFFLSH, 100))
GRSTCTL_RXFFLSH, GRSTCTL);
val = dwc2_readl(hsotg, GRSTCTL);