mirror of https://gitee.com/openkylin/linux.git
usb: chipidea: Configure phy for appropriate mode
When the qcom chipidea controller is used with an extcon, we need to signal device mode or host mode to the phy so it can configure itself for the correct mode. This should be done after the phy is powered up, so that the register writes work correctly. Add in the appropriate phy_set_mode() call here. Cc: Peter Chen <peter.chen@nxp.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org> Signed-off-by: Peter Chen <peter.chen@nxp.com>
This commit is contained in:
parent
30a9566a4f
commit
490b63e6de
|
@ -427,13 +427,21 @@ void ci_platform_configure(struct ci_hdrc *ci)
|
|||
is_device_mode = hw_read(ci, OP_USBMODE, USBMODE_CM) == USBMODE_CM_DC;
|
||||
is_host_mode = hw_read(ci, OP_USBMODE, USBMODE_CM) == USBMODE_CM_HC;
|
||||
|
||||
if (is_device_mode &&
|
||||
(ci->platdata->flags & CI_HDRC_DISABLE_DEVICE_STREAMING))
|
||||
hw_write(ci, OP_USBMODE, USBMODE_CI_SDIS, USBMODE_CI_SDIS);
|
||||
if (is_device_mode) {
|
||||
phy_set_mode(ci->phy, PHY_MODE_USB_DEVICE);
|
||||
|
||||
if (is_host_mode &&
|
||||
(ci->platdata->flags & CI_HDRC_DISABLE_HOST_STREAMING))
|
||||
hw_write(ci, OP_USBMODE, USBMODE_CI_SDIS, USBMODE_CI_SDIS);
|
||||
if (ci->platdata->flags & CI_HDRC_DISABLE_DEVICE_STREAMING)
|
||||
hw_write(ci, OP_USBMODE, USBMODE_CI_SDIS,
|
||||
USBMODE_CI_SDIS);
|
||||
}
|
||||
|
||||
if (is_host_mode) {
|
||||
phy_set_mode(ci->phy, PHY_MODE_USB_HOST);
|
||||
|
||||
if (ci->platdata->flags & CI_HDRC_DISABLE_HOST_STREAMING)
|
||||
hw_write(ci, OP_USBMODE, USBMODE_CI_SDIS,
|
||||
USBMODE_CI_SDIS);
|
||||
}
|
||||
|
||||
if (ci->platdata->flags & CI_HDRC_FORCE_FULLSPEED) {
|
||||
if (ci->hw_bank.lpm)
|
||||
|
|
Loading…
Reference in New Issue