diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-05-26 11:27:14 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-05-26 11:27:14 +0300 |
commit | 37f6c193e626c93c018e93dc4fe9e4fb454e73d1 (patch) | |
tree | 8f759bf7bf52a64bd4f2afde5e94a4cf83071a52 /drivers/usb/chipidea/ci_hdrc_imx.c | |
parent | e4befc121df03dc8ed2ac1031c98f9538e244bae (diff) | |
parent | 6dbbbccdba6118b30837c42f3d356ecf0aaf4a1f (diff) | |
download | linux-37f6c193e626c93c018e93dc4fe9e4fb454e73d1.tar.xz |
Merge tag 'usb-ci-v5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-next
Peter writes:
- Some improvments for ci_hdrc_usb2.c
- Support imx7d USB charger
- Add software sg support for UDC
- Enable user trigger role switch
* tag 'usb-ci-v5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb:
usb: chipidea: Enable user-space triggered role-switching
usb: chipidea: udc: add software sg list support
usb: chipidea: usbmisc_imx: using different ops for imx7d and imx7ulp
usb: chipidea: pull down dp for possible charger detection operation
usb: chipidea: introduce imx7d USB charger detection
usb: chipidea: introduce CI_HDRC_CONTROLLER_VBUS_EVENT glue layer use
usb: chipidea: usb2: remove unneeded semicolon
usb: chipidea: allow disabling glue drivers if EMBEDDED
usb: chipidea: usb2: absorb zevio glue driver
usb: chipidea: usb2: make clock optional
usb: chipidea: usb2: fix formatting
usb: chipidea: usb2: constify zynq_pdata
usb: chipidea: core: show the real pointer value for register
usb: chipidea: core: refine the description for this driver
usb: chipidea: udc: fix the kernel doc for udc.h
Diffstat (limited to 'drivers/usb/chipidea/ci_hdrc_imx.c')
-rw-r--r-- | drivers/usb/chipidea/ci_hdrc_imx.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c index a479af3ae31d..5ae16368a0c7 100644 --- a/drivers/usb/chipidea/ci_hdrc_imx.c +++ b/drivers/usb/chipidea/ci_hdrc_imx.c @@ -271,6 +271,7 @@ static int ci_hdrc_imx_notify_event(struct ci_hdrc *ci, unsigned int event) struct device *dev = ci->dev->parent; struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); int ret = 0; + struct imx_usbmisc_data *mdata = data->usbmisc_data; switch (event) { case CI_HDRC_IMX_HSIC_ACTIVE_EVENT: @@ -284,11 +285,19 @@ static int ci_hdrc_imx_notify_event(struct ci_hdrc *ci, unsigned int event) } break; case CI_HDRC_IMX_HSIC_SUSPEND_EVENT: - ret = imx_usbmisc_hsic_set_connect(data->usbmisc_data); + ret = imx_usbmisc_hsic_set_connect(mdata); if (ret) dev_err(dev, "hsic_set_connect failed, err=%d\n", ret); break; + case CI_HDRC_CONTROLLER_VBUS_EVENT: + if (ci->vbus_active) + ret = imx_usbmisc_charger_detection(mdata, true); + else + ret = imx_usbmisc_charger_detection(mdata, false); + if (ci->usb_phy) + schedule_work(&ci->usb_phy->chg_work); + break; default: break; } @@ -414,6 +423,8 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev) } pdata.usb_phy = data->phy; + if (data->usbmisc_data) + data->usbmisc_data->usb_phy = data->phy; if ((of_device_is_compatible(np, "fsl,imx53-usb") || of_device_is_compatible(np, "fsl,imx51-usb")) && pdata.usb_phy && |