summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorJonas Aberg <jonas.aberg@stericsson.com>2012-01-24 11:08:39 +0530
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:03:17 +0200
commit30600535dfe60c8092d799fdfa3fc16f47393861 (patch)
tree15439e297b78e83f0d1500483758f9868a4c5b99 /arch/arm
parent395aea0fb7e8317b35530551cbb03d9e2fc962b7 (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.c2
-rw-r--r--arch/arm/mach-ux500/include/mach/usb.h6
-rw-r--r--arch/arm/mach-ux500/usb.c4
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,