For example: qcom,phy-init-sequence = < -1 0x63 >;
                 Will update only value at address ULPI_EXT_VENDOR_SPECIFIC + 1.
 
+- qcom,phy-num: Select number of pyco-phy to use, can be one of
+                0 - PHY one, default
+                1 - Second PHY
+                Some platforms may have configuration to allow USB
+                controller work with any of the two HSPHYs present.
+
 Example HSUSB OTG controller device node:
 
     usb@f9a55000 {
 
        if (!retries)
                return -ETIMEDOUT;
 
+       if (motg->phy_number)
+               writel(readl(USB_PHY_CTRL2) | BIT(16), USB_PHY_CTRL2);
+
        dev_info(motg->phy.dev, "phy_reset: success\n");
        return 0;
 }
                ulpi_write(phy, ulpi_val, ULPI_USB_INT_EN_FALL);
        }
 
+       if (motg->phy_number)
+               writel(readl(USB_PHY_CTRL2) | BIT(16), USB_PHY_CTRL2);
+
        return 0;
 }
 
        struct usb_phy *phy = &motg->phy;
        struct usb_bus *bus = phy->otg->host;
        struct msm_otg_platform_data *pdata = motg->pdata;
+       void __iomem *addr;
        int cnt = 0;
 
        if (atomic_read(&motg->in_lpm))
         */
        writel(readl(USB_USBCMD) | ASYNC_INTR_CTRL | ULPI_STP_CTRL, USB_USBCMD);
 
+       addr = USB_PHY_CTRL;
+       if (motg->phy_number)
+               addr = USB_PHY_CTRL2;
+
        if (motg->pdata->phy_type == SNPS_28NM_INTEGRATED_PHY &&
                        motg->pdata->otg_control == OTG_PMIC_CONTROL)
-               writel(readl(USB_PHY_CTRL) | PHY_RETEN, USB_PHY_CTRL);
+               writel(readl(addr) | PHY_RETEN, addr);
 
        clk_disable_unprepare(motg->pclk);
        clk_disable_unprepare(motg->clk);
 {
        struct usb_phy *phy = &motg->phy;
        struct usb_bus *bus = phy->otg->host;
+       void __iomem *addr;
        int cnt = 0;
        unsigned temp;
 
 
        if (motg->pdata->phy_type == SNPS_28NM_INTEGRATED_PHY &&
                        motg->pdata->otg_control == OTG_PMIC_CONTROL) {
+
+               addr = USB_PHY_CTRL;
+               if (motg->phy_number)
+                       addr = USB_PHY_CTRL2;
+
                msm_hsusb_ldo_set_mode(motg, 1);
                msm_hsusb_config_vddcx(motg, 1);
-               writel(readl(USB_PHY_CTRL) & ~PHY_RETEN, USB_PHY_CTRL);
+               writel(readl(addr) & ~PHY_RETEN, addr);
        }
 
        temp = readl(USB_USBCMD);
                if (val == OTG_PMIC_CONTROL)
                        pdata->otg_control = val;
 
+       if (!of_property_read_u32(node, "qcom,phy-num", &val) && val < 2)
+               motg->phy_number = val;
+
        prop = of_find_property(node, "qcom,phy-init-sequence", &len);
        if (!prop || !len)
                return 0;