mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 14:41:39 +00:00
usb: common: of_usb_get_dr_mode to usb_get_dr_mode
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>
This commit is contained in:
parent
666472733b
commit
06e7114f0d
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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");
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -12,16 +12,10 @@
|
||||
#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;
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user