diff options
Diffstat (limited to 'drivers/usb/phy')
| -rw-r--r-- | drivers/usb/phy/phy-mv-usb.c | 18 | ||||
| -rw-r--r-- | drivers/usb/phy/phy-mxs-usb.c | 3 | ||||
| -rw-r--r-- | drivers/usb/phy/phy-tahvo.c | 6 | ||||
| -rw-r--r-- | drivers/usb/phy/phy-twl6030-usb.c | 4 | ||||
| -rw-r--r-- | drivers/usb/phy/phy.c | 14 | 
5 files changed, 26 insertions, 19 deletions
| diff --git a/drivers/usb/phy/phy-mv-usb.c b/drivers/usb/phy/phy-mv-usb.c index 554b72282276..cfd9add10bf4 100644 --- a/drivers/usb/phy/phy-mv-usb.c +++ b/drivers/usb/phy/phy-mv-usb.c @@ -519,7 +519,7 @@ static irqreturn_t mv_otg_inputs_irq(int irq, void *dev)  }  static ssize_t -get_a_bus_req(struct device *dev, struct device_attribute *attr, char *buf) +a_bus_req_show(struct device *dev, struct device_attribute *attr, char *buf)  {  	struct mv_otg *mvotg = dev_get_drvdata(dev);  	return scnprintf(buf, PAGE_SIZE, "%d\n", @@ -527,7 +527,7 @@ get_a_bus_req(struct device *dev, struct device_attribute *attr, char *buf)  }  static ssize_t -set_a_bus_req(struct device *dev, struct device_attribute *attr, +a_bus_req_store(struct device *dev, struct device_attribute *attr,  	      const char *buf, size_t count)  {  	struct mv_otg *mvotg = dev_get_drvdata(dev); @@ -559,11 +559,10 @@ set_a_bus_req(struct device *dev, struct device_attribute *attr,  	return count;  } -static DEVICE_ATTR(a_bus_req, S_IRUGO | S_IWUSR, get_a_bus_req, -		   set_a_bus_req); +static DEVICE_ATTR_RW(a_bus_req);  static ssize_t -set_a_clr_err(struct device *dev, struct device_attribute *attr, +a_clr_err_store(struct device *dev, struct device_attribute *attr,  	      const char *buf, size_t count)  {  	struct mv_otg *mvotg = dev_get_drvdata(dev); @@ -587,10 +586,10 @@ set_a_clr_err(struct device *dev, struct device_attribute *attr,  	return count;  } -static DEVICE_ATTR(a_clr_err, S_IWUSR, NULL, set_a_clr_err); +static DEVICE_ATTR_WO(a_clr_err);  static ssize_t -get_a_bus_drop(struct device *dev, struct device_attribute *attr, +a_bus_drop_show(struct device *dev, struct device_attribute *attr,  	       char *buf)  {  	struct mv_otg *mvotg = dev_get_drvdata(dev); @@ -599,7 +598,7 @@ get_a_bus_drop(struct device *dev, struct device_attribute *attr,  }  static ssize_t -set_a_bus_drop(struct device *dev, struct device_attribute *attr, +a_bus_drop_store(struct device *dev, struct device_attribute *attr,  	       const char *buf, size_t count)  {  	struct mv_otg *mvotg = dev_get_drvdata(dev); @@ -630,8 +629,7 @@ set_a_bus_drop(struct device *dev, struct device_attribute *attr,  	return count;  } -static DEVICE_ATTR(a_bus_drop, S_IRUGO | S_IWUSR, -		   get_a_bus_drop, set_a_bus_drop); +static DEVICE_ATTR_RW(a_bus_drop);  static struct attribute *inputs_attrs[] = {  	&dev_attr_a_bus_req.attr, diff --git a/drivers/usb/phy/phy-mxs-usb.c b/drivers/usb/phy/phy-mxs-usb.c index da031c45395a..fbec863350f6 100644 --- a/drivers/usb/phy/phy-mxs-usb.c +++ b/drivers/usb/phy/phy-mxs-usb.c @@ -602,6 +602,9 @@ static enum usb_charger_type mxs_phy_charger_detect(struct usb_phy *phy)  	void __iomem *base = phy->io_priv;  	enum usb_charger_type chgr_type = UNKNOWN_TYPE; +	if (!regmap) +		return UNKNOWN_TYPE; +  	if (mxs_charger_data_contact_detect(mxs_phy))  		return chgr_type; diff --git a/drivers/usb/phy/phy-tahvo.c b/drivers/usb/phy/phy-tahvo.c index b3ce42edb373..0981abc3d1ad 100644 --- a/drivers/usb/phy/phy-tahvo.c +++ b/drivers/usb/phy/phy-tahvo.c @@ -59,13 +59,13 @@ static const unsigned int tahvo_cable[] = {  	EXTCON_NONE,  }; -static ssize_t vbus_state_show(struct device *device, +static ssize_t vbus_show(struct device *device,  			       struct device_attribute *attr, char *buf)  {  	struct tahvo_usb *tu = dev_get_drvdata(device);  	return sprintf(buf, "%s\n", tu->vbus_state ? "on" : "off");  } -static DEVICE_ATTR(vbus, 0444, vbus_state_show, NULL); +static DEVICE_ATTR_RO(vbus);  static void check_vbus_state(struct tahvo_usb *tu)  { @@ -310,7 +310,7 @@ static ssize_t otg_mode_store(struct device *device,  	return r;  } -static DEVICE_ATTR(otg_mode, 0644, otg_mode_show, otg_mode_store); +static DEVICE_ATTR_RW(otg_mode);  static struct attribute *tahvo_attributes[] = {  	&dev_attr_vbus.attr, diff --git a/drivers/usb/phy/phy-twl6030-usb.c b/drivers/usb/phy/phy-twl6030-usb.c index e78ed52339e6..183550b63faa 100644 --- a/drivers/usb/phy/phy-twl6030-usb.c +++ b/drivers/usb/phy/phy-twl6030-usb.c @@ -168,7 +168,7 @@ static int twl6030_usb_ldo_init(struct twl6030_usb *twl)  	return 0;  } -static ssize_t twl6030_usb_vbus_show(struct device *dev, +static ssize_t vbus_show(struct device *dev,  			struct device_attribute *attr, char *buf)  {  	struct twl6030_usb *twl = dev_get_drvdata(dev); @@ -194,7 +194,7 @@ static ssize_t twl6030_usb_vbus_show(struct device *dev,  	return ret;  } -static DEVICE_ATTR(vbus, 0444, twl6030_usb_vbus_show, NULL); +static DEVICE_ATTR_RO(vbus);  static irqreturn_t twl6030_usb_irq(int irq, void *_twl)  { diff --git a/drivers/usb/phy/phy.c b/drivers/usb/phy/phy.c index f97cb47577fc..bceb2c9988dd 100644 --- a/drivers/usb/phy/phy.c +++ b/drivers/usb/phy/phy.c @@ -323,6 +323,14 @@ static int devm_usb_phy_match(struct device *dev, void *res, void *match_data)  	return *phy == match_data;  } +static void usb_charger_init(struct usb_phy *usb_phy) +{ +	usb_phy->chg_type = UNKNOWN_TYPE; +	usb_phy->chg_state = USB_CHARGER_DEFAULT; +	usb_phy_set_default_current(usb_phy); +	INIT_WORK(&usb_phy->chg_work, usb_phy_notify_charger_work); +} +  static int usb_add_extcon(struct usb_phy *x)  {  	int ret; @@ -406,10 +414,6 @@ static int usb_add_extcon(struct usb_phy *x)  		}  	} -	usb_phy_set_default_current(x); -	INIT_WORK(&x->chg_work, usb_phy_notify_charger_work); -	x->chg_type = UNKNOWN_TYPE; -	x->chg_state = USB_CHARGER_DEFAULT;  	if (x->type_nb.notifier_call)  		__usb_phy_get_charger_type(x); @@ -704,6 +708,7 @@ int usb_add_phy(struct usb_phy *x, enum usb_phy_type type)  		return -EINVAL;  	} +	usb_charger_init(x);  	ret = usb_add_extcon(x);  	if (ret)  		return ret; @@ -749,6 +754,7 @@ int usb_add_phy_dev(struct usb_phy *x)  		return -EINVAL;  	} +	usb_charger_init(x);  	ret = usb_add_extcon(x);  	if (ret)  		return ret; |