|
@@ -41,6 +41,12 @@ static int dwc3_ulpi_read(struct device *dev, u8 addr)
|
|
|
u32 reg;
|
|
|
int ret;
|
|
|
|
|
|
+ reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
|
|
|
+ if (reg & DWC3_GUSB2PHYCFG_SUSPHY) {
|
|
|
+ reg &= ~DWC3_GUSB2PHYCFG_SUSPHY;
|
|
|
+ dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
|
|
|
+ }
|
|
|
+
|
|
|
reg = DWC3_GUSB2PHYACC_NEWREGREQ | DWC3_ULPI_ADDR(addr);
|
|
|
dwc3_writel(dwc->regs, DWC3_GUSB2PHYACC(0), reg);
|
|
|
|
|
@@ -58,6 +64,12 @@ static int dwc3_ulpi_write(struct device *dev, u8 addr, u8 val)
|
|
|
struct dwc3 *dwc = dev_get_drvdata(dev);
|
|
|
u32 reg;
|
|
|
|
|
|
+ reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
|
|
|
+ if (reg & DWC3_GUSB2PHYCFG_SUSPHY) {
|
|
|
+ reg &= ~DWC3_GUSB2PHYCFG_SUSPHY;
|
|
|
+ dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
|
|
|
+ }
|
|
|
+
|
|
|
reg = DWC3_GUSB2PHYACC_NEWREGREQ | DWC3_ULPI_ADDR(addr);
|
|
|
reg |= DWC3_GUSB2PHYACC_WRITE | val;
|
|
|
dwc3_writel(dwc->regs, DWC3_GUSB2PHYACC(0), reg);
|