> -----Original Message----- > From: s...@google.com [mailto:s...@google.com] On Behalf Of Simon Glass > Sent: Friday, June 17, 2016 9:22 AM > To: Rajesh Bhagat <rajesh.bha...@nxp.com> > Cc: Rajat Srivastava <rajat.srivast...@nxp.com>; U-Boot Mailing List <u- > b...@lists.denx.de>; Lukasz Majewski <l.majew...@samsung.com>; Marek Vašut > <ma...@denx.de>; Albert ARIBAUD <albert.u.b...@aribaud.net>; Prabhakar > Kushwaha <prabha...@freescale.com>; york sun <york....@nxp.com>; Mingkai Hu > <mingkai...@nxp.com>; Michal Simek <michal.si...@xilinx.com>; > felipe.ba...@linux.intel.com > Subject: Re: [PATCH v2 2/4] usb: dwc3: Add helper functions to enable > snooping and > burst settings > > Hi Rajesh, > > On 13 June 2016 at 22:09, Rajesh Bhagat <rajesh.bha...@nxp.com> wrote: > > > > > >> -----Original Message----- > >> From: s...@google.com [mailto:s...@google.com] On Behalf Of Simon Glass > >> Sent: Friday, June 10, 2016 6:05 AM > >> To: Rajat Srivastava <rajat.srivast...@nxp.com> > >> Cc: U-Boot Mailing List <u-boot@lists.denx.de>; Lukasz Majewski > >> <l.majew...@samsung.com>; Marek Vašut <ma...@denx.de>; Albert ARIBAUD > >> <albert.u.b...@aribaud.net>; Prabhakar Kushwaha > >> <prabha...@freescale.com>; york sun <york....@nxp.com>; Mingkai Hu > >> <mingkai...@nxp.com>; Rajesh Bhagat <rajesh.bha...@nxp.com>; Michal > >> Simek <michal.si...@xilinx.com>; felipe.ba...@linux.intel.com > >> Subject: Re: [PATCH v2 2/4] usb: dwc3: Add helper functions to enable > >> snooping and burst settings > >> > >> Hi, > >> > >> On 6 June 2016 at 03:16, Rajat Srivastava <rajat.srivast...@nxp.com> wrote: > >> > Adds helper functions to enable snooping and outstanding burst beat > >> > settings. > >> > > >> > Signed-off-by: Rajat Srivastava <rajat.srivast...@nxp.com> > >> > Signed-off-by: Rajesh Bhagat <rajesh.bha...@nxp.com> > >> > --- > >> > Changes in v2: > >> > - Removes SoC specific flags and added helper functions > >> > > >> > 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..0b3c596 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) { > > > > Hello Simon, > > > >> > >> Ick - can this be converted to use driver model? > >> > > > > We have not moved to use driver model yet :( . Is it possible to pass > > these register settings by some other mechanism ? >
Hello Simon, > Not that I know of - is there any reason not to convert to driver model now? > Reason is, the dwc3 driver itself as not moved to CONFIG_DM_USB, and seems to be in progress by patch "driver model bring-up of dwc3 usb peripheral" (sent by Mugunthan V N). Best Regards, Rajesh Bhagat > > > > Best Regards, > > Rajesh Bhagat > > > >> > + 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 = reg | DWC3_SNOOP_ENABLE; > >> > + else > >> > + reg = 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; > >> > -- > >> > 2.6.2.198.g614a2ac > >> > > >> > >> Regards, > >> Simon > > Regards, > Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot