diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-06-30 14:47:59 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-07-09 15:54:14 -0400 |
commit | bdb08cb2d3491d441dd403dfb88d90ba90fb7232 (patch) | |
tree | 390117716c0f4f30a50636a5a0ef1e828e48d1fa /arch/arm/mach-pxa/pxa25x.c | |
parent | 5e329d1c7f5fe6adfee99c783fa98bda7dae8ac5 (diff) |
[ARM] pxa: allow clk aliases
We need to support more than one name+device for a struct clk for a
small number of peripherals. We do this by re-using struct clk alias
to another struct clk - IOW, if we find that the entry we're using is
an alias, we return the aliased entry not the one we found.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-pxa/pxa25x.c')
-rw-r--r-- | arch/arm/mach-pxa/pxa25x.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index e5b417d14bb0..09ee131d24a1 100644 --- a/arch/arm/mach-pxa/pxa25x.c +++ b/arch/arm/mach-pxa/pxa25x.c | |||
@@ -117,6 +117,10 @@ static struct clk pxa25x_hwuart_clk = | |||
117 | INIT_CKEN("UARTCLK", HWUART, 14745600, 1, &pxa_device_hwuart.dev) | 117 | INIT_CKEN("UARTCLK", HWUART, 14745600, 1, &pxa_device_hwuart.dev) |
118 | ; | 118 | ; |
119 | 119 | ||
120 | /* | ||
121 | * PXA 2xx clock declarations. Order is important (see aliases below) | ||
122 | * Please be careful not to disrupt the ordering. | ||
123 | */ | ||
120 | static struct clk pxa25x_clks[] = { | 124 | static struct clk pxa25x_clks[] = { |
121 | INIT_CK("LCDCLK", LCD, &clk_pxa25x_lcd_ops, &pxa_device_fb.dev), | 125 | INIT_CK("LCDCLK", LCD, &clk_pxa25x_lcd_ops, &pxa_device_fb.dev), |
122 | INIT_CKEN("UARTCLK", FFUART, 14745600, 1, &pxa_device_ffuart.dev), | 126 | INIT_CKEN("UARTCLK", FFUART, 14745600, 1, &pxa_device_ffuart.dev), |
@@ -140,6 +144,8 @@ static struct clk pxa25x_clks[] = { | |||
140 | INIT_CKEN("FICPCLK", FICP, 47923000, 0, NULL), | 144 | INIT_CKEN("FICPCLK", FICP, 47923000, 0, NULL), |
141 | }; | 145 | }; |
142 | 146 | ||
147 | static struct clk gpio7_clk = INIT_CKOTHER("GPIO7_CK", &pxa25x_clks[4], NULL); | ||
148 | |||
143 | #ifdef CONFIG_PM | 149 | #ifdef CONFIG_PM |
144 | 150 | ||
145 | #define SAVE(x) sleep_save[SLEEP_SAVE_##x] = x | 151 | #define SAVE(x) sleep_save[SLEEP_SAVE_##x] = x |
@@ -311,6 +317,8 @@ static int __init pxa25x_init(void) | |||
311 | if (cpu_is_pxa25x()) | 317 | if (cpu_is_pxa25x()) |
312 | ret = platform_device_register(&pxa_device_hwuart); | 318 | ret = platform_device_register(&pxa_device_hwuart); |
313 | 319 | ||
320 | clks_register(&gpio7_clk, 1); | ||
321 | |||
314 | return ret; | 322 | return ret; |
315 | } | 323 | } |
316 | 324 | ||