colibri-imx6ull: migrate usb to using driver model
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>
Tue, 9 Apr 2019 15:24:16 +0000 (17:24 +0200)
committerStefano Babic <sbabic@denx.de>
Thu, 25 Apr 2019 15:03:25 +0000 (17:03 +0200)
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.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
arch/arm/dts/imx6ull-colibri.dts
board/toradex/colibri-imx6ull/colibri-imx6ull.c
configs/colibri-imx6ull_defconfig

index 0d416ebd10ab1643703237258c3644437022ae11..91e48aab612d8169961166a6efd10c7cd679ec80 100644 (file)
@@ -13,6 +13,7 @@
 
        aliases {
                mmc0 = &usdhc1;
+               usb0 = &usbotg1; /* required for ums */
        };
 
        chosen {
                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>;
                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 {
        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 */
index c9af44e30e59331ac7fb8bebfda04bdd53adb874..21addaf6ed0a192d59bc317b31c9662368d0c8b2 100644 (file)
@@ -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,
index 69305323f217e3de4c41858e734f266e92e85557..0440b4ed94ccac7196aedcee187bf80e656a0a81 100644 (file)
@@ -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