Hi Rajesh,
On 13 June 2016 at 22:09, Rajesh Bhagat <[email protected]> wrote:
>
>
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]] On Behalf Of Simon Glass
>> Sent: Friday, June 10, 2016 6:05 AM
>> To: Rajat Srivastava <[email protected]>
>> Cc: U-Boot Mailing List <[email protected]>; Lukasz Majewski
>> <[email protected]>; Marek VaĊĦut <[email protected]>; Albert ARIBAUD
>> <[email protected]>; Prabhakar Kushwaha <[email protected]>;
>> york sun <[email protected]>; Mingkai Hu <[email protected]>; Rajesh Bhagat
>> <[email protected]>; Michal Simek <[email protected]>;
>> [email protected]
>> 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 <[email protected]> wrote:
>> > Adds helper functions to enable snooping and outstanding burst beat
>> > settings.
>> >
>> > Signed-off-by: Rajat Srivastava <[email protected]>
>> > Signed-off-by: Rajesh Bhagat <[email protected]>
>> > ---
>> > 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 ?
Not that I know of - is there any reason not to convert to driver model now?
>
> 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
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot