usb: chipidea: add CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS flag
Subsystems (2)
PATCH 1/1 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 Tomer Maimon <[email protected]>
--- drivers/usb/chipidea/otg.c | 5 ++++- include/linux/usb/chipidea.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-)
drivers/usb/chipidea/otg.c +4 -1
@@ -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);
include/linux/usb/chipidea.h +1 -0
@@ -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
Signature · 1 line
2.33.0
Quoted 5 lines · Tomer Maimon
Adding
CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYSflag to modify thevbus_activeparameter to active in case the ChipIdea USB IP role is device-only and there is no otgsc register.Signed-off-by Tomer Maimon <[email protected]>
I think it would make sense to include this patch as part of the patchset that uses the functionality to enable NPCM support, so that reviewers would immediately see the context in which it is used.
Jonathan
Quoted 37 lines
--- drivers/usb/chipidea/otg.c | 5 ++++- include/linux/usb/chipidea.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-)drivers/usb/chipidea/otg.c +4
-1@@ -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);include/linux/usb/chipidea.h +1
-0@@ -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 1Signature · 1 line
2.33.0