mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
[ARM] USB: update pxa27x ohci driver to use clk support
Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
88d456386c
commit
a8bcf4108d
@ -22,6 +22,7 @@
|
||||
#include <linux/device.h>
|
||||
#include <linux/signal.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/clk.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/hardware.h>
|
||||
@ -32,6 +33,8 @@
|
||||
|
||||
#define UHCRHPS(x) __REG2( 0x4C000050, (x)<<2 )
|
||||
|
||||
static struct clk *usb_clk;
|
||||
|
||||
/*
|
||||
PMM_NPS_MODE -- PMM Non-power switching mode
|
||||
Ports are powered continuously.
|
||||
@ -80,7 +83,7 @@ static int pxa27x_start_hc(struct device *dev)
|
||||
|
||||
inf = dev->platform_data;
|
||||
|
||||
pxa_set_cken(CKEN_USBHOST, 1);
|
||||
clk_enable(usb_clk);
|
||||
|
||||
UHCHR |= UHCHR_FHR;
|
||||
udelay(11);
|
||||
@ -123,7 +126,7 @@ static void pxa27x_stop_hc(struct device *dev)
|
||||
UHCCOMS |= 1;
|
||||
udelay(10);
|
||||
|
||||
pxa_set_cken(CKEN_USBHOST, 0);
|
||||
clk_disable(usb_clk);
|
||||
}
|
||||
|
||||
|
||||
@ -158,6 +161,10 @@ int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
usb_clk = clk_get(&pdev->dev, "USBCLK");
|
||||
if (IS_ERR(usb_clk))
|
||||
return PTR_ERR(usb_clk);
|
||||
|
||||
hcd = usb_create_hcd (driver, &pdev->dev, "pxa27x");
|
||||
if (!hcd)
|
||||
return -ENOMEM;
|
||||
@ -201,6 +208,7 @@ int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device
|
||||
release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
|
||||
err1:
|
||||
usb_put_hcd(hcd);
|
||||
clk_put(usb_clk);
|
||||
return retval;
|
||||
}
|
||||
|
||||
@ -225,6 +233,7 @@ void usb_hcd_pxa27x_remove (struct usb_hcd *hcd, struct platform_device *pdev)
|
||||
iounmap(hcd->regs);
|
||||
release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
|
||||
usb_put_hcd(hcd);
|
||||
clk_put(usb_clk);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
Loading…
Reference in New Issue
Block a user