mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 07:04:24 +00:00
usb: common: of_usb_get_maximum_speed to usb_get_maximum_speed
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
58efd4b06d
commit
63863b988e
6 changed files with 32 additions and 36 deletions
|
@ -648,7 +648,7 @@ static int ci_get_platdata(struct device *dev,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (of_usb_get_maximum_speed(dev->of_node) == USB_SPEED_FULL)
|
if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
|
||||||
platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
|
platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
|
||||||
|
|
||||||
platdata->itc_setting = 1;
|
platdata->itc_setting = 1;
|
||||||
|
|
|
@ -60,6 +60,24 @@ const char *usb_speed_string(enum usb_device_speed speed)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(usb_speed_string);
|
EXPORT_SYMBOL_GPL(usb_speed_string);
|
||||||
|
|
||||||
|
enum usb_device_speed usb_get_maximum_speed(struct device *dev)
|
||||||
|
{
|
||||||
|
const char *maximum_speed;
|
||||||
|
int err;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
err = device_property_read_string(dev, "maximum-speed", &maximum_speed);
|
||||||
|
if (err < 0)
|
||||||
|
return USB_SPEED_UNKNOWN;
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(speed_names); i++)
|
||||||
|
if (strcmp(maximum_speed, speed_names[i]) == 0)
|
||||||
|
return i;
|
||||||
|
|
||||||
|
return USB_SPEED_UNKNOWN;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(usb_get_maximum_speed);
|
||||||
|
|
||||||
const char *usb_state_string(enum usb_device_state state)
|
const char *usb_state_string(enum usb_device_state state)
|
||||||
{
|
{
|
||||||
static const char *const names[] = {
|
static const char *const names[] = {
|
||||||
|
@ -113,32 +131,6 @@ enum usb_dr_mode of_usb_get_dr_mode(struct device_node *np)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(of_usb_get_dr_mode);
|
EXPORT_SYMBOL_GPL(of_usb_get_dr_mode);
|
||||||
|
|
||||||
/**
|
|
||||||
* of_usb_get_maximum_speed - Get maximum requested speed for a given USB
|
|
||||||
* controller.
|
|
||||||
* @np: Pointer to the given device_node
|
|
||||||
*
|
|
||||||
* The function gets the maximum speed string from property "maximum-speed",
|
|
||||||
* and returns the corresponding enum usb_device_speed.
|
|
||||||
*/
|
|
||||||
enum usb_device_speed of_usb_get_maximum_speed(struct device_node *np)
|
|
||||||
{
|
|
||||||
const char *maximum_speed;
|
|
||||||
int err;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
err = of_property_read_string(np, "maximum-speed", &maximum_speed);
|
|
||||||
if (err < 0)
|
|
||||||
return USB_SPEED_UNKNOWN;
|
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(speed_names); i++)
|
|
||||||
if (strcmp(maximum_speed, speed_names[i]) == 0)
|
|
||||||
return i;
|
|
||||||
|
|
||||||
return USB_SPEED_UNKNOWN;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(of_usb_get_maximum_speed);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* of_usb_host_tpl_support - to get if Targeted Peripheral List is supported
|
* of_usb_host_tpl_support - to get if Targeted Peripheral List is supported
|
||||||
* for given targeted hosts (non-PC hosts)
|
* for given targeted hosts (non-PC hosts)
|
||||||
|
|
|
@ -870,8 +870,9 @@ static int dwc3_probe(struct platform_device *pdev)
|
||||||
*/
|
*/
|
||||||
hird_threshold = 12;
|
hird_threshold = 12;
|
||||||
|
|
||||||
|
dwc->maximum_speed = usb_get_maximum_speed(dev);
|
||||||
|
|
||||||
if (node) {
|
if (node) {
|
||||||
dwc->maximum_speed = of_usb_get_maximum_speed(node);
|
|
||||||
dwc->has_lpm_erratum = of_property_read_bool(node,
|
dwc->has_lpm_erratum = of_property_read_bool(node,
|
||||||
"snps,has-lpm-erratum");
|
"snps,has-lpm-erratum");
|
||||||
of_property_read_u8(node, "snps,lpm-nyet-threshold",
|
of_property_read_u8(node, "snps,lpm-nyet-threshold",
|
||||||
|
|
|
@ -747,7 +747,7 @@ static int dsps_create_musb_pdev(struct dsps_glue *glue,
|
||||||
if (!ret && val)
|
if (!ret && val)
|
||||||
config->multipoint = true;
|
config->multipoint = true;
|
||||||
|
|
||||||
config->maximum_speed = of_usb_get_maximum_speed(dn);
|
config->maximum_speed = usb_get_maximum_speed(&parent->dev);
|
||||||
switch (config->maximum_speed) {
|
switch (config->maximum_speed) {
|
||||||
case USB_SPEED_LOW:
|
case USB_SPEED_LOW:
|
||||||
case USB_SPEED_FULL:
|
case USB_SPEED_FULL:
|
||||||
|
|
|
@ -32,9 +32,9 @@
|
||||||
#ifndef __LINUX_USB_CH9_H
|
#ifndef __LINUX_USB_CH9_H
|
||||||
#define __LINUX_USB_CH9_H
|
#define __LINUX_USB_CH9_H
|
||||||
|
|
||||||
|
#include <linux/device.h>
|
||||||
#include <uapi/linux/usb/ch9.h>
|
#include <uapi/linux/usb/ch9.h>
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* usb_speed_string() - Returns human readable-name of the speed.
|
* usb_speed_string() - Returns human readable-name of the speed.
|
||||||
* @speed: The speed to return human-readable name for. If it's not
|
* @speed: The speed to return human-readable name for. If it's not
|
||||||
|
@ -43,6 +43,15 @@
|
||||||
*/
|
*/
|
||||||
extern const char *usb_speed_string(enum usb_device_speed speed);
|
extern const char *usb_speed_string(enum usb_device_speed speed);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* usb_get_maximum_speed - Get maximum requested speed for a given USB
|
||||||
|
* controller.
|
||||||
|
* @dev: Pointer to the given USB controller device
|
||||||
|
*
|
||||||
|
* The function gets the maximum speed string from property "maximum-speed",
|
||||||
|
* and returns the corresponding enum usb_device_speed.
|
||||||
|
*/
|
||||||
|
extern enum usb_device_speed usb_get_maximum_speed(struct device *dev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* usb_state_string - Returns human readable name for the state.
|
* usb_state_string - Returns human readable name for the state.
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_OF)
|
#if IS_ENABLED(CONFIG_OF)
|
||||||
enum usb_dr_mode of_usb_get_dr_mode(struct device_node *np);
|
enum usb_dr_mode of_usb_get_dr_mode(struct device_node *np);
|
||||||
enum usb_device_speed of_usb_get_maximum_speed(struct device_node *np);
|
|
||||||
bool of_usb_host_tpl_support(struct device_node *np);
|
bool of_usb_host_tpl_support(struct device_node *np);
|
||||||
int of_usb_update_otg_caps(struct device_node *np,
|
int of_usb_update_otg_caps(struct device_node *np,
|
||||||
struct usb_otg_caps *otg_caps);
|
struct usb_otg_caps *otg_caps);
|
||||||
|
@ -23,11 +22,6 @@ static inline enum usb_dr_mode of_usb_get_dr_mode(struct device_node *np)
|
||||||
return USB_DR_MODE_UNKNOWN;
|
return USB_DR_MODE_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline enum usb_device_speed
|
|
||||||
of_usb_get_maximum_speed(struct device_node *np)
|
|
||||||
{
|
|
||||||
return USB_SPEED_UNKNOWN;
|
|
||||||
}
|
|
||||||
static inline bool of_usb_host_tpl_support(struct device_node *np)
|
static inline bool of_usb_host_tpl_support(struct device_node *np)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in a new issue