diff options
Diffstat (limited to 'arch/arm/mach-pxa/pxa25x.c')
-rw-r--r-- | arch/arm/mach-pxa/pxa25x.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index e5b417d14bb0..4cd50e3005e9 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,29 +118,35 @@ 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), |
123 | INIT_CKEN("UARTCLK", BTUART, 14745600, 1, &pxa_device_btuart.dev), | 128 | INIT_CKEN("UARTCLK", BTUART, 14745600, 1, &pxa_device_btuart.dev), |
124 | INIT_CKEN("UARTCLK", STUART, 14745600, 1, NULL), | 129 | INIT_CKEN("UARTCLK", STUART, 14745600, 1, NULL), |
125 | INIT_CKEN("UDCCLK", USB, 47923000, 5, &pxa_device_udc.dev), | 130 | INIT_CKEN("UDCCLK", USB, 47923000, 5, &pxa25x_device_udc.dev), |
126 | INIT_CKEN("MMCCLK", MMC, 19169000, 0, &pxa_device_mci.dev), | 131 | INIT_CKEN("MMCCLK", MMC, 19169000, 0, &pxa_device_mci.dev), |
127 | INIT_CKEN("I2CCLK", I2C, 31949000, 0, &pxa_device_i2c.dev), | 132 | INIT_CKEN("I2CCLK", I2C, 31949000, 0, &pxa_device_i2c.dev), |
128 | 133 | ||
129 | INIT_CKEN("SSPCLK", SSP, 3686400, 0, &pxa25x_device_ssp.dev), | 134 | INIT_CKEN("SSPCLK", SSP, 3686400, 0, &pxa25x_device_ssp.dev), |
130 | INIT_CKEN("SSPCLK", NSSP, 3686400, 0, &pxa25x_device_nssp.dev), | 135 | INIT_CKEN("SSPCLK", NSSP, 3686400, 0, &pxa25x_device_nssp.dev), |
131 | INIT_CKEN("SSPCLK", ASSP, 3686400, 0, &pxa25x_device_assp.dev), | 136 | INIT_CKEN("SSPCLK", ASSP, 3686400, 0, &pxa25x_device_assp.dev), |
137 | INIT_CKEN("PWMCLK", PWM0, 3686400, 0, &pxa25x_device_pwm0.dev), | ||
138 | INIT_CKEN("PWMCLK", PWM1, 3686400, 0, &pxa25x_device_pwm1.dev), | ||
132 | 139 | ||
133 | INIT_CKEN("AC97CLK", AC97, 24576000, 0, NULL), | 140 | INIT_CKEN("AC97CLK", AC97, 24576000, 0, NULL), |
134 | 141 | ||
135 | /* | 142 | /* |
136 | INIT_CKEN("PWMCLK", PWM0, 3686400, 0, NULL), | ||
137 | INIT_CKEN("PWMCLK", PWM0, 3686400, 0, NULL), | ||
138 | INIT_CKEN("I2SCLK", I2S, 14745600, 0, NULL), | 143 | INIT_CKEN("I2SCLK", I2S, 14745600, 0, NULL), |
139 | */ | 144 | */ |
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 |
@@ -260,7 +267,7 @@ void __init pxa25x_init_irq(void) | |||
260 | } | 267 | } |
261 | 268 | ||
262 | static struct platform_device *pxa25x_devices[] __initdata = { | 269 | static struct platform_device *pxa25x_devices[] __initdata = { |
263 | &pxa_device_udc, | 270 | &pxa25x_device_udc, |
264 | &pxa_device_ffuart, | 271 | &pxa_device_ffuart, |
265 | &pxa_device_btuart, | 272 | &pxa_device_btuart, |
266 | &pxa_device_stuart, | 273 | &pxa_device_stuart, |
@@ -269,6 +276,8 @@ static struct platform_device *pxa25x_devices[] __initdata = { | |||
269 | &pxa25x_device_ssp, | 276 | &pxa25x_device_ssp, |
270 | &pxa25x_device_nssp, | 277 | &pxa25x_device_nssp, |
271 | &pxa25x_device_assp, | 278 | &pxa25x_device_assp, |
279 | &pxa25x_device_pwm0, | ||
280 | &pxa25x_device_pwm1, | ||
272 | }; | 281 | }; |
273 | 282 | ||
274 | static struct sys_device pxa25x_sysdev[] = { | 283 | static struct sys_device pxa25x_sysdev[] = { |
@@ -311,6 +320,8 @@ static int __init pxa25x_init(void) | |||
311 | if (cpu_is_pxa25x()) | 320 | if (cpu_is_pxa25x()) |
312 | ret = platform_device_register(&pxa_device_hwuart); | 321 | ret = platform_device_register(&pxa_device_hwuart); |
313 | 322 | ||
323 | clks_register(&gpio7_clk, 1); | ||
324 | |||
314 | return ret; | 325 | return ret; |
315 | } | 326 | } |
316 | 327 | ||