diff options
Diffstat (limited to 'arch/arm/mach-at91rm9200/pm.c')
-rw-r--r-- | arch/arm/mach-at91rm9200/pm.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/arch/arm/mach-at91rm9200/pm.c b/arch/arm/mach-at91rm9200/pm.c index 32c95d8eaacf..67aa5572a3ea 100644 --- a/arch/arm/mach-at91rm9200/pm.c +++ b/arch/arm/mach-at91rm9200/pm.c | |||
@@ -26,7 +26,10 @@ | |||
26 | #include <asm/mach/irq.h> | 26 | #include <asm/mach/irq.h> |
27 | #include <asm/mach-types.h> | 27 | #include <asm/mach-types.h> |
28 | 28 | ||
29 | #include <asm/arch/at91_pmc.h> | ||
30 | #include <asm/arch/at91rm9200_mc.h> | ||
29 | #include <asm/arch/gpio.h> | 31 | #include <asm/arch/gpio.h> |
32 | #include <asm/arch/cpu.h> | ||
30 | 33 | ||
31 | #include "generic.h" | 34 | #include "generic.h" |
32 | 35 | ||
@@ -68,9 +71,15 @@ static int at91_pm_verify_clocks(void) | |||
68 | scsr = at91_sys_read(AT91_PMC_SCSR); | 71 | scsr = at91_sys_read(AT91_PMC_SCSR); |
69 | 72 | ||
70 | /* USB must not be using PLLB */ | 73 | /* USB must not be using PLLB */ |
71 | if ((scsr & (AT91_PMC_UHP | AT91_PMC_UDP)) != 0) { | 74 | if (cpu_is_at91rm9200()) { |
72 | pr_debug("AT91: PM - Suspend-to-RAM with USB still active\n"); | 75 | if ((scsr & (AT91RM9200_PMC_UHP | AT91RM9200_PMC_UDP)) != 0) { |
73 | return 0; | 76 | pr_debug("AT91: PM - Suspend-to-RAM with USB still active\n"); |
77 | return 0; | ||
78 | } | ||
79 | } else if (cpu_is_at91sam9260()) { | ||
80 | #warning "Check SAM9260 USB clocks" | ||
81 | } else if (cpu_is_at91sam9261()) { | ||
82 | #warning "Check SAM9261 USB clocks" | ||
74 | } | 83 | } |
75 | 84 | ||
76 | #ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS | 85 | #ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS |
@@ -112,7 +121,6 @@ EXPORT_SYMBOL(at91_suspend_entering_slow_clock); | |||
112 | static void (*slow_clock)(void); | 121 | static void (*slow_clock)(void); |
113 | 122 | ||
114 | 123 | ||
115 | |||
116 | static int at91_pm_enter(suspend_state_t state) | 124 | static int at91_pm_enter(suspend_state_t state) |
117 | { | 125 | { |
118 | at91_gpio_suspend(); | 126 | at91_gpio_suspend(); |
@@ -123,13 +131,7 @@ static int at91_pm_enter(suspend_state_t state) | |||
123 | (at91_sys_read(AT91_PMC_PCSR) | 131 | (at91_sys_read(AT91_PMC_PCSR) |
124 | | (1 << AT91_ID_FIQ) | 132 | | (1 << AT91_ID_FIQ) |
125 | | (1 << AT91_ID_SYS) | 133 | | (1 << AT91_ID_SYS) |
126 | | (1 << AT91RM9200_ID_IRQ0) | 134 | | (at91_extern_irq)) |
127 | | (1 << AT91RM9200_ID_IRQ1) | ||
128 | | (1 << AT91RM9200_ID_IRQ2) | ||
129 | | (1 << AT91RM9200_ID_IRQ3) | ||
130 | | (1 << AT91RM9200_ID_IRQ4) | ||
131 | | (1 << AT91RM9200_ID_IRQ5) | ||
132 | | (1 << AT91RM9200_ID_IRQ6)) | ||
133 | & at91_sys_read(AT91_AIC_IMR), | 135 | & at91_sys_read(AT91_AIC_IMR), |
134 | state); | 136 | state); |
135 | 137 | ||