@@ -23,6 +23,7 @@
#include <linux/err.h>
#include <linux/clk.h>
#include <linux/io.h>
+#include <linux/usb/musb.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
@@ -194,6 +195,10 @@ static struct twl4030_hsmmc_info mmc[] __initdata = {
{} /* Terminator */
};
+static struct musb_hdrc_board_data musb_bdata __initdata = {
+ .power = 50
+};
+
static void __init omap_2430sdp_init(void)
{
int ret;
@@ -203,7 +208,7 @@ static void __init omap_2430sdp_init(void)
platform_add_devices(sdp2430_devices, ARRAY_SIZE(sdp2430_devices));
omap_serial_init();
twl4030_mmc_init(mmc);
- usb_musb_init();
+ usb_musb_init(&musb_bdata);
board_smc91x_init();
/* Turn off secondary LCD backlight */
@@ -24,6 +24,7 @@
#include <linux/regulator/machine.h>
#include <linux/io.h>
#include <linux/gpio.h>
+#include <linux/usb/musb.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
@@ -484,6 +485,10 @@ static void enable_board_wakeup_source(void)
omap_cfg_reg(AF26_34XX_SYS_NIRQ); /* T2 interrupt line (keypad) */
}
+static struct musb_hdrc_board_data musb_bdata __initdata = {
+ .power = 50
+};
+
static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
.port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
@@ -509,7 +514,7 @@ static void __init omap_3430sdp_init(void)
ARRAY_SIZE(sdp3430_spi_board_info));
ads7846_dev_init();
omap_serial_init();
- usb_musb_init();
+ usb_musb_init(&musb_bdata);
board_smc91x_init();
enable_board_wakeup_source();
usb_ehci_init(&ehci_pdata);
@@ -31,6 +31,7 @@
#include <linux/i2c/at24.h>
#include <linux/i2c/twl4030.h>
#include <linux/regulator/machine.h>
+#include <linux/usb/musb.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -383,6 +384,10 @@ static struct twl4030_hsmmc_info mmc[] = {
{} /* Terminator */
};
+static struct musb_hdrc_board_data musb_bdata __initdata = {
+ .power = 50
+};
+
static struct ehci_hcd_omap_platform_data ehci_pdata = {
.port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
.port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
@@ -491,7 +496,7 @@ static void __init cm_t35_init(void)
cm_t35_init_ethernet();
cm_t35_init_led();
- usb_musb_init();
+ usb_musb_init(&musb_bdata);
omap_cfg_reg(AF26_34XX_SYS_NIRQ);
}
@@ -27,6 +27,7 @@
#include <linux/i2c/twl4030.h>
#include <linux/io.h>
#include <linux/smsc911x.h>
+#include <linux/usb/musb.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
@@ -374,6 +375,10 @@ static struct platform_device *ldp_devices[] __initdata = {
&ldp_gpio_keys_device,
};
+static struct musb_hdrc_board_data musb_bdata __initdata = {
+ .power = 50
+};
+
static void __init omap_ldp_init(void)
{
omap_i2c_init();
@@ -384,7 +389,7 @@ static void __init omap_ldp_init(void)
ARRAY_SIZE(ldp_spi_board_info));
ads7846_dev_init();
omap_serial_init();
- usb_musb_init();
+ usb_musb_init(&musb_bdata);
twl4030_mmc_init(mmc);
/* link regulators to MMC adapters */
@@ -30,6 +30,7 @@
#include <linux/regulator/machine.h>
#include <linux/i2c/twl4030.h>
+#include <linux/usb/musb.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
@@ -400,6 +401,10 @@ static void __init omap3beagle_flash_init(void)
}
}
+static struct musb_hdrc_board_data musb_bdata __initdata = {
+ .power = 50
+};
+
static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
.port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
@@ -424,7 +429,7 @@ static void __init omap3_beagle_init(void)
/* REVISIT leave DVI powered down until it's needed ... */
gpio_direction_output(170, true);
- usb_musb_init();
+ usb_musb_init(&musb_bdata);
usb_ehci_init(&ehci_pdata);
omap3beagle_flash_init();
@@ -27,6 +27,7 @@
#include <linux/spi/ads7846.h>
#include <linux/i2c/twl4030.h>
#include <linux/usb/otg.h>
+#include <linux/usb/musb.h>
#include <linux/regulator/machine.h>
@@ -376,6 +377,10 @@ static struct platform_device *omap3_evm_devices[] __initdata = {
&omap3evm_smc911x_device,
};
+static struct musb_hdrc_board_data musb_bdata __initdata = {
+ .power = 50
+};
+
static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
.port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
@@ -427,7 +432,7 @@ static void __init omap3_evm_init(void)
omap_cfg_reg(AF4_34XX_GPIO135_OUT);
ehci_pdata.reset_gpio_port[1] = 135;
}
- usb_musb_init();
+ usb_musb_init(&musb_bdata);
usb_ehci_init(&ehci_pdata);
ads7846_dev_init();
}
@@ -29,6 +29,7 @@
#include <linux/input.h>
#include <linux/input/matrix_keypad.h>
#include <linux/gpio_keys.h>
+#include <linux/usb/musb.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -387,6 +388,10 @@ static struct platform_device *omap3pandora_devices[] __initdata = {
&pandora_keys_gpio,
};
+static struct musb_hdrc_board_data musb_bdata __initdata = {
+ .power = 50
+};
+
static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
.port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
@@ -410,7 +415,7 @@ static void __init omap3pandora_init(void)
omap3pandora_ads7846_init();
usb_ehci_init(&ehci_pdata);
pandora_keys_gpio_init();
- usb_musb_init();
+ usb_musb_init(&musb_bdata);
/* Ensure SDRC pins are mux'd for self-refresh */
omap_cfg_reg(H16_34XX_SDRC_CKE0);
@@ -32,6 +32,7 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>
+#include <linux/usb/musb.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -384,6 +385,10 @@ static struct platform_device *overo_devices[] __initdata = {
&overo_lcd_device,
};
+static struct musb_hdrc_board_data musb_bdata __initdata = {
+ .power = 50
+};
+
static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
.port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
.port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
@@ -402,7 +407,7 @@ static void __init overo_init(void)
platform_add_devices(overo_devices, ARRAY_SIZE(overo_devices));
omap_serial_init();
overo_flash_init();
- usb_musb_init();
+ usb_musb_init(&musb_bdata);
usb_ehci_init(&ehci_pdata);
overo_ads7846_init();
overo_init_smsc911x();
@@ -16,6 +16,7 @@
#include <linux/clk.h>
#include <linux/io.h>
#include <linux/gpio.h>
+#include <linux/usb/musb.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
@@ -55,6 +56,10 @@ static struct omap_board_config_kernel rx51_config[] = {
{ OMAP_TAG_LCD, &rx51_lcd_config },
};
+static struct musb_hdrc_board_data musb_bdata __initdata = {
+ .power = 50
+};
+
static void __init rx51_init_irq(void)
{
struct omap_sdrc_params *sdrc_params;
@@ -72,7 +77,7 @@ extern void __init rx51_peripherals_init(void);
static void __init rx51_init(void)
{
omap_serial_init();
- usb_musb_init();
+ usb_musb_init(&musb_bdata);
rx51_peripherals_init();
/* Ensure SDRC pins are mux'd for self-refresh */
@@ -140,8 +140,11 @@ static struct platform_device musb_device = {
.resource = musb_resources,
};
-void __init usb_musb_init(void)
+void __init usb_musb_init(struct musb_hdrc_board_data *board_data)
{
+ /* get board-specific data */
+ musb_plat.board_data = board_data;
+
if (cpu_is_omap243x())
musb_resources[0].start = OMAP243X_HS_BASE;
else
@@ -161,7 +164,7 @@ void __init usb_musb_init(void)
}
#else
-void __init usb_musb_init(void)
+void __init usb_musb_init(struct musb_hdrc_board_data *board_data)
{
}
#endif /* CONFIG_USB_MUSB_SOC */
@@ -3,6 +3,7 @@
#ifndef __ASM_ARCH_OMAP_USB_H
#define __ASM_ARCH_OMAP_USB_H
+#include <linux/usb/musb.h>
#include <plat/board.h>
#define OMAP3_HS_USB_PORTS 3
@@ -42,7 +43,7 @@ struct ehci_hcd_omap_platform_data {
#define UDC_BASE OMAP2_UDC_BASE
#define OMAP_OHCI_BASE OMAP2_OHCI_BASE
-extern void usb_musb_init(void);
+extern void usb_musb_init(struct musb_hdrc_board_data *board_data);
extern void usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata);