
Perfect, thanks Igor.
The most minor little nitpick: I would order otg1, otg2 and maybe add some comment about what exact USB ports in the Colibri pin muxing each of those actually is. With that:
Acked-by: Marcel Ziswiler marcel.ziswiler@toradex.com
On April 16, 2019 10:19:01 AM GMT+02:00, Igor Opaniuk igor.opaniuk@toradex.com wrote:
As Max Krummenacher asked before, tested also Colibri iMX7S NAND version, everything works fine (USB1 is reported as unavailable by the driver): USB0 can be still used in both host/OTG modes.
Colibri iMX7 # usb reset resetting USB... USB0: USB EHCI 1.00 USB1: Port not available. scanning bus 0 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found
Colibri iMX7 # usb tree USB device tree: 1 Hub (480 Mb/s, 0mA) | u-boot EHCI Host Controller | +-2 Mass Storage (480 Mb/s, 500mA) T1204020000702
Same for UMS:
Colibri iMX7 # ums 0 mmc 0 UMS: LUN 0, dev 0, hwpart 0, sector 0x0, count 0x1dacc00 USB EHCI 1.00
Tested-by: Igor Opaniuk igor.opaniuk@toradex.com (Colibri iMX7S)
On Mon, Apr 15, 2019 at 11:06 AM Igor Opaniuk igor.opaniuk@toradex.com wrote:
Migrate USB to Driver Model (CONFIG_DM_USB=y).
Tested-by: Marcel Ziswiler marcel.ziswiler@toradex.com Signed-off-by: Igor Opaniuk igor.opaniuk@toradex.com
v2:
- Drop vbus-supply property for usbotg1 node, as on Colibri the
turning
on of the USB host power is actually done purely in hardware based on the cable detect pin
arch/arm/dts/imx7-colibri-emmc.dts | 36 +++++++++++++++++++++++++ arch/arm/dts/imx7-colibri-rawnand.dts | 39
+++++++++++++++++++++++++++
configs/colibri_imx7_defconfig | 1 + configs/colibri_imx7_emmc_defconfig | 1 + 4 files changed, 77 insertions(+)
diff --git a/arch/arm/dts/imx7-colibri-emmc.dts
b/arch/arm/dts/imx7-colibri-emmc.dts
index efd600091d..371c680025 100644 --- a/arch/arm/dts/imx7-colibri-emmc.dts +++ b/arch/arm/dts/imx7-colibri-emmc.dts @@ -13,11 +13,30 @@ aliases { mmc0 = &usdhc3; mmc1 = &usdhc1;
usb0 = &usbotg1; /* required for ums */ }; chosen { stdout-path = &uart1; };
reg_5v0: regulator-5v0 {
compatible = "regulator-fixed";
regulator-name = "5V";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
reg_usbh_vbus: regulator-usbh-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usbh_reg>;
regulator-name = "VCC_USB[1-4]";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
vin-supply = <®_5v0>;
};
};
&usdhc3 { @@ -44,4 +63,21 @@ MX7D_PAD_SD3_STROBE__SD3_STROBE 0x19 >; };
pinctrl_usbh_reg: gpio-usbh-vbus {
fsl,pins = <
MX7D_PAD_UART3_CTS_B__GPIO4_IO7 0x14
>;
};
+};
+&usbotg2 {
dr_mode = "host";
vbus-supply = <®_usbh_vbus>;
status = "okay";
+};
+&usbotg1 {
dr_mode = "host";
status = "okay";
}; diff --git a/arch/arm/dts/imx7-colibri-rawnand.dts
b/arch/arm/dts/imx7-colibri-rawnand.dts
index 4eb86fb011..69a9c6a914 100644 --- a/arch/arm/dts/imx7-colibri-rawnand.dts +++ b/arch/arm/dts/imx7-colibri-rawnand.dts @@ -13,6 +13,28 @@ chosen { stdout-path = &uart1; };
aliases {
usb0 = &usbotg1; /* required for ums */
};
reg_5v0: regulator-5v0 {
compatible = "regulator-fixed";
regulator-name = "5V";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
reg_usbh_vbus: regulator-usbh-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usbh_reg>;
regulator-name = "VCC_USB[1-4]";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
vin-supply = <®_5v0>;
};
};
&gpmi { @@ -43,4 +65,21 @@ MX7D_PAD_SD3_DATA7__NAND_DATA07 0x71 >; };
pinctrl_usbh_reg: gpio-usbh-vbus {
fsl,pins = <
MX7D_PAD_UART3_CTS_B__GPIO4_IO7 0x14
>;
};
+};
+&usbotg2 {
dr_mode = "host";
vbus-supply = <®_usbh_vbus>;
status = "okay";
+};
+&usbotg1 {
dr_mode = "host";
status = "okay";
}; diff --git a/configs/colibri_imx7_defconfig
b/configs/colibri_imx7_defconfig
index 7a52361a2a..43af825d5c 100644 --- a/configs/colibri_imx7_defconfig +++ b/configs/colibri_imx7_defconfig @@ -62,6 +62,7 @@ CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX7=y CONFIG_DM_PMIC=y CONFIG_PMIC_RN5T567=y +CONFIG_DM_USB=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_GADGET=y diff --git a/configs/colibri_imx7_emmc_defconfig
b/configs/colibri_imx7_emmc_defconfig
index 5e2a204a88..beec2704c5 100644 --- a/configs/colibri_imx7_emmc_defconfig +++ b/configs/colibri_imx7_emmc_defconfig @@ -64,3 +64,4 @@ CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_VIDEO=y CONFIG_FAT_WRITE=y CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_DM_USB=y
2.17.1
-- Best regards - Freundliche GrĂ¼sse - Meilleures salutations
Senior Development Engineer, Igor Opaniuk
Toradex AG Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 48 00 (main line)