MLK-16715-5 usb: chipidea: imx: using phy_mode to judge HSIC controller
authorPeter Chen <peter.chen@nxp.com>
Fri, 27 Oct 2017 11:05:00 +0000 (19:05 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Tue, 20 Mar 2018 19:51:16 +0000 (14:51 -0500)
HSIC controller must use HSIC phy mode, it is more suitable way
to judge HSIC controller.

Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
drivers/usb/chipidea/ci_hdrc_imx.c

index f8100e3..2fe9a6d 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/regulator/consumer.h>
 #include <linux/busfreq-imx.h>
 #include <linux/pm_qos.h>
+#include <linux/usb/of.h>
 
 #include "ci.h"
 #include "ci_hdrc_imx.h"
@@ -138,32 +139,6 @@ static enum power_supply_property imx_usb_charger_power_props[] = {
        POWER_SUPPLY_PROP_CURRENT_MAX,  /* Maximum current in mA */
 };
 
-static inline bool is_imx6q_con(struct ci_hdrc_imx_data *imx_data)
-{
-       return imx_data->data == &imx6q_usb_data;
-}
-
-static inline bool is_imx6sl_con(struct ci_hdrc_imx_data *imx_data)
-{
-       return imx_data->data == &imx6sl_usb_data;
-}
-
-static inline bool is_imx6sx_con(struct ci_hdrc_imx_data *imx_data)
-{
-       return imx_data->data == &imx6sx_usb_data;
-}
-
-static inline bool is_imx7d_con(struct ci_hdrc_imx_data *imx_data)
-{
-       return imx_data->data == &imx7d_usb_data;
-}
-
-static inline bool imx_has_hsic_con(struct ci_hdrc_imx_data *imx_data)
-{
-       return is_imx6q_con(imx_data) ||  is_imx6sl_con(imx_data)
-               || is_imx6sx_con(imx_data) || is_imx7d_con(imx_data);
-}
-
 /* Common functions shared by usbmisc drivers */
 
 static struct imx_usbmisc_data *usbmisc_get_init_data(struct device *dev)
@@ -554,8 +529,7 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
        if (pdata.flags & CI_HDRC_SUPPORTS_RUNTIME_PM)
                data->supports_runtime_pm = true;
 
-       if (data->usbmisc_data && data->usbmisc_data->index > 1
-           && (imx_has_hsic_con(data))) {
+       if (of_usb_get_phy_mode(dev->of_node) == USBPHY_INTERFACE_MODE_HSIC) {
                pdata.flags |= CI_HDRC_IMX_IS_HSIC;
                data->hsic_pad_regulator = devm_regulator_get(dev, "pad");
                if (PTR_ERR(data->hsic_pad_regulator) == -EPROBE_DEFER) {