All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 1/1] colibri_imx7: migrate usb to driver model
@ 2019-04-15  9:06 Igor Opaniuk
  2019-04-16  8:19 ` Igor Opaniuk
  0 siblings, 1 reply; 3+ messages in thread
From: Igor Opaniuk @ 2019-04-15  9:06 UTC (permalink / raw)
  To: u-boot

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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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

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

* [U-Boot] [PATCH v2 1/1] colibri_imx7: migrate usb to driver model
  2019-04-15  9:06 [U-Boot] [PATCH v2 1/1] colibri_imx7: migrate usb to driver model Igor Opaniuk
@ 2019-04-16  8:19 ` Igor Opaniuk
  2019-04-17  6:05   ` Marcel Ziswiler
  0 siblings, 1 reply; 3+ messages in thread
From: Igor Opaniuk @ 2019-04-16  8:19 UTC (permalink / raw)
  To: u-boot

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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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)

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

* [U-Boot] [PATCH v2 1/1] colibri_imx7: migrate usb to driver model
  2019-04-16  8:19 ` Igor Opaniuk
@ 2019-04-17  6:05   ` Marcel Ziswiler
  0 siblings, 0 replies; 3+ messages in thread
From: Marcel Ziswiler @ 2019-04-17  6:05 UTC (permalink / raw)
  To: u-boot

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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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)

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

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

end of thread, other threads:[~2019-04-17  6:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-15  9:06 [U-Boot] [PATCH v2 1/1] colibri_imx7: migrate usb to driver model Igor Opaniuk
2019-04-16  8:19 ` Igor Opaniuk
2019-04-17  6:05   ` Marcel Ziswiler

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.