diff options
author | Jonas Aberg <jonas.aberg@stericsson.com> | 2012-01-24 11:08:39 +0530 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 11:03:17 +0200 |
commit | 30600535dfe60c8092d799fdfa3fc16f47393861 (patch) | |
tree | 15439e297b78e83f0d1500483758f9868a4c5b99 /arch/arm | |
parent | 395aea0fb7e8317b35530551cbb03d9e2fc962b7 (diff) |
u8500: musb: Add pm runtime support
Add pm runtime support for musb, including both pin and
clock handling.
ST-Ericsson Linux next: -
ST-Ericsson ID: 370128, 375498
ST-Ericsson FOSS-OUT ID: Trivial
Change-Id: Idf72a6f226d1309d5a13b358e653ee97469e5ae6
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com>
Signed-off-by: Sakethram Bommisetti <sakethram.bommisetti@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/44709
Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-ux500/board-mop500.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ux500/include/mach/usb.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-ux500/usb.c | 4 |
3 files changed, 8 insertions, 4 deletions
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index 5c1da28427b..77d03c1fbd0 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c @@ -53,7 +53,6 @@ #include "devices-db8500.h" #include "board-mop500.h" #include "board-mop500-regulators.h" -#include "board-ux500-usb.h" static struct gpio_led snowball_led_array[] = { { @@ -195,7 +194,6 @@ static struct ab8500_platform_data ab8500_platdata = { .regulator = ab8500_regulators, .num_regulator = ARRAY_SIZE(ab8500_regulators), .gpio = &ab8500_gpio_pdata, - .usb = &abx500_usbgpio_plat_data, }; static struct resource ab8500_resources[] = { diff --git a/arch/arm/mach-ux500/include/mach/usb.h b/arch/arm/mach-ux500/include/mach/usb.h index 2d1e54070f2..700d9dbb1be 100644 --- a/arch/arm/mach-ux500/include/mach/usb.h +++ b/arch/arm/mach-ux500/include/mach/usb.h @@ -12,6 +12,8 @@ #define UX500_MUSB_DMA_NUM_RX_CHANNELS 8 #define UX500_MUSB_DMA_NUM_TX_CHANNELS 8 +struct musb; + struct ux500_musb_board_data { void **dma_rx_param_array; void **dma_tx_param_array; @@ -23,6 +25,7 @@ struct ux500_musb_board_data { void ux500_add_usb(struct device *parent, resource_size_t base, int irq, int *dma_rx_cfg, int *dma_tx_cfg); +/* Only used for u5500 */ struct abx500_usbgpio_platform_data { int (*get)(struct device *device); void (*enable)(void); @@ -30,6 +33,5 @@ struct abx500_usbgpio_platform_data { void (*put)(void); int usb_cs; }; - -void ux500_restore_context(void); +void ux500_restore_context(struct musb *musb); #endif diff --git a/arch/arm/mach-ux500/usb.c b/arch/arm/mach-ux500/usb.c index ca84e040e99..fb1f6775154 100644 --- a/arch/arm/mach-ux500/usb.c +++ b/arch/arm/mach-ux500/usb.c @@ -11,6 +11,7 @@ #include <plat/ste_dma40.h> #include <mach/hardware.h> #include <mach/usb.h> +#include <mach/pm.h> #include <plat/pincfg.h> #include "pins.h" #include "board-ux500-usb.h" @@ -170,6 +171,9 @@ struct platform_device ux500_musb_device = { .platform_data = &musb_platform_data, .dma_mask = &ux500_musb_dmamask, .coherent_dma_mask = DMA_BIT_MASK(32), +#ifdef CONFIG_UX500_SOC_DB8500 + .pm_domain = &ux500_dev_power_domain, +#endif }, .num_resources = ARRAY_SIZE(usb_resources), .resource = usb_resources, |