diff mbox series

[U-Boot,10/16] usb: dwc2: Add function for session B check

Message ID 1553870544-15734-11-git-send-email-patrick.delaunay@st.com
State Accepted
Commit 2d76160f049c42087011cfa0e6e878aa2ed6b406
Delegated to: Lukasz Majewski
Headers show
Series usb: convert dwc2 gadget to driver model, used in stm32mp1 | expand

Commit Message

Patrick DELAUNAY March 29, 2019, 2:42 p.m. UTC
Add a new function to check the session B validity, to be use to check
cable connection.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
---

 drivers/usb/gadget/dwc2_udc_otg.c | 9 +++++++++
 include/usb/dwc2_udc.h            | 2 ++
 2 files changed, 11 insertions(+)

Comments

Lukasz Majewski April 8, 2019, 9:55 p.m. UTC | #1
On Fri, 29 Mar 2019 15:42:18 +0100
Patrick Delaunay <patrick.delaunay@st.com> wrote:

> Add a new function to check the session B validity, to be use to check
> cable connection.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> ---
> 
>  drivers/usb/gadget/dwc2_udc_otg.c | 9 +++++++++
>  include/usb/dwc2_udc.h            | 2 ++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/drivers/usb/gadget/dwc2_udc_otg.c
> b/drivers/usb/gadget/dwc2_udc_otg.c index 146f11e..b1efad1 100644
> --- a/drivers/usb/gadget/dwc2_udc_otg.c
> +++ b/drivers/usb/gadget/dwc2_udc_otg.c
> @@ -1151,4 +1151,13 @@ U_BOOT_DRIVER(dwc2_udc_otg) = {
>  	.platdata_auto_alloc_size = sizeof(struct
> dwc2_plat_otg_data), .priv_auto_alloc_size = sizeof(struct
> dwc2_priv_data), };
> +
> +int dwc2_udc_B_session_valid(struct udevice *dev)
> +{
> +	struct dwc2_plat_otg_data *platdata = dev_get_platdata(dev);
> +	struct dwc2_usbotg_reg *usbotg_reg =
> +		(struct dwc2_usbotg_reg *)platdata->regs_otg;
> +
> +	return readl(&usbotg_reg->gotgctl) & B_SESSION_VALID;
> +}
>  #endif /* CONFIG_IS_ENABLED(DM_USB_GADGET) */
> diff --git a/include/usb/dwc2_udc.h b/include/usb/dwc2_udc.h
> index 3cf20ea..8a426b6 100644
> --- a/include/usb/dwc2_udc.h
> +++ b/include/usb/dwc2_udc.h
> @@ -27,4 +27,6 @@ struct dwc2_plat_otg_data {
>  
>  int dwc2_udc_probe(struct dwc2_plat_otg_data *pdata);
>  
> +int dwc2_udc_B_session_valid(struct udevice *dev);
> +
>  #endif	/* __DWC2_USB_GADGET */

Reviewed-by: Lukasz Majewski <lukma@denx.de>


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@denx.de
diff mbox series

Patch

diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c
index 146f11e..b1efad1 100644
--- a/drivers/usb/gadget/dwc2_udc_otg.c
+++ b/drivers/usb/gadget/dwc2_udc_otg.c
@@ -1151,4 +1151,13 @@  U_BOOT_DRIVER(dwc2_udc_otg) = {
 	.platdata_auto_alloc_size = sizeof(struct dwc2_plat_otg_data),
 	.priv_auto_alloc_size = sizeof(struct dwc2_priv_data),
 };
+
+int dwc2_udc_B_session_valid(struct udevice *dev)
+{
+	struct dwc2_plat_otg_data *platdata = dev_get_platdata(dev);
+	struct dwc2_usbotg_reg *usbotg_reg =
+		(struct dwc2_usbotg_reg *)platdata->regs_otg;
+
+	return readl(&usbotg_reg->gotgctl) & B_SESSION_VALID;
+}
 #endif /* CONFIG_IS_ENABLED(DM_USB_GADGET) */
diff --git a/include/usb/dwc2_udc.h b/include/usb/dwc2_udc.h
index 3cf20ea..8a426b6 100644
--- a/include/usb/dwc2_udc.h
+++ b/include/usb/dwc2_udc.h
@@ -27,4 +27,6 @@  struct dwc2_plat_otg_data {
 
 int dwc2_udc_probe(struct dwc2_plat_otg_data *pdata);
 
+int dwc2_udc_B_session_valid(struct udevice *dev);
+
 #endif	/* __DWC2_USB_GADGET */