aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPankaj <pankaj.dubey@samsung.com>2011-12-15 15:13:35 +0800
committerAndy Green <andy.green@linaro.org>2011-12-26 22:33:52 +0800
commitfd7173a9f939e55cff00f21ae5c2bf6dfe6399da (patch)
tree9422e2823f247fd3115282f394be0b585f488949
parent6b8e5e51cdfa64ba2c8e9d62b896ba7e3c19d11e (diff)
usb: gadget: s3c_udc_otg: Update as per new architecture
UDC gadget driver code is updated as per new architecture. Also the printk statements are changed to pr_ statements. Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
-rw-r--r--drivers/usb/gadget/s3c_udc_otg.c46
1 files changed, 24 insertions, 22 deletions
diff --git a/drivers/usb/gadget/s3c_udc_otg.c b/drivers/usb/gadget/s3c_udc_otg.c
index 8dee9746970..bfb1c667ec1 100644
--- a/drivers/usb/gadget/s3c_udc_otg.c
+++ b/drivers/usb/gadget/s3c_udc_otg.c
@@ -314,14 +314,13 @@ int s3c_udc_start(struct usb_gadget_driver *driver,
retval = device_add(&dev->gadget.dev);
if (retval) { /* TODO */
- printk(KERN_ERR "target device_add failed, error %d\n",
- retval);
+ pr_err("target device_add failed, error %d\n", retval);
return retval;
}
retval = bind(&dev->gadget);
if (retval) {
- printk(KERN_ERR "%s: bind to driver %s --> error %d\n",
+ pr_err("%s: bind to driver %s --> error %d\n",
dev->gadget.name, driver->driver.name, retval);
device_del(&dev->gadget.dev);
@@ -337,7 +336,7 @@ int s3c_udc_start(struct usb_gadget_driver *driver,
dev_dbg(&dev->gadget.dev, "%s vbus connect %d\n",
__func__, retval);
- printk(KERN_INFO "Registered gadget driver '%s'\n",
+ pr_info("Registered gadget driver '%s'\n",
driver->driver.name);
udc_enable(dev);
return 0;
@@ -366,7 +365,7 @@ int s3c_udc_stop(struct usb_gadget_driver *driver)
disable_irq(IRQ_USB_HSOTG);
- printk(KERN_DEBUG "Unregistered gadget driver '%s'\n",
+ pr_debug("Unregistered gadget driver '%s'\n",
driver->driver.name);
udc_disable(dev);
@@ -402,13 +401,9 @@ int s3c_vbus_enable(struct usb_gadget *gadget, int enable)
spin_unlock_irqrestore(&dev->lock, flags);
udc_disable(dev);
clk_disable(otg_clock);
- /* ToDo: Uncomment once regulator support has been added in machine file
s3c_udc_power(dev, 0);
- */
} else {
- /* ToDo: Uncomment once regulator support has been added in machine file
s3c_udc_power(dev, 1);
- */
clk_enable(otg_clock);
udc_reinit(dev);
udc_enable(dev);
@@ -862,10 +857,10 @@ void s3c_udc_soft_connect(void)
void s3c_udc_soft_disconnect(void)
{
u32 uTemp;
- DEBUG("[%s]\n", __func__);
struct s3c_udc *dev = the_controller;
unsigned long flags;
+ DEBUG("[%s]\n", __func__);
/* Mask the core interrupt */
writel(0, S3C_UDC_OTG_GINTMSK);
@@ -1169,23 +1164,20 @@ static int s3c_udc_probe(struct platform_device *pdev)
dev->gadget.b_hnp_enable = 0;
dev->gadget.a_hnp_support = 0;
dev->gadget.a_alt_hnp_support = 0;
- /*
- ToDo: Commented out as currently regulator is not implemented
- Need to enable once it is defined properly.
-
+
dev->udc_vcc_d = regulator_get(&pdev->dev, "pd_io");
dev->udc_vcc_a = regulator_get(&pdev->dev, "pd_core");
if (IS_ERR(dev->udc_vcc_d) || IS_ERR(dev->udc_vcc_a)) {
- printk(KERN_ERR "failed to find udc vcc source\n");
+ pr_err("failed to find udc vcc source\n");
return -ENOENT;
}
- */
+
the_controller = dev;
platform_set_drvdata(pdev, dev);
otg_clock = clk_get(&pdev->dev, "otg");
if (IS_ERR(otg_clock)) {
- printk(KERN_INFO "failed to find otg clock source\n");
+ pr_info("failed to find otg clock source\n");
return -ENOENT;
}
udc_reinit(dev);
@@ -1194,13 +1186,22 @@ static int s3c_udc_probe(struct platform_device *pdev)
retval = request_irq(IRQ_USB_HSOTG, s3c_udc_irq, 0, driver_name, dev);
if (retval != 0) {
- DEBUG(KERN_ERR "%s: can't get irq %i, err %d\n", driver_name,
- IRQ_USB_HSOTG, retval);
- return -EBUSY;
+ pr_err("can't get irq %i, err %d\n", IRQ_USB_HSOTG, retval);
+ goto err_req_irq;
}
disable_irq(IRQ_USB_HSOTG);
+ retval = usb_add_gadget_udc(&pdev->dev, &dev->gadget);
+ if (retval)
+ goto err_add_udc;
+
create_proc_files();
+
+ return retval;
+
+err_req_irq:
+err_add_udc:
+ clk_put(otg_clock);
return retval;
}
@@ -1214,6 +1215,7 @@ static int s3c_udc_remove(struct platform_device *pdev)
clk_put(otg_clock);
otg_clock = NULL;
}
+ usb_del_gadget_udc(&dev->gadget);
remove_proc_files();
usb_gadget_unregister_driver(dev->driver);
@@ -1294,7 +1296,7 @@ static int __init udc_init(void)
ret = platform_driver_register(&s3c_udc_driver);
if (!ret)
- printk(KERN_INFO "%s : %s\n"
+ pr_info("%s : %s\n"
"%s : version %s %s\n",
driver_name, DRIVER_DESC,
driver_name, DRIVER_VERSION,
@@ -1306,7 +1308,7 @@ static int __init udc_init(void)
static void __exit udc_exit(void)
{
platform_driver_unregister(&s3c_udc_driver);
- printk(KERN_INFO "Unloaded %s version %s\n",
+ pr_info("Unloaded %s version %s\n",
driver_name, DRIVER_VERSION);
}