diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2022-09-20 11:46:04 +0200 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2022-09-24 15:26:08 +0200 |
commit | 702e1405ae4158f18d90f0839c2531d57394957b (patch) | |
tree | 66b86ecb2e86f81519f77a10d2e13d7150bd1b76 /recipes-kernel | |
parent | 0ef72679dd8880b2b26fca102ffab8704592136d (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')
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 = <®_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 = <®_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 = <®_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 = <®_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" |