Commit 2978cc1f authored by Tomer Maimon's avatar Tomer Maimon Committed by Greg Kroah-Hartman
Browse files

usb: chipidea: add CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS flag



Adding CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS flag to modify the vbus_active
parameter to active in case the ChipIdea USB IP role is device-only and
there is no otgsc register.

Signed-off-by: default avatarTomer Maimon <tmaimon77@gmail.com>
Acked-by: default avatarPeter Chen <peter.chen@kernel.org>
Link: https://lore.kernel.org/r/20231017195903.1665260-2-tmaimon77@gmail.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4936eb75
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -130,8 +130,11 @@ enum ci_role ci_otg_role(struct ci_hdrc *ci)

void ci_handle_vbus_change(struct ci_hdrc *ci)
{
	if (!ci->is_otg)
	if (!ci->is_otg) {
		if (ci->platdata->flags & CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS)
			usb_gadget_vbus_connect(&ci->gadget);
		return;
	}

	if (hw_read_otgsc(ci, OTGSC_BSV) && !ci->vbus_active)
		usb_gadget_vbus_connect(&ci->gadget);
+1 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ struct ci_hdrc_platform_data {
#define CI_HDRC_PMQOS			BIT(15)
#define CI_HDRC_PHY_VBUS_CONTROL	BIT(16)
#define CI_HDRC_HAS_PORTSC_PEC_MISSED	BIT(17)
#define CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS	BIT(18)
	enum usb_dr_mode	dr_mode;
#define CI_HDRC_CONTROLLER_RESET_EVENT		0
#define CI_HDRC_CONTROLLER_STOPPED_EVENT	1