Add 2 flags for id and vbus if the state is from external blocks
instead of OTG block inside of USB controller.

Signed-off-by: Li Jun <jun...@nxp.com>
---
 drivers/usb/chipidea/core.c  | 2 ++
 include/linux/usb/chipidea.h | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index 7bfcbb2..0bfa850 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -706,6 +706,7 @@ static int ci_get_platdata(struct device *dev,
        cable->edev = ext_vbus;
 
        if (!IS_ERR(ext_vbus)) {
+               platdata->ext_vbus = true;
                ret = extcon_get_state(cable->edev, EXTCON_USB);
                if (ret)
                        cable->connected = true;
@@ -718,6 +719,7 @@ static int ci_get_platdata(struct device *dev,
        cable->edev = ext_id;
 
        if (!IS_ERR(ext_id)) {
+               platdata->ext_id = true;
                ret = extcon_get_state(cable->edev, EXTCON_USB_HOST);
                if (ret)
                        cable->connected = true;
diff --git a/include/linux/usb/chipidea.h b/include/linux/usb/chipidea.h
index 911e05a..cd72d82 100644
--- a/include/linux/usb/chipidea.h
+++ b/include/linux/usb/chipidea.h
@@ -70,6 +70,10 @@ struct ci_hdrc_platform_data {
        struct regulator        *reg_vbus;
        struct usb_otg_caps     ci_otg_caps;
        bool                    tpl_support;
+       /* ID state is from external event out side of USB */
+       bool                    ext_id;
+       /* VBUS state is from external event out side of USB */
+       bool                    ext_vbus;
        /* interrupt threshold setting */
        u32                     itc_setting;
        u32                     ahb_burst_config;
-- 
2.7.4

Reply via email to