Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-upstream
Conflicts: drivers/uwb/wlp/eda.c
This commit is contained in:
@@ -33,8 +33,9 @@
|
||||
/*
|
||||
* Implement Orion USB controller specification guidelines
|
||||
*/
|
||||
static void orion_usb_setup(struct usb_hcd *hcd)
|
||||
static void orion_usb_phy_v1_setup(struct usb_hcd *hcd)
|
||||
{
|
||||
/* The below GLs are according to the Orion Errata document */
|
||||
/*
|
||||
* Clear interrupt cause and mask
|
||||
*/
|
||||
@@ -258,9 +259,19 @@ static int __init ehci_orion_drv_probe(struct platform_device *pdev)
|
||||
ehci_orion_conf_mbus_windows(hcd, pd->dram);
|
||||
|
||||
/*
|
||||
* setup Orion USB controller
|
||||
* setup Orion USB controller.
|
||||
*/
|
||||
orion_usb_setup(hcd);
|
||||
switch (pd->phy_version) {
|
||||
case EHCI_PHY_NA: /* dont change USB phy settings */
|
||||
break;
|
||||
case EHCI_PHY_ORION:
|
||||
orion_usb_phy_v1_setup(hcd);
|
||||
break;
|
||||
case EHCI_PHY_DD:
|
||||
case EHCI_PHY_KW:
|
||||
default:
|
||||
printk(KERN_WARNING "Orion ehci -USB phy version isn't supported.\n");
|
||||
}
|
||||
|
||||
err = usb_add_hcd(hcd, irq, IRQF_SHARED | IRQF_DISABLED);
|
||||
if (err)
|
||||
|
@@ -18,6 +18,7 @@
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/io.h>
|
||||
@@ -25,7 +26,6 @@
|
||||
|
||||
#include <mach/mux.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/fpga.h>
|
||||
#include <mach/usb.h>
|
||||
|
||||
@@ -254,8 +254,8 @@ static int ohci_omap_init(struct usb_hcd *hcd)
|
||||
|
||||
/* gpio9 for overcurrent detction */
|
||||
omap_cfg_reg(W8_1610_GPIO9);
|
||||
omap_request_gpio(9);
|
||||
omap_set_gpio_direction(9, 1 /* IN */);
|
||||
gpio_request(9, "OHCI overcurrent");
|
||||
gpio_direction_input(9);
|
||||
|
||||
/* for paranoia's sake: disable USB.PUEN */
|
||||
omap_cfg_reg(W4_USB_HIGHZ);
|
||||
@@ -407,7 +407,7 @@ usb_hcd_omap_remove (struct usb_hcd *hcd, struct platform_device *pdev)
|
||||
put_device(ohci->transceiver->dev);
|
||||
}
|
||||
if (machine_is_omap_osk())
|
||||
omap_free_gpio(9);
|
||||
gpio_free(9);
|
||||
iounmap(hcd->regs);
|
||||
release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
|
||||
usb_put_hcd(hcd);
|
||||
|
@@ -296,7 +296,7 @@ int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
usb_clk = clk_get(&pdev->dev, "USBCLK");
|
||||
usb_clk = clk_get(&pdev->dev, NULL);
|
||||
if (IS_ERR(usb_clk))
|
||||
return PTR_ERR(usb_clk);
|
||||
|
||||
|
@@ -114,6 +114,9 @@ static int r8a66597_clock_enable(struct r8a66597 *r8a66597)
|
||||
int i = 0;
|
||||
|
||||
#if defined(CONFIG_SUPERH_ON_CHIP_R8A66597)
|
||||
#if defined(CONFIG_HAVE_CLK)
|
||||
clk_enable(r8a66597->clk);
|
||||
#endif
|
||||
do {
|
||||
r8a66597_write(r8a66597, SCKE, SYSCFG0);
|
||||
tmp = r8a66597_read(r8a66597, SYSCFG0);
|
||||
@@ -154,7 +157,11 @@ static void r8a66597_clock_disable(struct r8a66597 *r8a66597)
|
||||
{
|
||||
r8a66597_bclr(r8a66597, SCKE, SYSCFG0);
|
||||
udelay(1);
|
||||
#if !defined(CONFIG_SUPERH_ON_CHIP_R8A66597)
|
||||
#if defined(CONFIG_SUPERH_ON_CHIP_R8A66597)
|
||||
#if defined(CONFIG_HAVE_CLK)
|
||||
clk_disable(r8a66597->clk);
|
||||
#endif
|
||||
#else
|
||||
r8a66597_bclr(r8a66597, PLLC, SYSCFG0);
|
||||
r8a66597_bclr(r8a66597, XCKE, SYSCFG0);
|
||||
r8a66597_bclr(r8a66597, USBE, SYSCFG0);
|
||||
@@ -2261,6 +2268,9 @@ static int __init_or_module r8a66597_remove(struct platform_device *pdev)
|
||||
del_timer_sync(&r8a66597->rh_timer);
|
||||
usb_remove_hcd(hcd);
|
||||
iounmap((void *)r8a66597->reg);
|
||||
#if defined(CONFIG_SUPERH_ON_CHIP_R8A66597) && defined(CONFIG_HAVE_CLK)
|
||||
clk_put(r8a66597->clk);
|
||||
#endif
|
||||
usb_put_hcd(hcd);
|
||||
return 0;
|
||||
}
|
||||
@@ -2268,6 +2278,9 @@ static int __init_or_module r8a66597_remove(struct platform_device *pdev)
|
||||
#define resource_len(r) (((r)->end - (r)->start) + 1)
|
||||
static int __init r8a66597_probe(struct platform_device *pdev)
|
||||
{
|
||||
#if defined(CONFIG_SUPERH_ON_CHIP_R8A66597) && defined(CONFIG_HAVE_CLK)
|
||||
char clk_name[8];
|
||||
#endif
|
||||
struct resource *res = NULL, *ires;
|
||||
int irq = -1;
|
||||
void __iomem *reg = NULL;
|
||||
@@ -2320,6 +2333,16 @@ static int __init r8a66597_probe(struct platform_device *pdev)
|
||||
memset(r8a66597, 0, sizeof(struct r8a66597));
|
||||
dev_set_drvdata(&pdev->dev, r8a66597);
|
||||
|
||||
#if defined(CONFIG_SUPERH_ON_CHIP_R8A66597) && defined(CONFIG_HAVE_CLK)
|
||||
snprintf(clk_name, sizeof(clk_name), "usb%d", pdev->id);
|
||||
r8a66597->clk = clk_get(&pdev->dev, clk_name);
|
||||
if (IS_ERR(r8a66597->clk)) {
|
||||
dev_err(&pdev->dev, "cannot get clock \"%s\"\n", clk_name);
|
||||
ret = PTR_ERR(r8a66597->clk);
|
||||
goto clean_up2;
|
||||
}
|
||||
#endif
|
||||
|
||||
spin_lock_init(&r8a66597->lock);
|
||||
init_timer(&r8a66597->rh_timer);
|
||||
r8a66597->rh_timer.function = r8a66597_timer;
|
||||
@@ -2365,11 +2388,18 @@ static int __init r8a66597_probe(struct platform_device *pdev)
|
||||
ret = usb_add_hcd(hcd, irq, IRQF_DISABLED | irq_trigger);
|
||||
if (ret != 0) {
|
||||
dev_err(&pdev->dev, "Failed to add hcd\n");
|
||||
goto clean_up;
|
||||
goto clean_up3;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
clean_up3:
|
||||
#if defined(CONFIG_SUPERH_ON_CHIP_R8A66597) && defined(CONFIG_HAVE_CLK)
|
||||
clk_put(r8a66597->clk);
|
||||
clean_up2:
|
||||
#endif
|
||||
usb_put_hcd(hcd);
|
||||
|
||||
clean_up:
|
||||
if (reg)
|
||||
iounmap(reg);
|
||||
|
@@ -26,6 +26,10 @@
|
||||
#ifndef __R8A66597_H__
|
||||
#define __R8A66597_H__
|
||||
|
||||
#if defined(CONFIG_SUPERH_ON_CHIP_R8A66597) && defined(CONFIG_HAVE_CLK)
|
||||
#include <linux/clk.h>
|
||||
#endif
|
||||
|
||||
#define SYSCFG0 0x00
|
||||
#define SYSCFG1 0x02
|
||||
#define SYSSTS0 0x04
|
||||
@@ -481,7 +485,9 @@ struct r8a66597_root_hub {
|
||||
struct r8a66597 {
|
||||
spinlock_t lock;
|
||||
unsigned long reg;
|
||||
|
||||
#if defined(CONFIG_SUPERH_ON_CHIP_R8A66597) && defined(CONFIG_HAVE_CLK)
|
||||
struct clk *clk;
|
||||
#endif
|
||||
struct r8a66597_device device0;
|
||||
struct r8a66597_root_hub root_hub[R8A66597_MAX_ROOT_HUB];
|
||||
struct list_head pipe_queue[R8A66597_MAX_NUM_PIPE];
|
||||
|
Reference in New Issue
Block a user