On 23-09-27 12:55:07, Tomer Maimon wrote: > 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: Tomer Maimon <tmaimon77@xxxxxxxxx> Acked-by: Peter Chen <peter.chen@xxxxxxxxxx> Peter > --- > drivers/usb/chipidea/otg.c | 5 ++++- > include/linux/usb/chipidea.h | 1 + > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/chipidea/otg.c b/drivers/usb/chipidea/otg.c > index f5490f2a5b6b..647e98f4e351 100644 > --- a/drivers/usb/chipidea/otg.c > +++ b/drivers/usb/chipidea/otg.c > @@ -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); > diff --git a/include/linux/usb/chipidea.h b/include/linux/usb/chipidea.h > index 0b4f2d5faa08..5a7f96684ea2 100644 > --- a/include/linux/usb/chipidea.h > +++ b/include/linux/usb/chipidea.h > @@ -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 > -- > 2.33.0 > -- Thanks, Peter Chen