Message ID | 20190415090655.12156-1-igor.opaniuk@toradex.com |
---|---|
State | Superseded |
Delegated to: | Stefano Babic |
Headers | show |
Series | [U-Boot,v2,1/1] colibri_imx7: migrate usb to driver model | expand |
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 >
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)
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