aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/linux/linux-omap-2.6.27/musb-fix-dbrownell.patch
blob: 3526cd3ca69937ef398a28e1edd064abe6cda882 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
From: David Brownell <dbrownell@users.sourceforge.net>

Minor cleanups to omap 2430/34xx/35x musb_hdrc init:

 - num_eps is 16; here, each one is bidirectional
 - use DMA_32BIT_MASK to prevent confusion/errors
 - initialize root port power to reflect 100 mA limit

This still hard-wires some board-specific data, since there
are no hooks through which different boards can provide the
right data to the init code.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>

--- a/arch/arm/mach-omap2/usb-musb.c
+++ b/arch/arm/mach-omap2/usb-musb.c
@@ -21,12 +21,15 @@
 #include <linux/delay.h>
 #include <linux/platform_device.h>
 #include <linux/clk.h>
+#include <linux/dma-mapping.h>
+
 #include <asm/io.h>
-#include <mach/mux.h>
+
 #include <linux/usb/musb.h>
 
 #include <mach/hardware.h>
 #include <mach/pm.h>
+#include <mach/mux.h>
 #include <mach/usb.h>
 
 #ifdef CONFIG_USB_MUSB_SOC
@@ -109,7 +112,7 @@ static struct musb_hdrc_config musb_config = {
 	.dyn_fifo	= 1,
 	.soft_con	= 1,
 	.dma		= 1,
-	.num_eps	= 32,
+	.num_eps	= 16,
 	.dma_channels	= 7,
 	.dma_req_chan	= (1 << 0) | (1 << 1) | (1 << 2) | (1 << 3),
 	.ram_bits	= 12,
@@ -129,16 +132,22 @@ static struct musb_hdrc_platform_data musb_plat = {
 			: "usbhs_ick",
 	.set_clock	= musb_set_clock,
 	.config		= &musb_config,
+
+	/* REVISIT charge pump on TWL4030 can supply up to
+	 * 100 mA ... but this value is board-specific, like
+	 * "mode", and should be passed to usb_musb_init().
+	 */
+	.power		= 50,			/* up to 100 mA */
 };
 
-static u64 musb_dmamask = ~(u32)0;
+static u64 musb_dmamask = DMA_32BIT_MASK;
 
 static struct platform_device musb_device = {
 	.name		= "musb_hdrc",
 	.id		= -1,
 	.dev = {
 		.dma_mask		= &musb_dmamask,
-		.coherent_dma_mask	= 0xffffffff,
+		.coherent_dma_mask	= DMA_32BIT_MASK,
 		.platform_data		= &musb_plat,
 	},
 	.num_resources	= ARRAY_SIZE(musb_resources),
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html