diff --git a/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/dwc3/dwc3.c b/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/dwc3/dwc3.c index 7d2b7e445..9bc28841c 100644 --- a/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/dwc3/dwc3.c +++ b/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/dwc3/dwc3.c @@ -26,8 +26,19 @@ int dwc3_setup_phy(void *dev, struct phy **array, int *num_phys){ -void dwc3_cache_hwparams(struct dwc3 *dwc){ +void dwc3_cache_hwparams(struct dwc3 *dwc) +{ + struct dwc3_hwparams *parms = &dwc->hwparams; + parms->hwparams0 = dwc3_readl(dwc->regs_vir, DWC3_GHWPARAMS0); + parms->hwparams1 = dwc3_readl(dwc->regs_vir, DWC3_GHWPARAMS1); + parms->hwparams2 = dwc3_readl(dwc->regs_vir, DWC3_GHWPARAMS2); + parms->hwparams3 = dwc3_readl(dwc->regs_vir, DWC3_GHWPARAMS3); + parms->hwparams4 = dwc3_readl(dwc->regs_vir, DWC3_GHWPARAMS4); + parms->hwparams5 = dwc3_readl(dwc->regs_vir, DWC3_GHWPARAMS5); + parms->hwparams6 = dwc3_readl(dwc->regs_vir, DWC3_GHWPARAMS6); + parms->hwparams7 = dwc3_readl(dwc->regs_vir, DWC3_GHWPARAMS7); + parms->hwparams8 = dwc3_readl(dwc->regs_vir, DWC3_GHWPARAMS8); } diff --git a/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/dwc3/dwc3.h b/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/dwc3/dwc3.h index f6a11c4d4..b0b0eca31 100644 --- a/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/dwc3/dwc3.h +++ b/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/dwc3/dwc3.h @@ -639,8 +639,8 @@ struct dwc3 { * The regs stores the value of the DWC3 start physical address * Conversely, the regs_vir stores the mapped value of the regs, which can be used in the xHCI driver. */ - uintptr_t regs; - uintptr_t regs_vir; + void *regs; + void *regs_vir; uint32_t regs_size; enum usb_dr_mode dr_mode; enum usb_phy_interface hsphy_mode;