usb: common: of_usb_get_dr_mode to usb_get_dr_mode
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Mon, 21 Sep 2015 08:14:34 +0000 (11:14 +0300)
committerFelipe Balbi <balbi@ti.com>
Sun, 27 Sep 2015 15:54:31 +0000 (10:54 -0500)
By using the unified device property interface, the function
can be made available for all platforms and not just the
ones using DT.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/chipidea/core.c
drivers/usb/common/common.c
drivers/usb/dwc2/platform.c
drivers/usb/dwc3/core.c
drivers/usb/dwc3/dwc3-st.c
drivers/usb/musb/musb_dsps.c
drivers/usb/musb/sunxi.c
drivers/usb/phy/phy-msm-usb.c
drivers/usb/phy/phy-tegra-usb.c
include/linux/usb/of.h
include/linux/usb/otg.h

index ce71532324252dafd2f232b8221317248e55a6ef..bf2599757f554b70c29ca0150f7fbeb5768c1287 100644 (file)
@@ -611,7 +611,7 @@ static int ci_get_platdata(struct device *dev,
                platdata->phy_mode = of_usb_get_phy_mode(dev->of_node);
 
        if (!platdata->dr_mode)
-               platdata->dr_mode = of_usb_get_dr_mode(dev->of_node);
+               platdata->dr_mode = usb_get_dr_mode(dev);
 
        if (platdata->dr_mode == USB_DR_MODE_UNKNOWN)
                platdata->dr_mode = USB_DR_MODE_OTG;
index b25a111903ab5f42f4e6e174e16299fe2d00296b..673d53038ed221c3b2e0c7c0d78d9309d307420a 100644 (file)
@@ -99,7 +99,6 @@ const char *usb_state_string(enum usb_device_state state)
 }
 EXPORT_SYMBOL_GPL(usb_state_string);
 
-#ifdef CONFIG_OF
 static const char *const usb_dr_modes[] = {
        [USB_DR_MODE_UNKNOWN]           = "",
        [USB_DR_MODE_HOST]              = "host",
@@ -107,19 +106,12 @@ static const char *const usb_dr_modes[] = {
        [USB_DR_MODE_OTG]               = "otg",
 };
 
-/**
- * of_usb_get_dr_mode - Get dual role mode for given device_node
- * @np:        Pointer to the given device_node
- *
- * The function gets phy interface string from property 'dr_mode',
- * and returns the correspondig enum usb_dr_mode
- */
-enum usb_dr_mode of_usb_get_dr_mode(struct device_node *np)
+enum usb_dr_mode usb_get_dr_mode(struct device *dev)
 {
        const char *dr_mode;
        int err, i;
 
-       err = of_property_read_string(np, "dr_mode", &dr_mode);
+       err = device_property_read_string(dev, "dr_mode", &dr_mode);
        if (err < 0)
                return USB_DR_MODE_UNKNOWN;
 
@@ -129,8 +121,9 @@ enum usb_dr_mode of_usb_get_dr_mode(struct device_node *np)
 
        return USB_DR_MODE_UNKNOWN;
 }
-EXPORT_SYMBOL_GPL(of_usb_get_dr_mode);
+EXPORT_SYMBOL_GPL(usb_get_dr_mode);
 
+#ifdef CONFIG_OF
 /**
  * of_usb_host_tpl_support - to get if Targeted Peripheral List is supported
  * for given targeted hosts (non-PC hosts)
index 3d1f82def2f33f55a28b9fc73154e5b616823262..28abd1f909000dc91e7b1d3cd13fcdff83057796 100644 (file)
@@ -220,7 +220,7 @@ static int dwc2_driver_probe(struct platform_device *dev)
        dev_dbg(&dev->dev, "mapped PA %08lx to VA %p\n",
                (unsigned long)res->start, hsotg->regs);
 
-       hsotg->dr_mode = of_usb_get_dr_mode(dev->dev.of_node);
+       hsotg->dr_mode = usb_get_dr_mode(&dev->dev);
 
        /*
         * Attempt to find a generic PHY, then look for an old style
index 61a56357baf0e8130dcb4440da9d95eb1879fde6..407151465645b3216c7b0d22755763d9744084e7 100644 (file)
@@ -871,6 +871,7 @@ static int dwc3_probe(struct platform_device *pdev)
        hird_threshold = 12;
 
        dwc->maximum_speed = usb_get_maximum_speed(dev);
+       dwc->dr_mode = usb_get_dr_mode(dev);
 
        if (node) {
                dwc->has_lpm_erratum = of_property_read_bool(node,
@@ -886,7 +887,6 @@ static int dwc3_probe(struct platform_device *pdev)
 
                dwc->needs_fifo_resize = of_property_read_bool(node,
                                "tx-fifo-resize");
-               dwc->dr_mode = of_usb_get_dr_mode(node);
 
                dwc->disable_scramble_quirk = of_property_read_bool(node,
                                "snps,disable_scramble_quirk");
index 02d47d50905ba47c78f7670148d50868d6672a0b..5c0adb9c6fb27baa778615f17705ac6ab7896079 100644 (file)
@@ -268,7 +268,7 @@ static int st_dwc3_probe(struct platform_device *pdev)
                goto undo_softreset;
        }
 
-       dwc3_data->dr_mode = of_usb_get_dr_mode(child_pdev->dev.of_node);
+       dwc3_data->dr_mode = usb_get_dr_mode(&child_pdev->dev);
 
        /*
         * Configure the USB port as device or host according to the static
index c6a69eaf280f09170d56febc24ac8aef49102dc0..eeb7d9ecf7df34ea1aa906330f55ba40952f4be1 100644 (file)
@@ -666,7 +666,7 @@ static int get_musb_port_mode(struct device *dev)
 {
        enum usb_dr_mode mode;
 
-       mode = of_usb_get_dr_mode(dev->of_node);
+       mode = usb_get_dr_mode(dev);
        switch (mode) {
        case USB_DR_MODE_HOST:
                return MUSB_PORT_MODE_HOST;
index f9f6304ad854777fe7680a4d03e2432c98ba6a58..f11b8f681b3020d1480c3e712c0087f14fc07987 100644 (file)
@@ -617,7 +617,7 @@ static int sunxi_musb_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        memset(&pdata, 0, sizeof(pdata));
-       switch (of_usb_get_dr_mode(np)) {
+       switch (usb_get_dr_mode(&pdev->dev)) {
 #if defined CONFIG_USB_MUSB_DUAL_ROLE || defined CONFIG_USB_MUSB_HOST
        case USB_DR_MODE_HOST:
                pdata.mode = MUSB_PORT_MODE_HOST;
index c58c3c0dbe35edebec10a89ad7477484f4cab902..80eb991c2506c758315cc2e6e1f39b6ebbf319f4 100644 (file)
@@ -1529,7 +1529,7 @@ static int msm_otg_read_dt(struct platform_device *pdev, struct msm_otg *motg)
        if (IS_ERR(motg->phy_rst))
                motg->phy_rst = NULL;
 
-       pdata->mode = of_usb_get_dr_mode(node);
+       pdata->mode = usb_get_dr_mode(&pdev->dev);
        if (pdata->mode == USB_DR_MODE_UNKNOWN)
                pdata->mode = USB_DR_MODE_OTG;
 
index ab025b00964c393b7622b0187486b53dc44f829f..5fe4a5704bde329caf492451be7fdb0593bb3548 100644 (file)
@@ -1029,7 +1029,7 @@ static int tegra_usb_phy_probe(struct platform_device *pdev)
        }
 
        if (of_find_property(np, "dr_mode", NULL))
-               tegra_phy->mode = of_usb_get_dr_mode(np);
+               tegra_phy->mode = usb_get_dr_mode(&pdev->dev);
        else
                tegra_phy->mode = USB_DR_MODE_HOST;
 
index ff23fea49fcade61141be25f6c45412b7d5de4dc..c3fe9e48ce27cb251e069247e0dec09b9848a09d 100644 (file)
 #include <linux/usb/phy.h>
 
 #if IS_ENABLED(CONFIG_OF)
-enum usb_dr_mode of_usb_get_dr_mode(struct device_node *np);
 bool of_usb_host_tpl_support(struct device_node *np);
 int of_usb_update_otg_caps(struct device_node *np,
                        struct usb_otg_caps *otg_caps);
 #else
-static inline enum usb_dr_mode of_usb_get_dr_mode(struct device_node *np)
-{
-       return USB_DR_MODE_UNKNOWN;
-}
-
 static inline bool of_usb_host_tpl_support(struct device_node *np)
 {
        return false;
index bd1dcf8161009d78153082c23e7890a57f1b6b4f..67929df86df5df44ffb3db4fd89ad0a317a6c3cd 100644 (file)
@@ -119,4 +119,13 @@ enum usb_dr_mode {
        USB_DR_MODE_OTG,
 };
 
+/**
+ * usb_get_dr_mode - Get dual role mode for given device
+ * @dev: Pointer to the given device
+ *
+ * The function gets phy interface string from property 'dr_mode',
+ * and returns the correspondig enum usb_dr_mode
+ */
+extern enum usb_dr_mode usb_get_dr_mode(struct device *dev);
+
 #endif /* __LINUX_USB_OTG_H */