static int dwc3_init(struct exynos_xhci_softc *esc) { int hwparams1; int rev; int reg; rev = READ4(esc, GSNPSID); if ((rev & GSNPSID_MASK) != 0x55330000) { printf("It is not DWC3 controller\n"); return (-1); } /* Reset controller */ WRITE4(esc, GCTL, GCTL_CORESOFTRESET); WRITE4(esc, GUSB3PIPECTL(0), GUSB3PIPECTL_PHYSOFTRST); WRITE4(esc, GUSB2PHYCFG(0), GUSB2PHYCFG_PHYSOFTRST); DELAY(100000); reg = READ4(esc, GUSB3PIPECTL(0)); reg &= ~(GUSB3PIPECTL_PHYSOFTRST); WRITE4(esc, GUSB3PIPECTL(0), reg); reg = READ4(esc, GUSB2PHYCFG(0)); reg &= ~(GUSB2PHYCFG_PHYSOFTRST); WRITE4(esc, GUSB2PHYCFG(0), reg); reg = READ4(esc, GCTL); reg &= ~GCTL_CORESOFTRESET; WRITE4(esc, GCTL, reg); hwparams1 = READ4(esc, GHWPARAMS1); reg = READ4(esc, GCTL); reg &= ~(GCTL_SCALEDOWN_MASK << GCTL_SCALEDOWN_SHIFT); reg &= ~(GCTL_DISSCRAMBLE); if (GHWPARAMS1_EN_PWROPT(hwparams1) == \ GHWPARAMS1_EN_PWROPT_CLK) reg &= ~(GCTL_DSBLCLKGTNG); if ((rev & REVISION_MASK) < 0x190a) reg |= (GCTL_U2RSTECN); WRITE4(esc, GCTL, reg); /* Set host mode */ reg = READ4(esc, GCTL); reg &= ~(GCTL_PRTCAPDIR(GCTL_PRTCAP_OTG)); reg |= GCTL_PRTCAPDIR(GCTL_PRTCAP_HOST); WRITE4(esc, GCTL, reg); return (0); }
dump_register(GUSB2PHYACC(2)), dump_register(GUSB2PHYACC(3)), dump_register(GUSB2PHYACC(4)), dump_register(GUSB2PHYACC(5)), dump_register(GUSB2PHYACC(6)), dump_register(GUSB2PHYACC(7)), dump_register(GUSB2PHYACC(8)), dump_register(GUSB2PHYACC(9)), dump_register(GUSB2PHYACC(10)), dump_register(GUSB2PHYACC(11)), dump_register(GUSB2PHYACC(12)), dump_register(GUSB2PHYACC(13)), dump_register(GUSB2PHYACC(14)), dump_register(GUSB2PHYACC(15)), dump_register(GUSB3PIPECTL(0)), dump_register(GUSB3PIPECTL(1)), dump_register(GUSB3PIPECTL(2)), dump_register(GUSB3PIPECTL(3)), dump_register(GUSB3PIPECTL(4)), dump_register(GUSB3PIPECTL(5)), dump_register(GUSB3PIPECTL(6)), dump_register(GUSB3PIPECTL(7)), dump_register(GUSB3PIPECTL(8)), dump_register(GUSB3PIPECTL(9)), dump_register(GUSB3PIPECTL(10)), dump_register(GUSB3PIPECTL(11)), dump_register(GUSB3PIPECTL(12)), dump_register(GUSB3PIPECTL(13)), dump_register(GUSB3PIPECTL(14)), dump_register(GUSB3PIPECTL(15)),