lkml.org 
[lkml]   [2023]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v1] usb: chipidea: add CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS flag
    Date
    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@gmail.com>
    ---
    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
    \
     
     \ /
      Last update: 2023-09-18 18:40    [W:4.635 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site