> >
> >
> > > 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;
> >
> > We already have struct ci_hdrc_cable at this structure, please use it
> > instead.
>
> I am going to extend ci_hdrc_cable also for type-C case, which has no edev,
> So it's
> OK to add a flag in ci_hdrc_cable for both edev and type-C to indicate
> external
> block is used?
>
Why there is no external cable (edev) for Type-C case? If there is no external
cable
phandle at controller dts, how driver knows the Type-C connection occurs?
Peter