Message ID | 20200210023658.12999-2-hui.wang@canonical.com |
---|---|
State | New |
Headers | show |
Series | set USB_DWC2_DUAL_ROLE=y | expand |
On 10.02.20 03:36, Hui Wang wrote: > BugLink: https://bugs.launchpad.net/bugs/1861070 > > On the rpi4B board, the USB-C power supply port also works as an OTG > port. And the driver dwc_otg is for this port by default, this driver > can only work in the host mode, if users want to use the peripheral > or OTG mode, users could add the line below in the config.txt: > dtoverlay=dwc2,dr_mode=[host|otg|peripheral] > > Then the driver dwc2 will drive that port, but our original config > set the dwc2 to host unconditionally in the kernel driver, now > changing this setting, let dwc2 work in dual_role mode, after this > change, that port could work in host|otg|peripheral mode according to > the setting in the config.txt. > > BTW, so far in the RPI series boards, only PiZero and RPI4B boards > have OTG port. > > Signed-off-by: Hui Wang <hui.wang@canonical.com> Acked-by: Stefan Bader <stefan.bader@canonical.com> > --- > debian.raspi2/config/annotations | 7 +++++-- > debian.raspi2/config/config.common.ubuntu | 4 ++-- > 2 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/debian.raspi2/config/annotations b/debian.raspi2/config/annotations > index 5ef21cd41dfd..83095d85417a 100644 > --- a/debian.raspi2/config/annotations > +++ b/debian.raspi2/config/annotations > @@ -7308,9 +7308,12 @@ CONFIG_USB_DWC2_DEBUG policy<{'amd64': 'n', 'arm64': ' > CONFIG_USB_DWC2_TRACK_MISSED_SOFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}> > > # Menu: Device Drivers >> USB support >> Support for Host-side USB >> DesignWare USB2 DRD Core Support >> DWC2 Mode Selection > -CONFIG_USB_DWC2_HOST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> > +CONFIG_USB_DWC2_HOST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}> > CONFIG_USB_DWC2_PERIPHERAL policy<{'armhf': 'n'}> > -CONFIG_USB_DWC2_DUAL_ROLE policy<{'armhf': 'n'}> > +CONFIG_USB_DWC2_DUAL_ROLE policy<{'arm64': 'y', 'armhf': 'y'}> > + > +# > +CONFIG_USB_DWC2_DUAL_ROLE note<LP:1861070> > > # Menu: Device Drivers >> USB support >> Support for Host-side USB >> DesignWare USB3 DRD Core Support > CONFIG_USB_DWC3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}> > diff --git a/debian.raspi2/config/config.common.ubuntu b/debian.raspi2/config/config.common.ubuntu > index ec0807021ad8..1a175bff319d 100644 > --- a/debian.raspi2/config/config.common.ubuntu > +++ b/debian.raspi2/config/config.common.ubuntu > @@ -7221,8 +7221,8 @@ CONFIG_USB_DSBR=m > # CONFIG_USB_DUMMY_HCD is not set > CONFIG_USB_DWC2=m > # CONFIG_USB_DWC2_DEBUG is not set > -# CONFIG_USB_DWC2_DUAL_ROLE is not set > -CONFIG_USB_DWC2_HOST=y > +CONFIG_USB_DWC2_DUAL_ROLE=y > +# CONFIG_USB_DWC2_HOST is not set > # CONFIG_USB_DWC2_PCI is not set > # CONFIG_USB_DWC2_PERIPHERAL is not set > # CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set >
diff --git a/debian.raspi2/config/annotations b/debian.raspi2/config/annotations index 5ef21cd41dfd..83095d85417a 100644 --- a/debian.raspi2/config/annotations +++ b/debian.raspi2/config/annotations @@ -7308,9 +7308,12 @@ CONFIG_USB_DWC2_DEBUG policy<{'amd64': 'n', 'arm64': ' CONFIG_USB_DWC2_TRACK_MISSED_SOFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}> # Menu: Device Drivers >> USB support >> Support for Host-side USB >> DesignWare USB2 DRD Core Support >> DWC2 Mode Selection -CONFIG_USB_DWC2_HOST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> +CONFIG_USB_DWC2_HOST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}> CONFIG_USB_DWC2_PERIPHERAL policy<{'armhf': 'n'}> -CONFIG_USB_DWC2_DUAL_ROLE policy<{'armhf': 'n'}> +CONFIG_USB_DWC2_DUAL_ROLE policy<{'arm64': 'y', 'armhf': 'y'}> + +# +CONFIG_USB_DWC2_DUAL_ROLE note<LP:1861070> # Menu: Device Drivers >> USB support >> Support for Host-side USB >> DesignWare USB3 DRD Core Support CONFIG_USB_DWC3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}> diff --git a/debian.raspi2/config/config.common.ubuntu b/debian.raspi2/config/config.common.ubuntu index ec0807021ad8..1a175bff319d 100644 --- a/debian.raspi2/config/config.common.ubuntu +++ b/debian.raspi2/config/config.common.ubuntu @@ -7221,8 +7221,8 @@ CONFIG_USB_DSBR=m # CONFIG_USB_DUMMY_HCD is not set CONFIG_USB_DWC2=m # CONFIG_USB_DWC2_DEBUG is not set -# CONFIG_USB_DWC2_DUAL_ROLE is not set -CONFIG_USB_DWC2_HOST=y +CONFIG_USB_DWC2_DUAL_ROLE=y +# CONFIG_USB_DWC2_HOST is not set # CONFIG_USB_DWC2_PCI is not set # CONFIG_USB_DWC2_PERIPHERAL is not set # CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
BugLink: https://bugs.launchpad.net/bugs/1861070 On the rpi4B board, the USB-C power supply port also works as an OTG port. And the driver dwc_otg is for this port by default, this driver can only work in the host mode, if users want to use the peripheral or OTG mode, users could add the line below in the config.txt: dtoverlay=dwc2,dr_mode=[host|otg|peripheral] Then the driver dwc2 will drive that port, but our original config set the dwc2 to host unconditionally in the kernel driver, now changing this setting, let dwc2 work in dual_role mode, after this change, that port could work in host|otg|peripheral mode according to the setting in the config.txt. BTW, so far in the RPI series boards, only PiZero and RPI4B boards have OTG port. Signed-off-by: Hui Wang <hui.wang@canonical.com> --- debian.raspi2/config/annotations | 7 +++++-- debian.raspi2/config/config.common.ubuntu | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-)