Commit 472a6786 authored by Hans-Christian Egtvedt's avatar Hans-Christian Egtvedt Committed by Haavard Skinnemoen

atmel-usba-udc: use gpio_is_valid() to check vbus_pin I/O line

This patch will convert to use gpio_is_valid() to check the vbus_pin
platform data. It will also default to -ENODEV if no vbus_pin is
defined.
Signed-off-by: default avatarHans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Signed-off-by: default avatarHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
parent b2a49ed0
...@@ -319,7 +319,7 @@ static inline void usba_cleanup_debugfs(struct usba_udc *udc) ...@@ -319,7 +319,7 @@ static inline void usba_cleanup_debugfs(struct usba_udc *udc)
static int vbus_is_present(struct usba_udc *udc) static int vbus_is_present(struct usba_udc *udc)
{ {
if (udc->vbus_pin != -1) if (gpio_is_valid(udc->vbus_pin))
return gpio_get_value(udc->vbus_pin); return gpio_get_value(udc->vbus_pin);
/* No Vbus detection: Assume always present */ /* No Vbus detection: Assume always present */
...@@ -1821,7 +1821,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver) ...@@ -1821,7 +1821,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
DBG(DBG_GADGET, "registered driver `%s'\n", driver->driver.name); DBG(DBG_GADGET, "registered driver `%s'\n", driver->driver.name);
udc->vbus_prev = 0; udc->vbus_prev = 0;
if (udc->vbus_pin != -1) if (gpio_is_valid(udc->vbus_pin))
enable_irq(gpio_to_irq(udc->vbus_pin)); enable_irq(gpio_to_irq(udc->vbus_pin));
/* If Vbus is present, enable the controller and wait for reset */ /* If Vbus is present, enable the controller and wait for reset */
...@@ -1852,7 +1852,7 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) ...@@ -1852,7 +1852,7 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
if (driver != udc->driver || !driver->unbind) if (driver != udc->driver || !driver->unbind)
return -EINVAL; return -EINVAL;
if (udc->vbus_pin != -1) if (gpio_is_valid(udc->vbus_pin))
disable_irq(gpio_to_irq(udc->vbus_pin)); disable_irq(gpio_to_irq(udc->vbus_pin));
spin_lock_irqsave(&udc->lock, flags); spin_lock_irqsave(&udc->lock, flags);
...@@ -1910,7 +1910,7 @@ static int __init usba_udc_probe(struct platform_device *pdev) ...@@ -1910,7 +1910,7 @@ static int __init usba_udc_probe(struct platform_device *pdev)
udc->pdev = pdev; udc->pdev = pdev;
udc->pclk = pclk; udc->pclk = pclk;
udc->hclk = hclk; udc->hclk = hclk;
udc->vbus_pin = -1; udc->vbus_pin = -ENODEV;
ret = -ENOMEM; ret = -ENOMEM;
udc->regs = ioremap(regs->start, regs->end - regs->start + 1); udc->regs = ioremap(regs->start, regs->end - regs->start + 1);
...@@ -1996,7 +1996,7 @@ static int __init usba_udc_probe(struct platform_device *pdev) ...@@ -1996,7 +1996,7 @@ static int __init usba_udc_probe(struct platform_device *pdev)
goto err_device_add; goto err_device_add;
} }
if (pdata->vbus_pin >= 0) { if (gpio_is_valid(pdata->vbus_pin)) {
if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) { if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
udc->vbus_pin = pdata->vbus_pin; udc->vbus_pin = pdata->vbus_pin;
...@@ -2005,7 +2005,7 @@ static int __init usba_udc_probe(struct platform_device *pdev) ...@@ -2005,7 +2005,7 @@ static int __init usba_udc_probe(struct platform_device *pdev)
"atmel_usba_udc", udc); "atmel_usba_udc", udc);
if (ret) { if (ret) {
gpio_free(udc->vbus_pin); gpio_free(udc->vbus_pin);
udc->vbus_pin = -1; udc->vbus_pin = -ENODEV;
dev_warn(&udc->pdev->dev, dev_warn(&udc->pdev->dev,
"failed to request vbus irq; " "failed to request vbus irq; "
"assuming always on\n"); "assuming always on\n");
...@@ -2051,7 +2051,7 @@ static int __exit usba_udc_remove(struct platform_device *pdev) ...@@ -2051,7 +2051,7 @@ static int __exit usba_udc_remove(struct platform_device *pdev)
usba_ep_cleanup_debugfs(&usba_ep[i]); usba_ep_cleanup_debugfs(&usba_ep[i]);
usba_cleanup_debugfs(udc); usba_cleanup_debugfs(udc);
if (udc->vbus_pin != -1) if (gpio_is_valid(udc->vbus_pin))
gpio_free(udc->vbus_pin); gpio_free(udc->vbus_pin);
free_irq(udc->irq, udc); free_irq(udc->irq, udc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment