[PATCH 3/3] ARM: dts: colibri-imx7: add usb dual-role switch capability

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Jul 13 05:46:04 EDT 2020


Hello Philippe,

On 7/10/20 3:24 PM, Philippe Schenker wrote:
> Since the runtime-pm wakeup bug was fixed in
> drivers/usb/chipidea/core.c usb dual-role host/device switching is
> working. So make use of it.
> 
> Signed-off-by: Philippe Schenker <philippe.schenker at toradex.com>
> 
> ---
> 
>  arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi | 9 +++++++++
>  arch/arm/boot/dts/imx7-colibri.dtsi         | 4 ++--
>  2 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi b/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
> index 97601375f264..db56a532a34a 100644
> --- a/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
> +++ b/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
> @@ -20,6 +20,14 @@ clk16m: clk16m {
>  		clock-frequency = <16000000>;
>  	};
>  
> +	extcon_usbc_det: usbc_det {
> +		compatible = "linux,extcon-usb-gpio";

According to 4602f3bff266 ("usb: common: add USB GPIO based connection detection driver"):
"the old way using extcon to support USB Dual-Role switch is now deprecated
 when use Type-B connector."

Have you considered using a compatible = "gpio-usb-b-connector" child node instead?

Cheers,
Ahmad

> +		id-gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_usbc_det>;
> +	};
> +
> +
>  	gpio-keys {
>  		compatible = "gpio-keys";
>  		pinctrl-names = "default";
> @@ -174,6 +182,7 @@ &uart3 {
>  };
>  
>  &usbotg1 {
> +	extcon = <0>, <&extcon_usbc_det>;
>  	status = "okay";
>  };
>  
> diff --git a/arch/arm/boot/dts/imx7-colibri.dtsi b/arch/arm/boot/dts/imx7-colibri.dtsi
> index e18e89dec879..caea90d2421f 100644
> --- a/arch/arm/boot/dts/imx7-colibri.dtsi
> +++ b/arch/arm/boot/dts/imx7-colibri.dtsi
> @@ -457,7 +457,7 @@ &uart3 {
>  };
>  
>  &usbotg1 {
> -	dr_mode = "host";
> +	dr_mode = "otg";
>  };
>  
>  &usdhc1 {
> @@ -486,7 +486,7 @@ &usdhc3 {
>  &iomuxc {
>  	pinctrl-names = "default";
>  	pinctrl-0 = <&pinctrl_gpio1 &pinctrl_gpio2 &pinctrl_gpio3 &pinctrl_gpio4
> -		     &pinctrl_gpio7 &pinctrl_usbc_det>;
> +		     &pinctrl_gpio7>;
>  
>  	pinctrl_gpio1: gpio1-grp {
>  		fsl,pins = <
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the linux-arm-kernel mailing list