linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al.
@ 2022-09-28  7:33 Marcel Ziswiler
  2022-09-28  7:33 ` [PATCH v2 1/5] arm: dts: colibri-imx6: usb dual-role switching Marcel Ziswiler
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Marcel Ziswiler @ 2022-09-28  7:33 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Marcel Ziswiler, Alistair Francis, Arnd Bergmann, Fabio Estevam,
	Johann Neuhauser, Krzysztof Kozlowski, Max Krummenacher,
	NXP Linux Team, Neil Armstrong, Pengutronix Kernel Team,
	Rob Herring, Russell King, Sascha Hauer, Shawn Guo, devicetree,
	linux-kernel

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>


This series is an assortment of USB dual-role specific commits as
follows:

Introduce USBC_DET GPIO based USB dual-role aka device/host switching.

Move USB VBUS supply from single carrier board to module level device
tree. This pin is as per Colibri module family standard.

Specify USBH_PEN GPIO being active-low rather than active-high
(cosmetic only).

Remove spurious debounce property from linux,extcon-usb-gpio. That
commit is actually for Colibri iMX7.

Changes in v2:
- Dropped fixes tag as this change is rather cosmetic.
- Add new commit also actually enabling CONFIG_EXTCON_USB_GPIO.

Marcel Ziswiler (4):
  arm: dts: colibri-imx6: move vbus-supply to module level device tree
  arm: dts: colibri-imx6: specify usbh_pen gpio being active-low
  arm: dts: imx7-colibri: remove spurious debounce property
  ARM: imx_v6_v7_defconfig: Enable USB GPIO extcon support

Philippe Schenker (1):
  arm: dts: colibri-imx6: usb dual-role switching

 arch/arm/boot/dts/imx6dl-colibri-aster.dts   |  1 -
 arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts |  1 -
 arch/arm/boot/dts/imx6dl-colibri-iris.dts    |  1 -
 arch/arm/boot/dts/imx6qdl-colibri.dtsi       | 22 ++++++++++++++++----
 arch/arm/boot/dts/imx7-colibri.dtsi          |  1 -
 arch/arm/configs/imx_v6_v7_defconfig         |  1 +
 6 files changed, 19 insertions(+), 8 deletions(-)

-- 
2.36.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/5] arm: dts: colibri-imx6: usb dual-role switching
  2022-09-28  7:33 [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al Marcel Ziswiler
@ 2022-09-28  7:33 ` Marcel Ziswiler
  2022-09-28  7:33 ` [PATCH v2 2/5] arm: dts: colibri-imx6: move vbus-supply to module level device tree Marcel Ziswiler
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Marcel Ziswiler @ 2022-09-28  7:33 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Philippe Schenker, Marcel Ziswiler, Fabio Estevam,
	Krzysztof Kozlowski, NXP Linux Team, Pengutronix Kernel Team,
	Rob Herring, Sascha Hauer, Shawn Guo, devicetree, linux-kernel

From: Philippe Schenker <philippe.schenker@toradex.com>

Introduce USBC_DET GPIO based USB dual-role aka device/host switching.

While at it re-work pinmux comment adding SODIMM number to the USBC_DET
entry.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
---

(no changes since v1)

 arch/arm/boot/dts/imx6qdl-colibri.dtsi | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
index 023e76215064..3e98b5da0cc6 100644
--- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -24,6 +24,13 @@ backlight: backlight {
 		status = "disabled";
 	};
 
+	extcon_usbc_det: usbc-det {
+		compatible = "linux,extcon-usb-gpio";
+		id-gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>; /* SODIMM 137 / USBC_DET */
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usbc_det>;
+	};
+
 	gpio-keys {
 		compatible = "gpio-keys";
 		pinctrl-names = "default";
@@ -670,9 +677,11 @@ &uart3 {
 	status = "disabled";
 };
 
+/* Colibri USBC */
 &usbotg {
 	disable-over-current;
-	dr_mode = "peripheral";
+	dr_mode = "otg";
+	extcon = <0>, <&extcon_usbc_det>;
 	status = "disabled";
 };
 
@@ -1055,7 +1064,7 @@ MX6QDL_PAD_SD4_CMD__UART3_RX_DATA	0x1b0b1
 
 	pinctrl_usbc_det: usbcdetgrp {
 		fsl,pins = <
-			/* USBC_DET */
+			/* SODIMM 137 / USBC_DET */
 			MX6QDL_PAD_GPIO_17__GPIO7_IO12		0x1b0b0
 			/* USBC_DET_OVERWRITE */
 			MX6QDL_PAD_RGMII_RXC__GPIO6_IO30	0x0f058
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 2/5] arm: dts: colibri-imx6: move vbus-supply to module level device tree
  2022-09-28  7:33 [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al Marcel Ziswiler
  2022-09-28  7:33 ` [PATCH v2 1/5] arm: dts: colibri-imx6: usb dual-role switching Marcel Ziswiler
@ 2022-09-28  7:33 ` Marcel Ziswiler
  2022-09-28  7:33 ` [PATCH v2 3/5] arm: dts: colibri-imx6: specify usbh_pen gpio being active-low Marcel Ziswiler
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Marcel Ziswiler @ 2022-09-28  7:33 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Marcel Ziswiler, Fabio Estevam, Krzysztof Kozlowski,
	NXP Linux Team, Pengutronix Kernel Team, Rob Herring,
	Sascha Hauer, Shawn Guo, devicetree, linux-kernel

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Move USB VBUS supply from single carrier board to module level device
tree. This pin is as per Colibri module family standard.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
---

(no changes since v1)

 arch/arm/boot/dts/imx6dl-colibri-aster.dts   | 1 -
 arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts | 1 -
 arch/arm/boot/dts/imx6dl-colibri-iris.dts    | 1 -
 arch/arm/boot/dts/imx6qdl-colibri.dtsi       | 9 +++++++--
 4 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/arch/arm/boot/dts/imx6dl-colibri-aster.dts b/arch/arm/boot/dts/imx6dl-colibri-aster.dts
index 74e8a6cd8bed..a28e083f29d5 100644
--- a/arch/arm/boot/dts/imx6dl-colibri-aster.dts
+++ b/arch/arm/boot/dts/imx6dl-colibri-aster.dts
@@ -99,7 +99,6 @@ &uart3 {
 };
 
 &usbh1 {
-	vbus-supply = <&reg_usb_host_vbus>;
 	status = "okay";
 };
 
diff --git a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
index 7272edd85a49..a02981d4a3fc 100644
--- a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
+++ b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
@@ -111,7 +111,6 @@ &uart3 {
 };
 
 &usbh1 {
-	vbus-supply = <&reg_usb_host_vbus>;
 	status = "okay";
 };
 
diff --git a/arch/arm/boot/dts/imx6dl-colibri-iris.dts b/arch/arm/boot/dts/imx6dl-colibri-iris.dts
index cf77d894f6d7..c5797ff35b71 100644
--- a/arch/arm/boot/dts/imx6dl-colibri-iris.dts
+++ b/arch/arm/boot/dts/imx6dl-colibri-iris.dts
@@ -138,7 +138,6 @@ &uart3 {
 };
 
 &usbh1 {
-	vbus-supply = <&reg_usb_host_vbus>;
 	status = "okay";
 };
 
diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
index 3e98b5da0cc6..21c5049bda4e 100644
--- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -112,7 +112,7 @@ reg_module_3v3_audio: regulator-module-3v3-audio {
 
 	reg_usb_host_vbus: regulator-usb-host-vbus {
 		compatible = "regulator-fixed";
-		gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>; /* USBH_PEN */
+		gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>; /* SODIMM 129 / USBH_PEN */
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_regulator_usbh_pwr>;
 		regulator-max-microvolt = <5000000>;
@@ -677,6 +677,11 @@ &uart3 {
 	status = "disabled";
 };
 
+/* Colibri USBH */
+&usbh1 {
+	vbus-supply = <&reg_usb_host_vbus>;
+};
+
 /* Colibri USBC */
 &usbotg {
 	disable-over-current;
@@ -995,7 +1000,7 @@ MX6QDL_PAD_SD4_DAT2__PWM4_OUT	0x1b0b1
 
 	pinctrl_regulator_usbh_pwr: gpioregusbhpwrgrp {
 		fsl,pins = <
-			/* USBH_EN */
+			/* SODIMM 129 / USBH_PEN */
 			MX6QDL_PAD_EIM_D31__GPIO3_IO31	0x0f058
 		>;
 	};
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 3/5] arm: dts: colibri-imx6: specify usbh_pen gpio being active-low
  2022-09-28  7:33 [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al Marcel Ziswiler
  2022-09-28  7:33 ` [PATCH v2 1/5] arm: dts: colibri-imx6: usb dual-role switching Marcel Ziswiler
  2022-09-28  7:33 ` [PATCH v2 2/5] arm: dts: colibri-imx6: move vbus-supply to module level device tree Marcel Ziswiler
@ 2022-09-28  7:33 ` Marcel Ziswiler
  2022-09-28  7:33 ` [PATCH v2 4/5] arm: dts: imx7-colibri: remove spurious debounce property Marcel Ziswiler
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Marcel Ziswiler @ 2022-09-28  7:33 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Marcel Ziswiler, Fabio Estevam, Krzysztof Kozlowski,
	NXP Linux Team, Pengutronix Kernel Team, Rob Herring,
	Sascha Hauer, Shawn Guo, devicetree, linux-kernel

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Specify USBH_PEN GPIO being active-low rather than active-high.

Note that this should not have any functional impact as for fixed
regulators the regular GPIO polarity is ignored and a true active-high
enable GPIO would need an additional enable-active-high property which
is/was not the case here. However, this may be rather confusing which
this patch fixes.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
---

(no changes since v1)

 arch/arm/boot/dts/imx6qdl-colibri.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
index 21c5049bda4e..d8f985f297e4 100644
--- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -112,7 +112,7 @@ reg_module_3v3_audio: regulator-module-3v3-audio {
 
 	reg_usb_host_vbus: regulator-usb-host-vbus {
 		compatible = "regulator-fixed";
-		gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>; /* SODIMM 129 / USBH_PEN */
+		gpio = <&gpio3 31 GPIO_ACTIVE_LOW>; /* SODIMM 129 / USBH_PEN */
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_regulator_usbh_pwr>;
 		regulator-max-microvolt = <5000000>;
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 4/5] arm: dts: imx7-colibri: remove spurious debounce property
  2022-09-28  7:33 [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al Marcel Ziswiler
                   ` (2 preceding siblings ...)
  2022-09-28  7:33 ` [PATCH v2 3/5] arm: dts: colibri-imx6: specify usbh_pen gpio being active-low Marcel Ziswiler
@ 2022-09-28  7:33 ` Marcel Ziswiler
  2022-09-28  7:33 ` [PATCH v2 5/5] ARM: imx_v6_v7_defconfig: Enable USB GPIO extcon support Marcel Ziswiler
  2022-10-24  1:58 ` [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al Shawn Guo
  5 siblings, 0 replies; 7+ messages in thread
From: Marcel Ziswiler @ 2022-09-28  7:33 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Marcel Ziswiler, Fabio Estevam, Krzysztof Kozlowski,
	NXP Linux Team, Pengutronix Kernel Team, Rob Herring,
	Sascha Hauer, Shawn Guo, devicetree, linux-kernel

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Remove spurious debounce property from linux,extcon-usb-gpio.

Note that debouncing is hard-coded to 20 ms (USB_GPIO_DEBOUNCE_MS
define).

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2:
- Dropped fixes tag as this change is rather cosmetic.

 arch/arm/boot/dts/imx7-colibri.dtsi | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm/boot/dts/imx7-colibri.dtsi b/arch/arm/boot/dts/imx7-colibri.dtsi
index a8c31ee65623..840420f9a1cd 100644
--- a/arch/arm/boot/dts/imx7-colibri.dtsi
+++ b/arch/arm/boot/dts/imx7-colibri.dtsi
@@ -29,7 +29,6 @@ chosen {
 
 	extcon_usbc_det: usbc-det {
 		compatible = "linux,extcon-usb-gpio";
-		debounce = <25>;
 		id-gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>; /* SODIMM 137 / USBC_DET */
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_usbc_det>;
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 5/5] ARM: imx_v6_v7_defconfig: Enable USB GPIO extcon support
  2022-09-28  7:33 [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al Marcel Ziswiler
                   ` (3 preceding siblings ...)
  2022-09-28  7:33 ` [PATCH v2 4/5] arm: dts: imx7-colibri: remove spurious debounce property Marcel Ziswiler
@ 2022-09-28  7:33 ` Marcel Ziswiler
  2022-10-24  1:58 ` [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al Shawn Guo
  5 siblings, 0 replies; 7+ messages in thread
From: Marcel Ziswiler @ 2022-09-28  7:33 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Marcel Ziswiler, Alistair Francis, Arnd Bergmann, Fabio Estevam,
	Johann Neuhauser, Max Krummenacher, NXP Linux Team,
	Neil Armstrong, Pengutronix Kernel Team, Russell King,
	Sascha Hauer, Shawn Guo, linux-kernel

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Enable USB GPIO extcon support aka CONFIG_EXTCON_USB_GPIO as e.g. used
on Colibri iMX6 and Colibri iMX7 for USB device/host role switching.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2:
- Add new commit also actually enabling CONFIG_EXTCON_USB_GPIO.

 arch/arm/configs/imx_v6_v7_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig
index 01012537a9b9..bd4b132cb049 100644
--- a/arch/arm/configs/imx_v6_v7_defconfig
+++ b/arch/arm/configs/imx_v6_v7_defconfig
@@ -397,6 +397,7 @@ CONFIG_CLK_IMX8MN=y
 CONFIG_CLK_IMX8MP=y
 CONFIG_CLK_IMX8MQ=y
 CONFIG_SOC_IMX8M=y
+CONFIG_EXTCON_USB_GPIO=y
 CONFIG_IIO=y
 CONFIG_MMA8452=y
 CONFIG_IMX7D_ADC=y
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al.
  2022-09-28  7:33 [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al Marcel Ziswiler
                   ` (4 preceding siblings ...)
  2022-09-28  7:33 ` [PATCH v2 5/5] ARM: imx_v6_v7_defconfig: Enable USB GPIO extcon support Marcel Ziswiler
@ 2022-10-24  1:58 ` Shawn Guo
  5 siblings, 0 replies; 7+ messages in thread
From: Shawn Guo @ 2022-10-24  1:58 UTC (permalink / raw)
  To: Marcel Ziswiler
  Cc: linux-arm-kernel, Marcel Ziswiler, Alistair Francis,
	Arnd Bergmann, Fabio Estevam, Johann Neuhauser,
	Krzysztof Kozlowski, Max Krummenacher, NXP Linux Team,
	Neil Armstrong, Pengutronix Kernel Team, Rob Herring,
	Russell King, Sascha Hauer, devicetree, linux-kernel

On Wed, Sep 28, 2022 at 09:33:31AM +0200, Marcel Ziswiler wrote:
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> 
> This series is an assortment of USB dual-role specific commits as
> follows:
> 
> Introduce USBC_DET GPIO based USB dual-role aka device/host switching.
> 
> Move USB VBUS supply from single carrier board to module level device
> tree. This pin is as per Colibri module family standard.
> 
> Specify USBH_PEN GPIO being active-low rather than active-high
> (cosmetic only).
> 
> Remove spurious debounce property from linux,extcon-usb-gpio. That
> commit is actually for Colibri iMX7.
> 
> Changes in v2:
> - Dropped fixes tag as this change is rather cosmetic.
> - Add new commit also actually enabling CONFIG_EXTCON_USB_GPIO.
> 
> Marcel Ziswiler (4):
>   arm: dts: colibri-imx6: move vbus-supply to module level device tree
>   arm: dts: colibri-imx6: specify usbh_pen gpio being active-low
>   arm: dts: imx7-colibri: remove spurious debounce property
>   ARM: imx_v6_v7_defconfig: Enable USB GPIO extcon support
> 
> Philippe Schenker (1):
>   arm: dts: colibri-imx6: usb dual-role switching

We idiomatically use prefix 'ARM: dts: ...' for i.MX arm DTS.  Fixed
them up and applied the series.

Shawn

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-10-24  1:58 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-28  7:33 [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al Marcel Ziswiler
2022-09-28  7:33 ` [PATCH v2 1/5] arm: dts: colibri-imx6: usb dual-role switching Marcel Ziswiler
2022-09-28  7:33 ` [PATCH v2 2/5] arm: dts: colibri-imx6: move vbus-supply to module level device tree Marcel Ziswiler
2022-09-28  7:33 ` [PATCH v2 3/5] arm: dts: colibri-imx6: specify usbh_pen gpio being active-low Marcel Ziswiler
2022-09-28  7:33 ` [PATCH v2 4/5] arm: dts: imx7-colibri: remove spurious debounce property Marcel Ziswiler
2022-09-28  7:33 ` [PATCH v2 5/5] ARM: imx_v6_v7_defconfig: Enable USB GPIO extcon support Marcel Ziswiler
2022-10-24  1:58 ` [PATCH v2 0/5] arm: dts: colibri-imx6: usb dual-role switching et. al Shawn Guo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).