summaryrefslogtreecommitdiff
path: root/recipes-kernel
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2022-09-20 11:46:04 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2022-09-24 15:26:08 +0200
commit702e1405ae4158f18d90f0839c2531d57394957b (patch)
tree66b86ecb2e86f81519f77a10d2e13d7150bd1b76 /recipes-kernel
parent0ef72679dd8880b2b26fca102ffab8704592136d (diff)
arm: dts: colibri-imx6: usb dual-role switching et. al.
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). Related-to: ELB-4615 Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> (cherry picked from commit 3bceffee49805da9718126acb47f3c5c2614434a)
Diffstat (limited to 'recipes-kernel')
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline-git/0001-arm-dts-colibri-imx6-usb-dual-role-switching.patch61
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline-git/0002-arm-dts-colibri-imx6-move-vbus-supply-to-module-leve.patch92
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline-git/0003-arm-dts-colibri-imx6-specify-usbh_pen-gpio-being-act.patch37
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline_git.bb3
4 files changed, 193 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-toradex-mainline-git/0001-arm-dts-colibri-imx6-usb-dual-role-switching.patch b/recipes-kernel/linux/linux-toradex-mainline-git/0001-arm-dts-colibri-imx6-usb-dual-role-switching.patch
new file mode 100644
index 0000000..15a5bec
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-mainline-git/0001-arm-dts-colibri-imx6-usb-dual-role-switching.patch
@@ -0,0 +1,61 @@
+From 03c2e411827777a8c64b55ad9ee35d69e17c84ca Mon Sep 17 00:00:00 2001
+From: Philippe Schenker <philippe.schenker@toradex.com>
+Date: Fri, 8 Jul 2022 14:03:32 +0200
+Subject: [PATCH v1 1/4] arm: dts: colibri-imx6: usb dual-role switching
+
+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>
+Upstream-status: Submitted [https://lore.kernel.org/all/20220920092227.286306-1-marcel@ziswiler.com/]
+---
+
+ 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
+
diff --git a/recipes-kernel/linux/linux-toradex-mainline-git/0002-arm-dts-colibri-imx6-move-vbus-supply-to-module-leve.patch b/recipes-kernel/linux/linux-toradex-mainline-git/0002-arm-dts-colibri-imx6-move-vbus-supply-to-module-leve.patch
new file mode 100644
index 0000000..2684c80
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-mainline-git/0002-arm-dts-colibri-imx6-move-vbus-supply-to-module-leve.patch
@@ -0,0 +1,92 @@
+From 63e858052e78bae522f9cc674a863aa5781133a3 Mon Sep 17 00:00:00 2001
+From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+Date: Mon, 19 Sep 2022 12:40:24 +0200
+Subject: [PATCH v1 2/4] arm: dts: colibri-imx6: move vbus-supply to module
+ level device tree
+
+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>
+Upstream-status: Submitted [https://lore.kernel.org/all/20220920092227.286306-1-marcel@ziswiler.com/]
+---
+
+ 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
+
diff --git a/recipes-kernel/linux/linux-toradex-mainline-git/0003-arm-dts-colibri-imx6-specify-usbh_pen-gpio-being-act.patch b/recipes-kernel/linux/linux-toradex-mainline-git/0003-arm-dts-colibri-imx6-specify-usbh_pen-gpio-being-act.patch
new file mode 100644
index 0000000..63a8c26
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-mainline-git/0003-arm-dts-colibri-imx6-specify-usbh_pen-gpio-being-act.patch
@@ -0,0 +1,37 @@
+From 60f86ce9192274e08c176da024650b8a3233b6b7 Mon Sep 17 00:00:00 2001
+From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+Date: Mon, 19 Sep 2022 12:43:25 +0200
+Subject: [PATCH v1 3/4] arm: dts: colibri-imx6: specify usbh_pen gpio being
+ active-low
+
+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>
+Upstream-status: Submitted [https://lore.kernel.org/all/20220920092227.286306-1-marcel@ziswiler.com/]
+---
+
+ 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
+
diff --git a/recipes-kernel/linux/linux-toradex-mainline_git.bb b/recipes-kernel/linux/linux-toradex-mainline_git.bb
index 40434d6..d7738e1 100644
--- a/recipes-kernel/linux/linux-toradex-mainline_git.bb
+++ b/recipes-kernel/linux/linux-toradex-mainline_git.bb
@@ -29,6 +29,9 @@ SRC_URI = " \
SRC_URI:append = " \
file://0001-thermal-imx-Update-critical-temp-threshold.patch \
file://0001-Revert-drm-panel-simple-drop-use-of-data-mapping-pro.patch \
+ file://0001-arm-dts-colibri-imx6-usb-dual-role-switching.patch \
+ file://0002-arm-dts-colibri-imx6-move-vbus-supply-to-module-leve.patch \
+ file://0003-arm-dts-colibri-imx6-specify-usbh_pen-gpio-being-act.patch \
"
LINUX_VERSION ?= "6.0-rc3"