From: Marcel Ziswiler <marcel.ziswi...@toradex.com>

Migrate USB to using driver model.
Add USBH_PEN GPIO regulator.
While at it also add alias e.g. as required for UMS.

Signed-off-by: Marcel Ziswiler <marcel.ziswi...@toradex.com>

---

 arch/arm/dts/imx6ull-colibri.dts              | 24 ++++++++++
 .../toradex/colibri-imx6ull/colibri-imx6ull.c | 48 -------------------
 configs/colibri-imx6ull_defconfig             |  1 +
 3 files changed, 25 insertions(+), 48 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index 0d416ebd10..91e48aab61 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -13,6 +13,7 @@
 
        aliases {
                mmc0 = &usdhc1;
+               usb0 = &usbotg1; /* required for ums */
        };
 
        chosen {
@@ -35,6 +36,13 @@
                regulator-max-microvolt = <3300000>;
        };
 
+       reg_5v0: regulator-5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
        reg_sd1_vmmc: regulator-sd1-vmmc {
                compatible = "regulator-gpio";
                gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
@@ -47,6 +55,17 @@
                states = <1800000 0x1 3300000 0x0>;
                vin-supply = <&reg_module_3v3>;
        };
+
+       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 = <&gpio1 2 GPIO_ACTIVE_LOW>; /* USBH_PEN */
+               vin-supply = <&reg_5v0>;
+       };
 };
 
 &adc1 {
@@ -183,15 +202,20 @@
        fsl,dte-mode;
 };
 
+/* Colibri USBC */
 &usbotg1 {
        dr_mode = "otg";
        srp-disable;
        hnp-disable;
        adp-disable;
+       status = "okay";
 };
 
+/* Colibri USBH */
 &usbotg2 {
        dr_mode = "host";
+       vbus-supply = <&reg_usbh_vbus>;
+       status = "okay";
 };
 
 /* Colibri MMC */
diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c 
b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index c9af44e30e..21addaf6ed 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -24,8 +24,6 @@
 #include <miiphy.h>
 #include <mtd_node.h>
 #include <netdev.h>
-#include <usb.h>
-#include <usb/ehci-ci.h>
 
 #include "../common/tdx-common.h"
 #include "../common/tdx-cfg-block.h"
@@ -41,8 +39,6 @@ DECLARE_GLOBAL_DATA_PTR;
 
 #define NAND_PAD_READY0_CTRL (PAD_CTL_DSE_48ohm | PAD_CTL_PUS_22K_UP)
 
-#define USB_CDET_GPIO  IMX_GPIO_NR(7, 14)
-
 int dram_init(void)
 {
        gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
@@ -50,10 +46,6 @@ int dram_init(void)
        return 0;
 }
 
-static iomux_v3_cfg_t const usb_cdet_pads[] = {
-       MX6_PAD_SNVS_TAMPER2__GPIO5_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-
 #ifdef CONFIG_NAND_MXS
 static void setup_gpmi_nand(void)
 {
@@ -163,11 +155,6 @@ int board_init(void)
        setup_lcd();
 #endif
 
-#ifdef CONFIG_USB_EHCI_MX6
-       imx_iomux_v3_setup_multiple_pads(usb_cdet_pads, 
ARRAY_SIZE(usb_cdet_pads));
-       gpio_request(USB_CDET_GPIO, "usb-cdet-gpio");
-#endif
-
        return 0;
 }
 
@@ -241,41 +228,6 @@ int ft_board_setup(void *blob, bd_t *bd)
 }
 #endif
 
-#ifdef CONFIG_USB_EHCI_MX6
-static iomux_v3_cfg_t const usb_otg2_pads[] = {
-               MX6_PAD_GPIO1_IO02__GPIO1_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-
-int board_ehci_hcd_init(int port)
-{
-       switch (port) {
-       case 0:
-               break;
-       case 1:
-               imx_iomux_v3_setup_multiple_pads(usb_otg2_pads,
-                                                ARRAY_SIZE(usb_otg2_pads));
-               break;
-       default:
-               return -EINVAL;
-       }
-       return 0;
-}
-
-int board_usb_phy_mode(int port)
-{
-       switch (port) {
-       case 0:
-               if (gpio_get_value(USB_CDET_GPIO))
-                       return USB_INIT_DEVICE;
-               else
-                       return USB_INIT_HOST;
-       case 1:
-       default:
-               return USB_INIT_HOST;
-       }
-}
-#endif
-
 static struct mxc_serial_platdata mxc_serial_plat = {
        .reg = (struct mxc_uart *)UART1_BASE,
        .use_dte = 1,
diff --git a/configs/colibri-imx6ull_defconfig 
b/configs/colibri-imx6ull_defconfig
index 69305323f2..0440b4ed94 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -71,6 +71,7 @@ CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_SERIAL=y
 CONFIG_MXC_UART=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Toradex"
 CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
-- 
2.20.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to