From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Mon, 8 Apr 2019 23:55:32 +0200 Subject: [U-Boot] [PATCH 09/16] usb: dwc2: Add force-b-session-valid support In-Reply-To: <1553870544-15734-10-git-send-email-patrick.delaunay@st.com> References: <1553870544-15734-1-git-send-email-patrick.delaunay@st.com> <1553870544-15734-10-git-send-email-patrick.delaunay@st.com> Message-ID: <20190408235532.7a3733e4@jawa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Fri, 29 Mar 2019 15:42:17 +0100 Patrick Delaunay wrote: > Handle "force-b-session-valid" property from DT. > > Signed-off-by: Patrick Delaunay > --- > > drivers/usb/gadget/dwc2_udc_otg.c | 9 +++++++++ > drivers/usb/gadget/dwc2_udc_otg_regs.h | 8 ++++++-- > include/usb/dwc2_udc.h | 1 + > 3 files changed, 16 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/gadget/dwc2_udc_otg.c > b/drivers/usb/gadget/dwc2_udc_otg.c index 8169fdb..146f11e 100644 > --- a/drivers/usb/gadget/dwc2_udc_otg.c > +++ b/drivers/usb/gadget/dwc2_udc_otg.c > @@ -1034,6 +1034,9 @@ static int > dwc2_udc_otg_ofdata_to_platdata(struct udevice *dev) > "g-np-tx-fifo-size", 0); platdata->tx_fifo_sz = > dev_read_u32_default(dev, "g-tx-fifo-size", 0); > + platdata->force_b_session_valid = > + dev_read_bool(dev, "force-b-session-valid"); > + > return 0; > } > > @@ -1088,6 +1091,8 @@ static int dwc2_udc_otg_probe(struct udevice > *dev) { > struct dwc2_plat_otg_data *platdata = dev_get_platdata(dev); > struct dwc2_priv_data *priv = dev_get_priv(dev); > + struct dwc2_usbotg_reg *usbotg_reg = > + (struct dwc2_usbotg_reg *)platdata->regs_otg; > int ret; > > ret = dwc2_udc_otg_clk_init(dev, &priv->clks); > @@ -1102,6 +1107,10 @@ static int dwc2_udc_otg_probe(struct udevice > *dev) if (ret) > return ret; > > + if (platdata->force_b_session_valid) > + /* Override B session bits : value and enable */ > + setbits_le32(&usbotg_reg->gotgctl, B_VALOEN | > B_VALOVAL); + > ret = dwc2_udc_probe(platdata); > if (ret) > return ret; > diff --git a/drivers/usb/gadget/dwc2_udc_otg_regs.h > b/drivers/usb/gadget/dwc2_udc_otg_regs.h index a1829b3..0aee4ee 100644 > --- a/drivers/usb/gadget/dwc2_udc_otg_regs.h > +++ b/drivers/usb/gadget/dwc2_udc_otg_regs.h > @@ -83,8 +83,12 @@ struct dwc2_usbotg_reg { > /*definitions related to CSR setting */ > > /* DWC2_UDC_OTG_GOTGCTL */ > -#define B_SESSION_VALID (0x1<<19) > -#define A_SESSION_VALID (0x1<<18) > +#define B_SESSION_VALID BIT(19) > +#define A_SESSION_VALID BIT(18) > +#define B_VALOVAL BIT(7) > +#define B_VALOEN BIT(6) > +#define A_VALOVAL BIT(5) > +#define A_VALOEN BIT(4) > > /* DWC2_UDC_OTG_GAHBCFG */ > #define PTXFE_HALF (0<<8) > diff --git a/include/usb/dwc2_udc.h b/include/usb/dwc2_udc.h > index 4068de0..3cf20ea 100644 > --- a/include/usb/dwc2_udc.h > +++ b/include/usb/dwc2_udc.h > @@ -22,6 +22,7 @@ struct dwc2_plat_otg_data { > unsigned int rx_fifo_sz; > unsigned int np_tx_fifo_sz; > unsigned int tx_fifo_sz; > + bool force_b_session_valid; > }; > > int dwc2_udc_probe(struct dwc2_plat_otg_data *pdata); Reviewed-by: Lukasz Majewski Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: