[U-Boot] [PATCH 1/5] usb: dwc3: Add helper functions to enable snooping and burst settings

From: Rajat Srivastava rajat.srivastava@nxp.com
Adds helper functions to enable snooping and outstanding burst beat settings.
Signed-off-by: Rajat Srivastava rajat.srivastava@nxp.com Signed-off-by: Rajesh Bhagat rajesh.bhagat@nxp.com --- drivers/usb/dwc3/core.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ drivers/usb/dwc3/core.h | 7 +++++++ 2 files changed, 52 insertions(+)
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 85cc96a..4ac599a 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -599,6 +599,51 @@ static void dwc3_core_exit_mode(struct dwc3 *dwc)
#define DWC3_ALIGN_MASK (16 - 1)
+void dwc3_core_incr_burst_enable(int index, int btype_incr_val, + int breq_limit) +{ + struct dwc3 *dwc; + u32 reg; + + list_for_each_entry(dwc, &dwc3_list, list) { + if (dwc->index != index) + continue; + + /* + * Change burst beat and outstanding pipelined + * transfers requests + */ + reg = dwc3_readl(dwc->regs, DWC3_GSBUSCFG0); + reg = (reg & ~DWC3_INCR_BTYPE_MASK) | btype_incr_val; + dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, reg); + + reg = dwc3_readl(dwc->regs, DWC3_GSBUSCFG1); + reg = (reg & ~DWC3_BREQ_LIMIT_MASK) | (breq_limit << 8); + dwc3_writel(dwc->regs, DWC3_GSBUSCFG1, reg); + break; + } +} + +void dwc3_core_set_snooping(int index, bool snoop) +{ + struct dwc3 *dwc; + u32 reg; + + list_for_each_entry(dwc, &dwc3_list, list) { + if (dwc->index != index) + continue; + + /* Enable/Disable snooping */ + reg = dwc3_readl(dwc->regs, DWC3_GSBUSCFG0); + if (snoop) + reg |= DWC3_SNOOP_ENABLE; + else + reg &= ~DWC3_SNOOP_ENABLE; + dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, reg); + break; + } +} + /** * dwc3_uboot_init - dwc3 core uboot initialization code * @dwc3_dev: struct dwc3_device containing initialization data diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index 72d2fcd..455e7fa 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -593,6 +593,13 @@ struct dwc3_hwparams { /* HWPARAMS7 */ #define DWC3_RAM1_DEPTH(n) ((n) & 0xffff)
+/* GSBUSCFG0 */ +#define DWC3_SNOOP_ENABLE (0x22220000) +#define DWC3_INCR_BTYPE_MASK (0xff) + +/* GSBUSCFG1 */ +#define DWC3_BREQ_LIMIT_MASK (0xf00) + struct dwc3_request { struct usb_request request; struct list_head list;

On 05/03/2017 04:15 AM, yinbo.zhu wrote:
From: Rajat Srivastava rajat.srivastava@nxp.com
Adds helper functions to enable snooping and outstanding burst beat settings.
Signed-off-by: Rajat Srivastava rajat.srivastava@nxp.com Signed-off-by: Rajesh Bhagat rajesh.bhagat@nxp.com
drivers/usb/dwc3/core.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ drivers/usb/dwc3/core.h | 7 +++++++ 2 files changed, 52 insertions(+)
Look like you repost this patch in another set without mentioning it. Since this set is older, I am going to mark them as "Superseded". Some tips for your future patches.
1. Copy maintainers Use patman to generate patches, or call get_maintainer.pl to get the maintainers.
2. Add change logs Please update change log every time you post a new version.
3. Do not assign to different maintainers in patchwork Maybe you did, or someone did it for you. These two patches were assigned to different maintainers.
4. Keep your patches in meaningful set It is not a good idea to mix architecture or board specific patches with general drivers. It is not easy to assign them to one maintainer. Try to separate them and add a note describing dependency if necessary.
Happy coding!
York
participants (2)
-
yinbo.zhu
-
York Sun