diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/820-usb-0002-MLK-14285-1-usb-phy-add-usb-mode-for-usb_phy.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/820-usb-0002-MLK-14285-1-usb-phy-add-usb-mode-for-usb_phy.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/820-usb-0002-MLK-14285-1-usb-phy-add-usb-mode-for-usb_phy.patch b/target/linux/layerscape/patches-5.4/820-usb-0002-MLK-14285-1-usb-phy-add-usb-mode-for-usb_phy.patch new file mode 100644 index 0000000000..d61388cfa5 --- /dev/null +++ b/target/linux/layerscape/patches-5.4/820-usb-0002-MLK-14285-1-usb-phy-add-usb-mode-for-usb_phy.patch @@ -0,0 +1,59 @@ +From ec89a34069e9d33dd8f809c02a12ffb619d67e1f Mon Sep 17 00:00:00 2001 +From: Li Jun <jun.li@nxp.com> +Date: Wed, 12 Apr 2017 05:31:17 +0800 +Subject: [PATCH] MLK-14285-1 usb: phy: add usb mode for usb_phy + +USB phy driver may need to know the current working mode of +the controller, and does some different settings according to +host mode or device mode. + +Signed-off-by: Li Jun <jun.li@nxp.com> +(cherry picked from commit 2286cb30feedd6f4a5cb82a0f0af5aa3a04ab698) +Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com> +Signed-off-by: Srikanth Krishnakar <Srikanth_Krishnakar@mentor.com> +--- + include/linux/usb/phy.h | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +--- a/include/linux/usb/phy.h ++++ b/include/linux/usb/phy.h +@@ -63,6 +63,13 @@ enum usb_otg_state { + OTG_STATE_A_VBUS_ERR, + }; + ++/* The usb role of phy to be working with */ ++enum usb_current_mode { ++ CUR_USB_MODE_NONE, ++ CUR_USB_MODE_HOST, ++ CUR_USB_MODE_DEVICE, ++}; ++ + struct usb_phy; + struct usb_otg; + +@@ -161,6 +168,9 @@ struct usb_phy { + int (*notify_resume)(struct usb_phy *x, + enum usb_device_speed speed); + ++ int (*set_mode)(struct usb_phy *x, ++ enum usb_current_mode mode); ++ + }; + + /* for board-specific init logic */ +@@ -219,6 +229,15 @@ usb_phy_vbus_off(struct usb_phy *x) + return x->set_vbus(x, false); + } + ++static inline int ++usb_phy_set_mode(struct usb_phy *x, enum usb_current_mode mode) ++{ ++ if (!x || !x->set_mode) ++ return 0; ++ ++ return x->set_mode(x, mode); ++} ++ + /* for usb host and peripheral controller drivers */ + #if IS_ENABLED(CONFIG_USB_PHY) + extern struct usb_phy *usb_get_phy(enum usb_phy_type type); |