diff options
Diffstat (limited to 'arch/arm/mach-pxa')
-rw-r--r-- | arch/arm/mach-pxa/Kconfig | 46 | ||||
-rw-r--r-- | arch/arm/mach-pxa/clock.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-pxa/clock.h | 12 | ||||
-rw-r--r-- | arch/arm/mach-pxa/cm-x270-pci.c | 26 | ||||
-rw-r--r-- | arch/arm/mach-pxa/corgi.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-pxa/corgi_pm.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-pxa/devices.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-pxa/em-x270.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-pxa/generic.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-pxa/irq.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-pxa/lpd270.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-pxa/magician.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-pxa/mfp-pxa2xx.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-pxa/poodle.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-pxa/pxa25x.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-pxa/pxa27x.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-pxa/pxa3xx.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/spitz_pm.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-pxa/standby.S | 83 | ||||
-rw-r--r-- | arch/arm/mach-pxa/trizeps4.c | 2 |
20 files changed, 141 insertions, 88 deletions
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig index 03cbd0f7285b..914bb33dab92 100644 --- a/arch/arm/mach-pxa/Kconfig +++ b/arch/arm/mach-pxa/Kconfig | |||
@@ -20,8 +20,7 @@ endmenu | |||
20 | 20 | ||
21 | endif | 21 | endif |
22 | 22 | ||
23 | choice | 23 | menu "Select target boards" |
24 | prompt "Select target board" | ||
25 | 24 | ||
26 | config ARCH_GUMSTIX | 25 | config ARCH_GUMSTIX |
27 | bool "Gumstix XScale boards" | 26 | bool "Gumstix XScale boards" |
@@ -141,7 +140,7 @@ config MACH_PCM027 | |||
141 | select PXA27x | 140 | select PXA27x |
142 | select IWMMXT | 141 | select IWMMXT |
143 | 142 | ||
144 | endchoice | 143 | endmenu |
145 | 144 | ||
146 | choice | 145 | choice |
147 | prompt "Used baseboard" | 146 | prompt "Used baseboard" |
@@ -168,23 +167,6 @@ config PCM990_DISPLAY_NONE | |||
168 | 167 | ||
169 | endchoice | 168 | endchoice |
170 | 169 | ||
171 | if PXA_SHARPSL | ||
172 | |||
173 | choice | ||
174 | prompt "Select target Sharp Zaurus device range" | ||
175 | |||
176 | config PXA_SHARPSL_25x | ||
177 | bool "Sharp PXA25x models (SL-5600, SL-C7xx and SL-C6000x)" | ||
178 | select PXA25x | ||
179 | |||
180 | config PXA_SHARPSL_27x | ||
181 | bool "Sharp PXA270 models (SL-Cxx00)" | ||
182 | select PXA27x | ||
183 | |||
184 | endchoice | ||
185 | |||
186 | endif | ||
187 | |||
188 | if ARCH_GUMSTIX | 170 | if ARCH_GUMSTIX |
189 | 171 | ||
190 | choice | 172 | choice |
@@ -218,28 +200,33 @@ endmenu | |||
218 | 200 | ||
219 | config MACH_POODLE | 201 | config MACH_POODLE |
220 | bool "Enable Sharp SL-5600 (Poodle) Support" | 202 | bool "Enable Sharp SL-5600 (Poodle) Support" |
221 | depends on PXA_SHARPSL_25x | 203 | depends on PXA_SHARPSL |
204 | select PXA25x | ||
222 | select SHARP_LOCOMO | 205 | select SHARP_LOCOMO |
223 | select PXA_SSP | 206 | select PXA_SSP |
224 | 207 | ||
225 | config MACH_CORGI | 208 | config MACH_CORGI |
226 | bool "Enable Sharp SL-C700 (Corgi) Support" | 209 | bool "Enable Sharp SL-C700 (Corgi) Support" |
227 | depends on PXA_SHARPSL_25x | 210 | depends on PXA_SHARPSL |
211 | select PXA25x | ||
228 | select PXA_SHARP_C7xx | 212 | select PXA_SHARP_C7xx |
229 | 213 | ||
230 | config MACH_SHEPHERD | 214 | config MACH_SHEPHERD |
231 | bool "Enable Sharp SL-C750 (Shepherd) Support" | 215 | bool "Enable Sharp SL-C750 (Shepherd) Support" |
232 | depends on PXA_SHARPSL_25x | 216 | depends on PXA_SHARPSL |
217 | select PXA25x | ||
233 | select PXA_SHARP_C7xx | 218 | select PXA_SHARP_C7xx |
234 | 219 | ||
235 | config MACH_HUSKY | 220 | config MACH_HUSKY |
236 | bool "Enable Sharp SL-C760 (Husky) Support" | 221 | bool "Enable Sharp SL-C760 (Husky) Support" |
237 | depends on PXA_SHARPSL_25x | 222 | depends on PXA_SHARPSL |
223 | select PXA25x | ||
238 | select PXA_SHARP_C7xx | 224 | select PXA_SHARP_C7xx |
239 | 225 | ||
240 | config MACH_AKITA | 226 | config MACH_AKITA |
241 | bool "Enable Sharp SL-1000 (Akita) Support" | 227 | bool "Enable Sharp SL-1000 (Akita) Support" |
242 | depends on PXA_SHARPSL_27x | 228 | depends on PXA_SHARPSL |
229 | select PXA27x | ||
243 | select PXA_SHARP_Cxx00 | 230 | select PXA_SHARP_Cxx00 |
244 | select MACH_SPITZ | 231 | select MACH_SPITZ |
245 | select I2C | 232 | select I2C |
@@ -247,17 +234,20 @@ config MACH_AKITA | |||
247 | 234 | ||
248 | config MACH_SPITZ | 235 | config MACH_SPITZ |
249 | bool "Enable Sharp Zaurus SL-3000 (Spitz) Support" | 236 | bool "Enable Sharp Zaurus SL-3000 (Spitz) Support" |
250 | depends on PXA_SHARPSL_27x | 237 | depends on PXA_SHARPSL |
238 | select PXA27x | ||
251 | select PXA_SHARP_Cxx00 | 239 | select PXA_SHARP_Cxx00 |
252 | 240 | ||
253 | config MACH_BORZOI | 241 | config MACH_BORZOI |
254 | bool "Enable Sharp Zaurus SL-3100 (Borzoi) Support" | 242 | bool "Enable Sharp Zaurus SL-3100 (Borzoi) Support" |
255 | depends on PXA_SHARPSL_27x | 243 | depends on PXA_SHARPSL |
244 | select PXA27x | ||
256 | select PXA_SHARP_Cxx00 | 245 | select PXA_SHARP_Cxx00 |
257 | 246 | ||
258 | config MACH_TOSA | 247 | config MACH_TOSA |
259 | bool "Enable Sharp SL-6000x (Tosa) Support" | 248 | bool "Enable Sharp SL-6000x (Tosa) Support" |
260 | depends on PXA_SHARPSL_25x | 249 | depends on PXA_SHARPSL |
250 | select PXA25x | ||
261 | 251 | ||
262 | config PXA25x | 252 | config PXA25x |
263 | bool | 253 | bool |
diff --git a/arch/arm/mach-pxa/clock.c b/arch/arm/mach-pxa/clock.c index e97dc59813c8..b4d04955dcb0 100644 --- a/arch/arm/mach-pxa/clock.c +++ b/arch/arm/mach-pxa/clock.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
13 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
14 | 14 | ||
15 | #include <asm/arch/pxa-regs.h> | 15 | #include <asm/arch/pxa2xx-regs.h> |
16 | #include <asm/arch/pxa2xx-gpio.h> | 16 | #include <asm/arch/pxa2xx-gpio.h> |
17 | #include <asm/hardware.h> | 17 | #include <asm/hardware.h> |
18 | 18 | ||
@@ -47,6 +47,9 @@ struct clk *clk_get(struct device *dev, const char *id) | |||
47 | clk = p; | 47 | clk = p; |
48 | mutex_unlock(&clocks_mutex); | 48 | mutex_unlock(&clocks_mutex); |
49 | 49 | ||
50 | if (!IS_ERR(clk) && clk->ops == NULL) | ||
51 | clk = clk->other; | ||
52 | |||
50 | return clk; | 53 | return clk; |
51 | } | 54 | } |
52 | EXPORT_SYMBOL(clk_get); | 55 | EXPORT_SYMBOL(clk_get); |
diff --git a/arch/arm/mach-pxa/clock.h b/arch/arm/mach-pxa/clock.h index bc6b77e1592e..83cbfaba485d 100644 --- a/arch/arm/mach-pxa/clock.h +++ b/arch/arm/mach-pxa/clock.h | |||
@@ -15,6 +15,7 @@ struct clk { | |||
15 | unsigned int cken; | 15 | unsigned int cken; |
16 | unsigned int delay; | 16 | unsigned int delay; |
17 | unsigned int enabled; | 17 | unsigned int enabled; |
18 | struct clk *other; | ||
18 | }; | 19 | }; |
19 | 20 | ||
20 | #define INIT_CKEN(_name, _cken, _rate, _delay, _dev) \ | 21 | #define INIT_CKEN(_name, _cken, _rate, _delay, _dev) \ |
@@ -35,6 +36,17 @@ struct clk { | |||
35 | .cken = CKEN_##_cken, \ | 36 | .cken = CKEN_##_cken, \ |
36 | } | 37 | } |
37 | 38 | ||
39 | /* | ||
40 | * This is a placeholder to alias one clock device+name pair | ||
41 | * to another struct clk. | ||
42 | */ | ||
43 | #define INIT_CKOTHER(_name, _other, _dev) \ | ||
44 | { \ | ||
45 | .name = _name, \ | ||
46 | .dev = _dev, \ | ||
47 | .other = _other, \ | ||
48 | } | ||
49 | |||
38 | extern const struct clkops clk_cken_ops; | 50 | extern const struct clkops clk_cken_ops; |
39 | 51 | ||
40 | void clk_cken_enable(struct clk *clk); | 52 | void clk_cken_enable(struct clk *clk); |
diff --git a/arch/arm/mach-pxa/cm-x270-pci.c b/arch/arm/mach-pxa/cm-x270-pci.c index ac7f05f9f3eb..319c9ff3ab9a 100644 --- a/arch/arm/mach-pxa/cm-x270-pci.c +++ b/arch/arm/mach-pxa/cm-x270-pci.c | |||
@@ -41,18 +41,20 @@ void __init cmx270_pci_adjust_zones(int node, unsigned long *zone_size, | |||
41 | { | 41 | { |
42 | unsigned int sz = SZ_64M >> PAGE_SHIFT; | 42 | unsigned int sz = SZ_64M >> PAGE_SHIFT; |
43 | 43 | ||
44 | pr_info("Adjusting zones for CM-x270\n"); | 44 | if (machine_is_armcore()) { |
45 | 45 | pr_info("Adjusting zones for CM-x270\n"); | |
46 | /* | 46 | |
47 | * Only adjust if > 64M on current system | 47 | /* |
48 | */ | 48 | * Only adjust if > 64M on current system |
49 | if (node || (zone_size[0] <= sz)) | 49 | */ |
50 | return; | 50 | if (node || (zone_size[0] <= sz)) |
51 | 51 | return; | |
52 | zone_size[1] = zone_size[0] - sz; | 52 | |
53 | zone_size[0] = sz; | 53 | zone_size[1] = zone_size[0] - sz; |
54 | zhole_size[1] = zhole_size[0]; | 54 | zone_size[0] = sz; |
55 | zhole_size[0] = 0; | 55 | zhole_size[1] = zhole_size[0]; |
56 | zhole_size[0] = 0; | ||
57 | } | ||
56 | } | 58 | } |
57 | 59 | ||
58 | static void cmx270_it8152_irq_demux(unsigned int irq, struct irq_desc *desc) | 60 | static void cmx270_it8152_irq_demux(unsigned int irq, struct irq_desc *desc) |
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index b757dd756655..b37671b71886 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <asm/mach/irq.h> | 36 | #include <asm/mach/irq.h> |
37 | 37 | ||
38 | #include <asm/arch/pxa-regs.h> | 38 | #include <asm/arch/pxa-regs.h> |
39 | #include <asm/arch/pxa2xx-regs.h> | ||
39 | #include <asm/arch/pxa2xx-gpio.h> | 40 | #include <asm/arch/pxa2xx-gpio.h> |
40 | #include <asm/arch/irda.h> | 41 | #include <asm/arch/irda.h> |
41 | #include <asm/arch/mmc.h> | 42 | #include <asm/arch/mmc.h> |
diff --git a/arch/arm/mach-pxa/corgi_pm.c b/arch/arm/mach-pxa/corgi_pm.c index 0a85f706e887..e91c0f26c412 100644 --- a/arch/arm/mach-pxa/corgi_pm.c +++ b/arch/arm/mach-pxa/corgi_pm.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <asm/arch/sharpsl.h> | 26 | #include <asm/arch/sharpsl.h> |
27 | #include <asm/arch/corgi.h> | 27 | #include <asm/arch/corgi.h> |
28 | #include <asm/arch/pxa-regs.h> | 28 | #include <asm/arch/pxa-regs.h> |
29 | #include <asm/arch/pxa2xx-regs.h> | ||
29 | #include <asm/arch/pxa2xx-gpio.h> | 30 | #include <asm/arch/pxa2xx-gpio.h> |
30 | #include "sharpsl.h" | 31 | #include "sharpsl.h" |
31 | 32 | ||
@@ -204,7 +205,9 @@ static struct sharpsl_charger_machinfo corgi_pm_machinfo = { | |||
204 | .read_devdata = corgipm_read_devdata, | 205 | .read_devdata = corgipm_read_devdata, |
205 | .charger_wakeup = corgi_charger_wakeup, | 206 | .charger_wakeup = corgi_charger_wakeup, |
206 | .should_wakeup = corgi_should_wakeup, | 207 | .should_wakeup = corgi_should_wakeup, |
208 | #ifdef CONFIG_BACKLIGHT_CORGI | ||
207 | .backlight_limit = corgibl_limit_intensity, | 209 | .backlight_limit = corgibl_limit_intensity, |
210 | #endif | ||
208 | .charge_on_volt = SHARPSL_CHARGE_ON_VOLT, | 211 | .charge_on_volt = SHARPSL_CHARGE_ON_VOLT, |
209 | .charge_on_temp = SHARPSL_CHARGE_ON_TEMP, | 212 | .charge_on_temp = SHARPSL_CHARGE_ON_TEMP, |
210 | .charge_acin_high = SHARPSL_CHARGE_ON_ACIN_HIGH, | 213 | .charge_acin_high = SHARPSL_CHARGE_ON_ACIN_HIGH, |
@@ -226,6 +229,10 @@ static int __devinit corgipm_init(void) | |||
226 | { | 229 | { |
227 | int ret; | 230 | int ret; |
228 | 231 | ||
232 | if (!machine_is_corgi() && !machine_is_shepherd() | ||
233 | && !machine_is_husky()) | ||
234 | return -ENODEV; | ||
235 | |||
229 | corgipm_device = platform_device_alloc("sharpsl-pm", -1); | 236 | corgipm_device = platform_device_alloc("sharpsl-pm", -1); |
230 | if (!corgipm_device) | 237 | if (!corgipm_device) |
231 | return -ENOMEM; | 238 | return -ENOMEM; |
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c index 794a1076db73..4a1eebb42e49 100644 --- a/arch/arm/mach-pxa/devices.c +++ b/arch/arm/mach-pxa/devices.c | |||
@@ -10,11 +10,13 @@ | |||
10 | #include <asm/arch/mmc.h> | 10 | #include <asm/arch/mmc.h> |
11 | #include <asm/arch/irda.h> | 11 | #include <asm/arch/irda.h> |
12 | #include <asm/arch/i2c.h> | 12 | #include <asm/arch/i2c.h> |
13 | #include <asm/arch/mfp-pxa27x.h> | ||
13 | #include <asm/arch/ohci.h> | 14 | #include <asm/arch/ohci.h> |
14 | #include <asm/arch/pxa27x_keypad.h> | 15 | #include <asm/arch/pxa27x_keypad.h> |
15 | #include <asm/arch/camera.h> | 16 | #include <asm/arch/camera.h> |
16 | 17 | ||
17 | #include "devices.h" | 18 | #include "devices.h" |
19 | #include "generic.h" | ||
18 | 20 | ||
19 | void __init pxa_register_device(struct platform_device *dev, void *data) | 21 | void __init pxa_register_device(struct platform_device *dev, void *data) |
20 | { | 22 | { |
@@ -233,8 +235,15 @@ struct platform_device pxa_device_i2c = { | |||
233 | .num_resources = ARRAY_SIZE(pxai2c_resources), | 235 | .num_resources = ARRAY_SIZE(pxai2c_resources), |
234 | }; | 236 | }; |
235 | 237 | ||
238 | static unsigned long pxa27x_i2c_mfp_cfg[] = { | ||
239 | GPIO117_I2C_SCL, | ||
240 | GPIO118_I2C_SDA, | ||
241 | }; | ||
242 | |||
236 | void __init pxa_set_i2c_info(struct i2c_pxa_platform_data *info) | 243 | void __init pxa_set_i2c_info(struct i2c_pxa_platform_data *info) |
237 | { | 244 | { |
245 | if (cpu_is_pxa27x()) | ||
246 | pxa2xx_mfp_config(ARRAY_AND_SIZE(pxa27x_i2c_mfp_cfg)); | ||
238 | pxa_register_device(&pxa_device_i2c, info); | 247 | pxa_register_device(&pxa_device_i2c, info); |
239 | } | 248 | } |
240 | 249 | ||
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c index edc4f07a230d..1269ac991505 100644 --- a/arch/arm/mach-pxa/em-x270.c +++ b/arch/arm/mach-pxa/em-x270.c | |||
@@ -24,6 +24,7 @@ | |||
24 | 24 | ||
25 | #include <asm/arch/pxa-regs.h> | 25 | #include <asm/arch/pxa-regs.h> |
26 | #include <asm/arch/pxa2xx-gpio.h> | 26 | #include <asm/arch/pxa2xx-gpio.h> |
27 | #include <asm/arch/pxa27x-udc.h> | ||
27 | #include <asm/arch/pxafb.h> | 28 | #include <asm/arch/pxafb.h> |
28 | #include <asm/arch/ohci.h> | 29 | #include <asm/arch/ohci.h> |
29 | #include <asm/arch/mmc.h> | 30 | #include <asm/arch/mmc.h> |
diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c index 44617938f3f1..c2f102339f57 100644 --- a/arch/arm/mach-pxa/generic.c +++ b/arch/arm/mach-pxa/generic.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
27 | 27 | ||
28 | #include <asm/arch/pxa-regs.h> | 28 | #include <asm/arch/pxa-regs.h> |
29 | #include <asm/arch/pxa2xx-regs.h> /* for __pxa_set_cken */ | ||
29 | 30 | ||
30 | #include "generic.h" | 31 | #include "generic.h" |
31 | 32 | ||
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c index a9a0c3fab159..fbff557bb225 100644 --- a/arch/arm/mach-pxa/irq.c +++ b/arch/arm/mach-pxa/irq.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <asm/irq.h> | 21 | #include <asm/irq.h> |
22 | #include <asm/mach/irq.h> | 22 | #include <asm/mach/irq.h> |
23 | #include <asm/arch/pxa-regs.h> | 23 | #include <asm/arch/pxa-regs.h> |
24 | #include <asm/arch/pxa2xx-gpio.h> | ||
25 | 24 | ||
26 | #include "generic.h" | 25 | #include "generic.h" |
27 | 26 | ||
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c index f958403b43e8..183b587672a6 100644 --- a/arch/arm/mach-pxa/lpd270.c +++ b/arch/arm/mach-pxa/lpd270.c | |||
@@ -135,9 +135,12 @@ static struct sys_device lpd270_irq_device = { | |||
135 | 135 | ||
136 | static int __init lpd270_irq_device_init(void) | 136 | static int __init lpd270_irq_device_init(void) |
137 | { | 137 | { |
138 | int ret = sysdev_class_register(&lpd270_irq_sysclass); | 138 | int ret = -ENODEV; |
139 | if (ret == 0) | 139 | if (machine_is_logicpd_pxa270()) { |
140 | ret = sysdev_register(&lpd270_irq_device); | 140 | ret = sysdev_class_register(&lpd270_irq_sysclass); |
141 | if (ret == 0) | ||
142 | ret = sysdev_register(&lpd270_irq_device); | ||
143 | } | ||
141 | return ret; | 144 | return ret; |
142 | } | 145 | } |
143 | 146 | ||
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c index 300caeb21371..01b2fa790217 100644 --- a/arch/arm/mach-pxa/magician.c +++ b/arch/arm/mach-pxa/magician.c | |||
@@ -34,6 +34,7 @@ | |||
34 | #include <asm/arch/magician.h> | 34 | #include <asm/arch/magician.h> |
35 | #include <asm/arch/mfp-pxa27x.h> | 35 | #include <asm/arch/mfp-pxa27x.h> |
36 | #include <asm/arch/pxa-regs.h> | 36 | #include <asm/arch/pxa-regs.h> |
37 | #include <asm/arch/pxa2xx-regs.h> | ||
37 | #include <asm/arch/pxafb.h> | 38 | #include <asm/arch/pxafb.h> |
38 | #include <asm/arch/i2c.h> | 39 | #include <asm/arch/i2c.h> |
39 | #include <asm/arch/mmc.h> | 40 | #include <asm/arch/mmc.h> |
diff --git a/arch/arm/mach-pxa/mfp-pxa2xx.c b/arch/arm/mach-pxa/mfp-pxa2xx.c index 22097a1707cc..d1cdb4ecb0b8 100644 --- a/arch/arm/mach-pxa/mfp-pxa2xx.c +++ b/arch/arm/mach-pxa/mfp-pxa2xx.c | |||
@@ -20,6 +20,7 @@ | |||
20 | 20 | ||
21 | #include <asm/arch/hardware.h> | 21 | #include <asm/arch/hardware.h> |
22 | #include <asm/arch/pxa-regs.h> | 22 | #include <asm/arch/pxa-regs.h> |
23 | #include <asm/arch/pxa2xx-regs.h> | ||
23 | #include <asm/arch/mfp-pxa2xx.h> | 24 | #include <asm/arch/mfp-pxa2xx.h> |
24 | 25 | ||
25 | #include "generic.h" | 26 | #include "generic.h" |
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index 0b30f25cff3c..f81c10cafd48 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <asm/mach/irq.h> | 32 | #include <asm/mach/irq.h> |
33 | 33 | ||
34 | #include <asm/arch/pxa-regs.h> | 34 | #include <asm/arch/pxa-regs.h> |
35 | #include <asm/arch/pxa2xx-regs.h> | ||
35 | #include <asm/arch/pxa2xx-gpio.h> | 36 | #include <asm/arch/pxa2xx-gpio.h> |
36 | #include <asm/arch/mmc.h> | 37 | #include <asm/arch/mmc.h> |
37 | #include <asm/arch/udc.h> | 38 | #include <asm/arch/udc.h> |
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index 2bed3f98d41c..a1a7dd23ce5a 100644 --- a/arch/arm/mach-pxa/pxa25x.c +++ b/arch/arm/mach-pxa/pxa25x.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <asm/hardware.h> | 26 | #include <asm/hardware.h> |
27 | #include <asm/arch/irqs.h> | 27 | #include <asm/arch/irqs.h> |
28 | #include <asm/arch/pxa-regs.h> | 28 | #include <asm/arch/pxa-regs.h> |
29 | #include <asm/arch/pxa2xx-regs.h> | ||
29 | #include <asm/arch/mfp-pxa25x.h> | 30 | #include <asm/arch/mfp-pxa25x.h> |
30 | #include <asm/arch/pm.h> | 31 | #include <asm/arch/pm.h> |
31 | #include <asm/arch/dma.h> | 32 | #include <asm/arch/dma.h> |
@@ -117,6 +118,10 @@ static struct clk pxa25x_hwuart_clk = | |||
117 | INIT_CKEN("UARTCLK", HWUART, 14745600, 1, &pxa_device_hwuart.dev) | 118 | INIT_CKEN("UARTCLK", HWUART, 14745600, 1, &pxa_device_hwuart.dev) |
118 | ; | 119 | ; |
119 | 120 | ||
121 | /* | ||
122 | * PXA 2xx clock declarations. Order is important (see aliases below) | ||
123 | * Please be careful not to disrupt the ordering. | ||
124 | */ | ||
120 | static struct clk pxa25x_clks[] = { | 125 | static struct clk pxa25x_clks[] = { |
121 | INIT_CK("LCDCLK", LCD, &clk_pxa25x_lcd_ops, &pxa_device_fb.dev), | 126 | INIT_CK("LCDCLK", LCD, &clk_pxa25x_lcd_ops, &pxa_device_fb.dev), |
122 | INIT_CKEN("UARTCLK", FFUART, 14745600, 1, &pxa_device_ffuart.dev), | 127 | INIT_CKEN("UARTCLK", FFUART, 14745600, 1, &pxa_device_ffuart.dev), |
@@ -140,6 +145,8 @@ static struct clk pxa25x_clks[] = { | |||
140 | INIT_CKEN("FICPCLK", FICP, 47923000, 0, NULL), | 145 | INIT_CKEN("FICPCLK", FICP, 47923000, 0, NULL), |
141 | }; | 146 | }; |
142 | 147 | ||
148 | static struct clk gpio7_clk = INIT_CKOTHER("GPIO7_CK", &pxa25x_clks[4], NULL); | ||
149 | |||
143 | #ifdef CONFIG_PM | 150 | #ifdef CONFIG_PM |
144 | 151 | ||
145 | #define SAVE(x) sleep_save[SLEEP_SAVE_##x] = x | 152 | #define SAVE(x) sleep_save[SLEEP_SAVE_##x] = x |
@@ -313,6 +320,8 @@ static int __init pxa25x_init(void) | |||
313 | if (cpu_is_pxa25x()) | 320 | if (cpu_is_pxa25x()) |
314 | ret = platform_device_register(&pxa_device_hwuart); | 321 | ret = platform_device_register(&pxa_device_hwuart); |
315 | 322 | ||
323 | clks_register(&gpio7_clk, 1); | ||
324 | |||
316 | return ret; | 325 | return ret; |
317 | } | 326 | } |
318 | 327 | ||
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c index bc2e80f69673..4d7afae352a1 100644 --- a/arch/arm/mach-pxa/pxa27x.c +++ b/arch/arm/mach-pxa/pxa27x.c | |||
@@ -350,11 +350,14 @@ struct platform_device pxa27x_device_i2c_power = { | |||
350 | 350 | ||
351 | void __init pxa_set_i2c_power_info(struct i2c_pxa_platform_data *info) | 351 | void __init pxa_set_i2c_power_info(struct i2c_pxa_platform_data *info) |
352 | { | 352 | { |
353 | local_irq_disable(); | ||
354 | PCFR |= PCFR_PI2CEN; | ||
355 | local_irq_enable(); | ||
353 | pxa27x_device_i2c_power.dev.platform_data = info; | 356 | pxa27x_device_i2c_power.dev.platform_data = info; |
354 | } | 357 | } |
355 | 358 | ||
356 | static struct platform_device *devices[] __initdata = { | 359 | static struct platform_device *devices[] __initdata = { |
357 | &pxa_device_udc, | 360 | /* &pxa_device_udc, The UDC driver is PXA25x only */ |
358 | &pxa_device_ffuart, | 361 | &pxa_device_ffuart, |
359 | &pxa_device_btuart, | 362 | &pxa_device_btuart, |
360 | &pxa_device_stuart, | 363 | &pxa_device_stuart, |
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c index 0f717df1fdb2..d26a9b02a559 100644 --- a/arch/arm/mach-pxa/pxa3xx.c +++ b/arch/arm/mach-pxa/pxa3xx.c | |||
@@ -522,7 +522,7 @@ void __init pxa3xx_init_irq(void) | |||
522 | */ | 522 | */ |
523 | 523 | ||
524 | static struct platform_device *devices[] __initdata = { | 524 | static struct platform_device *devices[] __initdata = { |
525 | &pxa_device_udc, | 525 | /* &pxa_device_udc, The UDC driver is PXA25x only */ |
526 | &pxa_device_ffuart, | 526 | &pxa_device_ffuart, |
527 | &pxa_device_btuart, | 527 | &pxa_device_btuart, |
528 | &pxa_device_stuart, | 528 | &pxa_device_stuart, |
diff --git a/arch/arm/mach-pxa/spitz_pm.c b/arch/arm/mach-pxa/spitz_pm.c index 23f050feb208..360354084ae4 100644 --- a/arch/arm/mach-pxa/spitz_pm.c +++ b/arch/arm/mach-pxa/spitz_pm.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <asm/arch/sharpsl.h> | 26 | #include <asm/arch/sharpsl.h> |
27 | #include <asm/arch/spitz.h> | 27 | #include <asm/arch/spitz.h> |
28 | #include <asm/arch/pxa-regs.h> | 28 | #include <asm/arch/pxa-regs.h> |
29 | #include <asm/arch/pxa2xx-regs.h> | ||
29 | #include <asm/arch/pxa2xx-gpio.h> | 30 | #include <asm/arch/pxa2xx-gpio.h> |
30 | #include "sharpsl.h" | 31 | #include "sharpsl.h" |
31 | 32 | ||
@@ -207,7 +208,9 @@ struct sharpsl_charger_machinfo spitz_pm_machinfo = { | |||
207 | .read_devdata = spitzpm_read_devdata, | 208 | .read_devdata = spitzpm_read_devdata, |
208 | .charger_wakeup = spitz_charger_wakeup, | 209 | .charger_wakeup = spitz_charger_wakeup, |
209 | .should_wakeup = spitz_should_wakeup, | 210 | .should_wakeup = spitz_should_wakeup, |
211 | #ifdef CONFIG_BACKLIGHT_CORGI | ||
210 | .backlight_limit = corgibl_limit_intensity, | 212 | .backlight_limit = corgibl_limit_intensity, |
213 | #endif | ||
211 | .charge_on_volt = SHARPSL_CHARGE_ON_VOLT, | 214 | .charge_on_volt = SHARPSL_CHARGE_ON_VOLT, |
212 | .charge_on_temp = SHARPSL_CHARGE_ON_TEMP, | 215 | .charge_on_temp = SHARPSL_CHARGE_ON_TEMP, |
213 | .charge_acin_high = SHARPSL_CHARGE_ON_ACIN_HIGH, | 216 | .charge_acin_high = SHARPSL_CHARGE_ON_ACIN_HIGH, |
@@ -229,6 +232,10 @@ static int __devinit spitzpm_init(void) | |||
229 | { | 232 | { |
230 | int ret; | 233 | int ret; |
231 | 234 | ||
235 | if (!machine_is_spitz() && !machine_is_akita() | ||
236 | && !machine_is_borzoi()) | ||
237 | return -ENODEV; | ||
238 | |||
232 | spitzpm_device = platform_device_alloc("sharpsl-pm", -1); | 239 | spitzpm_device = platform_device_alloc("sharpsl-pm", -1); |
233 | if (!spitzpm_device) | 240 | if (!spitzpm_device) |
234 | return -ENOMEM; | 241 | return -ENOMEM; |
diff --git a/arch/arm/mach-pxa/standby.S b/arch/arm/mach-pxa/standby.S index 167412e6bec8..40bb70eff3fe 100644 --- a/arch/arm/mach-pxa/standby.S +++ b/arch/arm/mach-pxa/standby.S | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <asm/hardware.h> | 14 | #include <asm/hardware.h> |
15 | 15 | ||
16 | #include <asm/arch/pxa-regs.h> | 16 | #include <asm/arch/pxa-regs.h> |
17 | #include <asm/arch/pxa2xx-regs.h> | ||
17 | 18 | ||
18 | .text | 19 | .text |
19 | 20 | ||
@@ -35,20 +36,20 @@ ENTRY(pxa_cpu_standby) | |||
35 | 36 | ||
36 | #ifdef CONFIG_PXA3xx | 37 | #ifdef CONFIG_PXA3xx |
37 | 38 | ||
38 | #define MDCNFG 0x0000 | 39 | #define PXA3_MDCNFG 0x0000 |
39 | #define MDCNFG_DMCEN (1 << 30) | 40 | #define PXA3_MDCNFG_DMCEN (1 << 30) |
40 | #define DDR_HCAL 0x0060 | 41 | #define PXA3_DDR_HCAL 0x0060 |
41 | #define DDR_HCAL_HCRNG 0x1f | 42 | #define PXA3_DDR_HCAL_HCRNG 0x1f |
42 | #define DDR_HCAL_HCPROG (1 << 28) | 43 | #define PXA3_DDR_HCAL_HCPROG (1 << 28) |
43 | #define DDR_HCAL_HCEN (1 << 31) | 44 | #define PXA3_DDR_HCAL_HCEN (1 << 31) |
44 | #define DMCIER 0x0070 | 45 | #define PXA3_DMCIER 0x0070 |
45 | #define DMCIER_EDLP (1 << 29) | 46 | #define PXA3_DMCIER_EDLP (1 << 29) |
46 | #define DMCISR 0x0078 | 47 | #define PXA3_DMCISR 0x0078 |
47 | #define RCOMP 0x0100 | 48 | #define PXA3_RCOMP 0x0100 |
48 | #define RCOMP_SWEVAL (1 << 31) | 49 | #define PXA3_RCOMP_SWEVAL (1 << 31) |
49 | 50 | ||
50 | ENTRY(pm_enter_standby_start) | 51 | ENTRY(pm_enter_standby_start) |
51 | mov r1, #0xf6000000 @ DMEMC_REG_BASE (MDCNFG) | 52 | mov r1, #0xf6000000 @ DMEMC_REG_BASE (PXA3_MDCNFG) |
52 | add r1, r1, #0x00100000 | 53 | add r1, r1, #0x00100000 |
53 | 54 | ||
54 | /* | 55 | /* |
@@ -59,54 +60,54 @@ ENTRY(pm_enter_standby_start) | |||
59 | * This also means that only the dynamic memory controller | 60 | * This also means that only the dynamic memory controller |
60 | * can be reliably accessed in the code following standby. | 61 | * can be reliably accessed in the code following standby. |
61 | */ | 62 | */ |
62 | ldr r2, [r1] @ Dummy read MDCNFG | 63 | ldr r2, [r1] @ Dummy read PXA3_MDCNFG |
63 | 64 | ||
64 | mcr p14, 0, r0, c7, c0, 0 | 65 | mcr p14, 0, r0, c7, c0, 0 |
65 | .rept 8 | 66 | .rept 8 |
66 | nop | 67 | nop |
67 | .endr | 68 | .endr |
68 | 69 | ||
69 | ldr r0, [r1, #DDR_HCAL] @ Clear (and wait for) HCEN | 70 | ldr r0, [r1, #PXA3_DDR_HCAL] @ Clear (and wait for) HCEN |
70 | bic r0, r0, #DDR_HCAL_HCEN | 71 | bic r0, r0, #PXA3_DDR_HCAL_HCEN |
71 | str r0, [r1, #DDR_HCAL] | 72 | str r0, [r1, #PXA3_DDR_HCAL] |
72 | 1: ldr r0, [r1, #DDR_HCAL] | 73 | 1: ldr r0, [r1, #PXA3_DDR_HCAL] |
73 | tst r0, #DDR_HCAL_HCEN | 74 | tst r0, #PXA3_DDR_HCAL_HCEN |
74 | bne 1b | 75 | bne 1b |
75 | 76 | ||
76 | ldr r0, [r1, #RCOMP] @ Initiate RCOMP | 77 | ldr r0, [r1, #PXA3_RCOMP] @ Initiate RCOMP |
77 | orr r0, r0, #RCOMP_SWEVAL | 78 | orr r0, r0, #PXA3_RCOMP_SWEVAL |
78 | str r0, [r1, #RCOMP] | 79 | str r0, [r1, #PXA3_RCOMP] |
79 | 80 | ||
80 | mov r0, #~0 @ Clear interrupts | 81 | mov r0, #~0 @ Clear interrupts |
81 | str r0, [r1, #DMCISR] | 82 | str r0, [r1, #PXA3_DMCISR] |
82 | 83 | ||
83 | ldr r0, [r1, #DMCIER] @ set DMIER[EDLP] | 84 | ldr r0, [r1, #PXA3_DMCIER] @ set DMIER[EDLP] |
84 | orr r0, r0, #DMCIER_EDLP | 85 | orr r0, r0, #PXA3_DMCIER_EDLP |
85 | str r0, [r1, #DMCIER] | 86 | str r0, [r1, #PXA3_DMCIER] |
86 | 87 | ||
87 | ldr r0, [r1, #DDR_HCAL] @ clear HCRNG, set HCPROG, HCEN | 88 | ldr r0, [r1, #PXA3_DDR_HCAL] @ clear HCRNG, set HCPROG, HCEN |
88 | bic r0, r0, #DDR_HCAL_HCRNG | 89 | bic r0, r0, #PXA3_DDR_HCAL_HCRNG |
89 | orr r0, r0, #DDR_HCAL_HCEN | DDR_HCAL_HCPROG | 90 | orr r0, r0, #PXA3_DDR_HCAL_HCEN | PXA3_DDR_HCAL_HCPROG |
90 | str r0, [r1, #DDR_HCAL] | 91 | str r0, [r1, #PXA3_DDR_HCAL] |
91 | 92 | ||
92 | 1: ldr r0, [r1, #DMCISR] | 93 | 1: ldr r0, [r1, #PXA3_DMCISR] |
93 | tst r0, #DMCIER_EDLP | 94 | tst r0, #PXA3_DMCIER_EDLP |
94 | beq 1b | 95 | beq 1b |
95 | 96 | ||
96 | ldr r0, [r1, #MDCNFG] @ set MDCNFG[DMCEN] | 97 | ldr r0, [r1, #PXA3_MDCNFG] @ set PXA3_MDCNFG[DMCEN] |
97 | orr r0, r0, #MDCNFG_DMCEN | 98 | orr r0, r0, #PXA3_MDCNFG_DMCEN |
98 | str r0, [r1, #MDCNFG] | 99 | str r0, [r1, #PXA3_MDCNFG] |
99 | 1: ldr r0, [r1, #MDCNFG] | 100 | 1: ldr r0, [r1, #PXA3_MDCNFG] |
100 | tst r0, #MDCNFG_DMCEN | 101 | tst r0, #PXA3_MDCNFG_DMCEN |
101 | beq 1b | 102 | beq 1b |
102 | 103 | ||
103 | ldr r0, [r1, #DDR_HCAL] @ set DDR_HCAL[HCRNG] | 104 | ldr r0, [r1, #PXA3_DDR_HCAL] @ set PXA3_DDR_HCAL[HCRNG] |
104 | orr r0, r0, #2 @ HCRNG | 105 | orr r0, r0, #2 @ HCRNG |
105 | str r0, [r1, #DDR_HCAL] | 106 | str r0, [r1, #PXA3_DDR_HCAL] |
106 | 107 | ||
107 | ldr r0, [r1, #DMCIER] @ Clear the interrupt | 108 | ldr r0, [r1, #PXA3_DMCIER] @ Clear the interrupt |
108 | bic r0, r0, #0x20000000 | 109 | bic r0, r0, #0x20000000 |
109 | str r0, [r1, #DMCIER] | 110 | str r0, [r1, #PXA3_DMCIER] |
110 | 111 | ||
111 | mov pc, lr | 112 | mov pc, lr |
112 | ENTRY(pm_enter_standby_end) | 113 | ENTRY(pm_enter_standby_end) |
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c index 931885d86b91..bc7c465ef32b 100644 --- a/arch/arm/mach-pxa/trizeps4.c +++ b/arch/arm/mach-pxa/trizeps4.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <asm/mach/flash.h> | 41 | #include <asm/mach/flash.h> |
42 | 42 | ||
43 | #include <asm/arch/pxa-regs.h> | 43 | #include <asm/arch/pxa-regs.h> |
44 | #include <asm/arch/pxa2xx-regs.h> | ||
44 | #include <asm/arch/pxa2xx-gpio.h> | 45 | #include <asm/arch/pxa2xx-gpio.h> |
45 | #include <asm/arch/trizeps4.h> | 46 | #include <asm/arch/trizeps4.h> |
46 | #include <asm/arch/audio.h> | 47 | #include <asm/arch/audio.h> |
@@ -487,6 +488,7 @@ static void __init trizeps4_map_io(void) | |||
487 | ConXS_BCR = trizeps_conxs_bcr; | 488 | ConXS_BCR = trizeps_conxs_bcr; |
488 | #endif | 489 | #endif |
489 | 490 | ||
491 | #warning FIXME - accessing PM registers directly is deprecated | ||
490 | PWER = 0x00000002; | 492 | PWER = 0x00000002; |
491 | PFER = 0x00000000; | 493 | PFER = 0x00000000; |
492 | PRER = 0x00000002; | 494 | PRER = 0x00000002; |