Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 173325
b: refs/heads/master
c: e5d3d25
h: refs/heads/master
i:
  173323: 01f8a07
v: v3
  • Loading branch information
Sergei Shtylyov authored and Kevin Hilman committed Nov 25, 2009
1 parent f0e9236 commit 4877842
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 371b53e02546dd49249e8a4ffdafcc649b348357
refs/heads/master: e5d3d252d5e06e846d767166e254831b711ee243
2 changes: 2 additions & 0 deletions trunk/arch/arm/mach-davinci/include/mach/da8xx.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <mach/emac.h>
#include <mach/asp.h>
#include <mach/mmc.h>
#include <mach/usb.h>

extern void __iomem *da8xx_syscfg_base;

Expand Down Expand Up @@ -78,6 +79,7 @@ void __init da850_init(void);
int da8xx_register_edma(void);
int da8xx_register_i2c(int instance, struct davinci_i2c_platform_data *pdata);
int da8xx_register_watchdog(void);
int da8xx_register_usb11(struct da8xx_ohci_root_hub *pdata);
int da8xx_register_emac(void);
int da8xx_register_lcdc(struct da8xx_lcdc_platform_data *pdata);
int da8xx_register_mmcsd0(struct davinci_mmc_config *config);
Expand Down
20 changes: 20 additions & 0 deletions trunk/arch/arm/mach-davinci/include/mach/usb.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,24 @@
#define CFGCHIP2_REFFREQ_24MHZ (2 << 0)
#define CFGCHIP2_REFFREQ_48MHZ (3 << 0)

struct da8xx_ohci_root_hub;

typedef void (*da8xx_ocic_handler_t)(struct da8xx_ohci_root_hub *hub,
unsigned port);

/* Passed as the platform data to the OHCI driver */
struct da8xx_ohci_root_hub {
/* Switch the port power on/off */
int (*set_power)(unsigned port, int on);
/* Read the port power status */
int (*get_power)(unsigned port);
/* Read the port over-current indicator */
int (*get_oci)(unsigned port);
/* Over-current indicator change notification (pass NULL to disable) */
int (*ocic_notify)(da8xx_ocic_handler_t handler);

/* Time from power on to power good (in 2 ms units) */
u8 potpgt;
};

#endif /* ifndef __ASM_ARCH_USB_H */
37 changes: 36 additions & 1 deletion trunk/arch/arm/mach-davinci/usb.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@
#include <mach/hardware.h>
#include <mach/irqs.h>
#include <mach/cputype.h>
#include <mach/usb.h>

#define DAVINCI_USB_OTG_BASE 0x01C64000
#define DAVINCI_USB_OTG_BASE 0x01c64000
#define DA8XX_USB1_BASE 0x01e25000

#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
static struct musb_hdrc_eps_bits musb_eps[] = {
Expand Down Expand Up @@ -108,3 +110,36 @@ void __init setup_usb(unsigned mA, unsigned potpgt_msec)

#endif /* CONFIG_USB_MUSB_HDRC */

#ifdef CONFIG_ARCH_DAVINCI_DA8XX
static struct resource da8xx_usb11_resources[] = {
[0] = {
.start = DA8XX_USB1_BASE,
.end = DA8XX_USB1_BASE + SZ_4K - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_DA8XX_IRQN,
.end = IRQ_DA8XX_IRQN,
.flags = IORESOURCE_IRQ,
},
};

static u64 da8xx_usb11_dma_mask = DMA_BIT_MASK(32);

static struct platform_device da8xx_usb11_device = {
.name = "ohci",
.id = 0,
.dev = {
.dma_mask = &da8xx_usb11_dma_mask,
.coherent_dma_mask = DMA_BIT_MASK(32),
},
.num_resources = ARRAY_SIZE(da8xx_usb11_resources),
.resource = da8xx_usb11_resources,
};

int __init da8xx_register_usb11(struct da8xx_ohci_root_hub *pdata)
{
da8xx_usb11_device.dev.platform_data = pdata;
return platform_device_register(&da8xx_usb11_device);
}
#endif /* CONFIG_DAVINCI_DA8XX */

0 comments on commit 4877842

Please sign in to comment.