[SRU,Eoan,linux-raspi2,1/1] UBUNTU: [Config] raspi2: USB_DWC2_DUAL_ROLE=y
diff mbox series

Message ID 20200210023658.12999-2-hui.wang@canonical.com
State New
Headers show
Series
  • set USB_DWC2_DUAL_ROLE=y
Related show

Commit Message

Hui Wang Feb. 10, 2020, 2:36 a.m. UTC
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(-)

Comments

Stefan Bader Feb. 14, 2020, 2:01 p.m. UTC | #1
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
>

Patch
diff mbox series

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