diff options
author | Jean-Christop PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2010-11-17 04:04:33 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-11-26 05:51:04 -0500 |
commit | 6d803ba736abb5e122dede70a4720e4843dd6df4 (patch) | |
tree | 6d01199e41ede3ae3931664f7bd10a68dbcc42e6 /arch | |
parent | 64d2dc384e41e2b7acead6804593ddaaf8aad8e1 (diff) |
ARM: 6483/1: arm & sh: factorised duplicated clkdev.c
factorise some generic infrastructure to assist looking up struct clks
for the ARM & SH architecture.
as the code is identical at 99%
put the arch specific code for allocation as example in asm/clkdev.h
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
67 files changed, 106 insertions, 507 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a19a5266d5fc..0e51342b3c02 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -221,7 +221,7 @@ config ARCH_INTEGRATOR | |||
221 | bool "ARM Ltd. Integrator family" | 221 | bool "ARM Ltd. Integrator family" |
222 | select ARM_AMBA | 222 | select ARM_AMBA |
223 | select ARCH_HAS_CPUFREQ | 223 | select ARCH_HAS_CPUFREQ |
224 | select COMMON_CLKDEV | 224 | select CLKDEV_LOOKUP |
225 | select ICST | 225 | select ICST |
226 | select GENERIC_CLOCKEVENTS | 226 | select GENERIC_CLOCKEVENTS |
227 | select PLAT_VERSATILE | 227 | select PLAT_VERSATILE |
@@ -231,7 +231,7 @@ config ARCH_INTEGRATOR | |||
231 | config ARCH_REALVIEW | 231 | config ARCH_REALVIEW |
232 | bool "ARM Ltd. RealView family" | 232 | bool "ARM Ltd. RealView family" |
233 | select ARM_AMBA | 233 | select ARM_AMBA |
234 | select COMMON_CLKDEV | 234 | select CLKDEV_LOOKUP |
235 | select ICST | 235 | select ICST |
236 | select GENERIC_CLOCKEVENTS | 236 | select GENERIC_CLOCKEVENTS |
237 | select ARCH_WANT_OPTIONAL_GPIOLIB | 237 | select ARCH_WANT_OPTIONAL_GPIOLIB |
@@ -245,7 +245,7 @@ config ARCH_VERSATILE | |||
245 | bool "ARM Ltd. Versatile family" | 245 | bool "ARM Ltd. Versatile family" |
246 | select ARM_AMBA | 246 | select ARM_AMBA |
247 | select ARM_VIC | 247 | select ARM_VIC |
248 | select COMMON_CLKDEV | 248 | select CLKDEV_LOOKUP |
249 | select ICST | 249 | select ICST |
250 | select GENERIC_CLOCKEVENTS | 250 | select GENERIC_CLOCKEVENTS |
251 | select ARCH_WANT_OPTIONAL_GPIOLIB | 251 | select ARCH_WANT_OPTIONAL_GPIOLIB |
@@ -259,7 +259,7 @@ config ARCH_VEXPRESS | |||
259 | select ARCH_WANT_OPTIONAL_GPIOLIB | 259 | select ARCH_WANT_OPTIONAL_GPIOLIB |
260 | select ARM_AMBA | 260 | select ARM_AMBA |
261 | select ARM_TIMER_SP804 | 261 | select ARM_TIMER_SP804 |
262 | select COMMON_CLKDEV | 262 | select CLKDEV_LOOKUP |
263 | select GENERIC_CLOCKEVENTS | 263 | select GENERIC_CLOCKEVENTS |
264 | select HAVE_CLK | 264 | select HAVE_CLK |
265 | select ICST | 265 | select ICST |
@@ -280,7 +280,7 @@ config ARCH_BCMRING | |||
280 | depends on MMU | 280 | depends on MMU |
281 | select CPU_V6 | 281 | select CPU_V6 |
282 | select ARM_AMBA | 282 | select ARM_AMBA |
283 | select COMMON_CLKDEV | 283 | select CLKDEV_LOOKUP |
284 | select GENERIC_CLOCKEVENTS | 284 | select GENERIC_CLOCKEVENTS |
285 | select ARCH_WANT_OPTIONAL_GPIOLIB | 285 | select ARCH_WANT_OPTIONAL_GPIOLIB |
286 | help | 286 | help |
@@ -327,7 +327,7 @@ config ARCH_EP93XX | |||
327 | select CPU_ARM920T | 327 | select CPU_ARM920T |
328 | select ARM_AMBA | 328 | select ARM_AMBA |
329 | select ARM_VIC | 329 | select ARM_VIC |
330 | select COMMON_CLKDEV | 330 | select CLKDEV_LOOKUP |
331 | select ARCH_REQUIRE_GPIOLIB | 331 | select ARCH_REQUIRE_GPIOLIB |
332 | select ARCH_HAS_HOLES_MEMORYMODEL | 332 | select ARCH_HAS_HOLES_MEMORYMODEL |
333 | select ARCH_USES_GETTIMEOFFSET | 333 | select ARCH_USES_GETTIMEOFFSET |
@@ -347,14 +347,14 @@ config ARCH_MXC | |||
347 | bool "Freescale MXC/iMX-based" | 347 | bool "Freescale MXC/iMX-based" |
348 | select GENERIC_CLOCKEVENTS | 348 | select GENERIC_CLOCKEVENTS |
349 | select ARCH_REQUIRE_GPIOLIB | 349 | select ARCH_REQUIRE_GPIOLIB |
350 | select COMMON_CLKDEV | 350 | select CLKDEV_LOOKUP |
351 | help | 351 | help |
352 | Support for Freescale MXC/iMX-based family of processors | 352 | Support for Freescale MXC/iMX-based family of processors |
353 | 353 | ||
354 | config ARCH_STMP3XXX | 354 | config ARCH_STMP3XXX |
355 | bool "Freescale STMP3xxx" | 355 | bool "Freescale STMP3xxx" |
356 | select CPU_ARM926T | 356 | select CPU_ARM926T |
357 | select COMMON_CLKDEV | 357 | select CLKDEV_LOOKUP |
358 | select ARCH_REQUIRE_GPIOLIB | 358 | select ARCH_REQUIRE_GPIOLIB |
359 | select GENERIC_CLOCKEVENTS | 359 | select GENERIC_CLOCKEVENTS |
360 | select USB_ARCH_HAS_EHCI | 360 | select USB_ARCH_HAS_EHCI |
@@ -472,7 +472,7 @@ config ARCH_LPC32XX | |||
472 | select HAVE_IDE | 472 | select HAVE_IDE |
473 | select ARM_AMBA | 473 | select ARM_AMBA |
474 | select USB_ARCH_HAS_OHCI | 474 | select USB_ARCH_HAS_OHCI |
475 | select COMMON_CLKDEV | 475 | select CLKDEV_LOOKUP |
476 | select GENERIC_TIME | 476 | select GENERIC_TIME |
477 | select GENERIC_CLOCKEVENTS | 477 | select GENERIC_CLOCKEVENTS |
478 | help | 478 | help |
@@ -506,7 +506,7 @@ config ARCH_MMP | |||
506 | bool "Marvell PXA168/910/MMP2" | 506 | bool "Marvell PXA168/910/MMP2" |
507 | depends on MMU | 507 | depends on MMU |
508 | select ARCH_REQUIRE_GPIOLIB | 508 | select ARCH_REQUIRE_GPIOLIB |
509 | select COMMON_CLKDEV | 509 | select CLKDEV_LOOKUP |
510 | select GENERIC_CLOCKEVENTS | 510 | select GENERIC_CLOCKEVENTS |
511 | select TICK_ONESHOT | 511 | select TICK_ONESHOT |
512 | select PLAT_PXA | 512 | select PLAT_PXA |
@@ -539,7 +539,7 @@ config ARCH_W90X900 | |||
539 | bool "Nuvoton W90X900 CPU" | 539 | bool "Nuvoton W90X900 CPU" |
540 | select CPU_ARM926T | 540 | select CPU_ARM926T |
541 | select ARCH_REQUIRE_GPIOLIB | 541 | select ARCH_REQUIRE_GPIOLIB |
542 | select COMMON_CLKDEV | 542 | select CLKDEV_LOOKUP |
543 | select GENERIC_CLOCKEVENTS | 543 | select GENERIC_CLOCKEVENTS |
544 | help | 544 | help |
545 | Support for Nuvoton (Winbond logic dept.) ARM9 processor, | 545 | Support for Nuvoton (Winbond logic dept.) ARM9 processor, |
@@ -553,7 +553,7 @@ config ARCH_W90X900 | |||
553 | config ARCH_NUC93X | 553 | config ARCH_NUC93X |
554 | bool "Nuvoton NUC93X CPU" | 554 | bool "Nuvoton NUC93X CPU" |
555 | select CPU_ARM926T | 555 | select CPU_ARM926T |
556 | select COMMON_CLKDEV | 556 | select CLKDEV_LOOKUP |
557 | help | 557 | help |
558 | Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a | 558 | Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a |
559 | low-power and high performance MPEG-4/JPEG multimedia controller chip. | 559 | low-power and high performance MPEG-4/JPEG multimedia controller chip. |
@@ -564,7 +564,7 @@ config ARCH_TEGRA | |||
564 | select GENERIC_CLOCKEVENTS | 564 | select GENERIC_CLOCKEVENTS |
565 | select GENERIC_GPIO | 565 | select GENERIC_GPIO |
566 | select HAVE_CLK | 566 | select HAVE_CLK |
567 | select COMMON_CLKDEV | 567 | select CLKDEV_LOOKUP |
568 | select ARCH_HAS_BARRIERS if CACHE_L2X0 | 568 | select ARCH_HAS_BARRIERS if CACHE_L2X0 |
569 | select ARCH_HAS_CPUFREQ | 569 | select ARCH_HAS_CPUFREQ |
570 | help | 570 | help |
@@ -574,7 +574,7 @@ config ARCH_TEGRA | |||
574 | config ARCH_PNX4008 | 574 | config ARCH_PNX4008 |
575 | bool "Philips Nexperia PNX4008 Mobile" | 575 | bool "Philips Nexperia PNX4008 Mobile" |
576 | select CPU_ARM926T | 576 | select CPU_ARM926T |
577 | select COMMON_CLKDEV | 577 | select CLKDEV_LOOKUP |
578 | select ARCH_USES_GETTIMEOFFSET | 578 | select ARCH_USES_GETTIMEOFFSET |
579 | help | 579 | help |
580 | This enables support for Philips PNX4008 mobile platform. | 580 | This enables support for Philips PNX4008 mobile platform. |
@@ -584,7 +584,7 @@ config ARCH_PXA | |||
584 | depends on MMU | 584 | depends on MMU |
585 | select ARCH_MTD_XIP | 585 | select ARCH_MTD_XIP |
586 | select ARCH_HAS_CPUFREQ | 586 | select ARCH_HAS_CPUFREQ |
587 | select COMMON_CLKDEV | 587 | select CLKDEV_LOOKUP |
588 | select ARCH_REQUIRE_GPIOLIB | 588 | select ARCH_REQUIRE_GPIOLIB |
589 | select GENERIC_CLOCKEVENTS | 589 | select GENERIC_CLOCKEVENTS |
590 | select TICK_ONESHOT | 590 | select TICK_ONESHOT |
@@ -761,7 +761,7 @@ config ARCH_TCC_926 | |||
761 | bool "Telechips TCC ARM926-based systems" | 761 | bool "Telechips TCC ARM926-based systems" |
762 | select CPU_ARM926T | 762 | select CPU_ARM926T |
763 | select HAVE_CLK | 763 | select HAVE_CLK |
764 | select COMMON_CLKDEV | 764 | select CLKDEV_LOOKUP |
765 | select GENERIC_CLOCKEVENTS | 765 | select GENERIC_CLOCKEVENTS |
766 | help | 766 | help |
767 | Support for Telechips TCC ARM926-based systems. | 767 | Support for Telechips TCC ARM926-based systems. |
@@ -785,7 +785,7 @@ config ARCH_U300 | |||
785 | select ARM_AMBA | 785 | select ARM_AMBA |
786 | select ARM_VIC | 786 | select ARM_VIC |
787 | select GENERIC_CLOCKEVENTS | 787 | select GENERIC_CLOCKEVENTS |
788 | select COMMON_CLKDEV | 788 | select CLKDEV_LOOKUP |
789 | select GENERIC_GPIO | 789 | select GENERIC_GPIO |
790 | help | 790 | help |
791 | Support for ST-Ericsson U300 series mobile platforms. | 791 | Support for ST-Ericsson U300 series mobile platforms. |
@@ -795,7 +795,7 @@ config ARCH_U8500 | |||
795 | select CPU_V7 | 795 | select CPU_V7 |
796 | select ARM_AMBA | 796 | select ARM_AMBA |
797 | select GENERIC_CLOCKEVENTS | 797 | select GENERIC_CLOCKEVENTS |
798 | select COMMON_CLKDEV | 798 | select CLKDEV_LOOKUP |
799 | select ARCH_REQUIRE_GPIOLIB | 799 | select ARCH_REQUIRE_GPIOLIB |
800 | help | 800 | help |
801 | Support for ST-Ericsson's Ux500 architecture | 801 | Support for ST-Ericsson's Ux500 architecture |
@@ -805,7 +805,7 @@ config ARCH_NOMADIK | |||
805 | select ARM_AMBA | 805 | select ARM_AMBA |
806 | select ARM_VIC | 806 | select ARM_VIC |
807 | select CPU_ARM926T | 807 | select CPU_ARM926T |
808 | select COMMON_CLKDEV | 808 | select CLKDEV_LOOKUP |
809 | select GENERIC_CLOCKEVENTS | 809 | select GENERIC_CLOCKEVENTS |
810 | select ARCH_REQUIRE_GPIOLIB | 810 | select ARCH_REQUIRE_GPIOLIB |
811 | help | 811 | help |
@@ -817,7 +817,7 @@ config ARCH_DAVINCI | |||
817 | select ARCH_REQUIRE_GPIOLIB | 817 | select ARCH_REQUIRE_GPIOLIB |
818 | select ZONE_DMA | 818 | select ZONE_DMA |
819 | select HAVE_IDE | 819 | select HAVE_IDE |
820 | select COMMON_CLKDEV | 820 | select CLKDEV_LOOKUP |
821 | select GENERIC_ALLOCATOR | 821 | select GENERIC_ALLOCATOR |
822 | select ARCH_HAS_HOLES_MEMORYMODEL | 822 | select ARCH_HAS_HOLES_MEMORYMODEL |
823 | help | 823 | help |
@@ -837,7 +837,7 @@ config PLAT_SPEAR | |||
837 | bool "ST SPEAr" | 837 | bool "ST SPEAr" |
838 | select ARM_AMBA | 838 | select ARM_AMBA |
839 | select ARCH_REQUIRE_GPIOLIB | 839 | select ARCH_REQUIRE_GPIOLIB |
840 | select COMMON_CLKDEV | 840 | select CLKDEV_LOOKUP |
841 | select GENERIC_CLOCKEVENTS | 841 | select GENERIC_CLOCKEVENTS |
842 | select HAVE_CLK | 842 | select HAVE_CLK |
843 | help | 843 | help |
diff --git a/arch/arm/common/Kconfig b/arch/arm/common/Kconfig index 0a34c8186924..778655f0257a 100644 --- a/arch/arm/common/Kconfig +++ b/arch/arm/common/Kconfig | |||
@@ -37,7 +37,3 @@ config SHARP_PARAM | |||
37 | 37 | ||
38 | config SHARP_SCOOP | 38 | config SHARP_SCOOP |
39 | bool | 39 | bool |
40 | |||
41 | config COMMON_CLKDEV | ||
42 | bool | ||
43 | select HAVE_CLK | ||
diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile index e6e8664a9413..799e140274f1 100644 --- a/arch/arm/common/Makefile +++ b/arch/arm/common/Makefile | |||
@@ -16,4 +16,3 @@ obj-$(CONFIG_SHARP_SCOOP) += scoop.o | |||
16 | obj-$(CONFIG_ARCH_IXP2000) += uengine.o | 16 | obj-$(CONFIG_ARCH_IXP2000) += uengine.o |
17 | obj-$(CONFIG_ARCH_IXP23XX) += uengine.o | 17 | obj-$(CONFIG_ARCH_IXP23XX) += uengine.o |
18 | obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o | 18 | obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o |
19 | obj-$(CONFIG_COMMON_CLKDEV) += clkdev.o | ||
diff --git a/arch/arm/common/clkdev.c b/arch/arm/common/clkdev.c deleted file mode 100644 index e2b2bb66e094..000000000000 --- a/arch/arm/common/clkdev.c +++ /dev/null | |||
@@ -1,179 +0,0 @@ | |||
1 | /* | ||
2 | * arch/arm/common/clkdev.c | ||
3 | * | ||
4 | * Copyright (C) 2008 Russell King. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * Helper for the clk API to assist looking up a struct clk. | ||
11 | */ | ||
12 | #include <linux/module.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/device.h> | ||
15 | #include <linux/list.h> | ||
16 | #include <linux/errno.h> | ||
17 | #include <linux/err.h> | ||
18 | #include <linux/string.h> | ||
19 | #include <linux/mutex.h> | ||
20 | #include <linux/clk.h> | ||
21 | #include <linux/slab.h> | ||
22 | |||
23 | #include <asm/clkdev.h> | ||
24 | #include <mach/clkdev.h> | ||
25 | |||
26 | static LIST_HEAD(clocks); | ||
27 | static DEFINE_MUTEX(clocks_mutex); | ||
28 | |||
29 | /* | ||
30 | * Find the correct struct clk for the device and connection ID. | ||
31 | * We do slightly fuzzy matching here: | ||
32 | * An entry with a NULL ID is assumed to be a wildcard. | ||
33 | * If an entry has a device ID, it must match | ||
34 | * If an entry has a connection ID, it must match | ||
35 | * Then we take the most specific entry - with the following | ||
36 | * order of precedence: dev+con > dev only > con only. | ||
37 | */ | ||
38 | static struct clk *clk_find(const char *dev_id, const char *con_id) | ||
39 | { | ||
40 | struct clk_lookup *p; | ||
41 | struct clk *clk = NULL; | ||
42 | int match, best = 0; | ||
43 | |||
44 | list_for_each_entry(p, &clocks, node) { | ||
45 | match = 0; | ||
46 | if (p->dev_id) { | ||
47 | if (!dev_id || strcmp(p->dev_id, dev_id)) | ||
48 | continue; | ||
49 | match += 2; | ||
50 | } | ||
51 | if (p->con_id) { | ||
52 | if (!con_id || strcmp(p->con_id, con_id)) | ||
53 | continue; | ||
54 | match += 1; | ||
55 | } | ||
56 | |||
57 | if (match > best) { | ||
58 | clk = p->clk; | ||
59 | if (match != 3) | ||
60 | best = match; | ||
61 | else | ||
62 | break; | ||
63 | } | ||
64 | } | ||
65 | return clk; | ||
66 | } | ||
67 | |||
68 | struct clk *clk_get_sys(const char *dev_id, const char *con_id) | ||
69 | { | ||
70 | struct clk *clk; | ||
71 | |||
72 | mutex_lock(&clocks_mutex); | ||
73 | clk = clk_find(dev_id, con_id); | ||
74 | if (clk && !__clk_get(clk)) | ||
75 | clk = NULL; | ||
76 | mutex_unlock(&clocks_mutex); | ||
77 | |||
78 | return clk ? clk : ERR_PTR(-ENOENT); | ||
79 | } | ||
80 | EXPORT_SYMBOL(clk_get_sys); | ||
81 | |||
82 | struct clk *clk_get(struct device *dev, const char *con_id) | ||
83 | { | ||
84 | const char *dev_id = dev ? dev_name(dev) : NULL; | ||
85 | |||
86 | return clk_get_sys(dev_id, con_id); | ||
87 | } | ||
88 | EXPORT_SYMBOL(clk_get); | ||
89 | |||
90 | void clk_put(struct clk *clk) | ||
91 | { | ||
92 | __clk_put(clk); | ||
93 | } | ||
94 | EXPORT_SYMBOL(clk_put); | ||
95 | |||
96 | void clkdev_add(struct clk_lookup *cl) | ||
97 | { | ||
98 | mutex_lock(&clocks_mutex); | ||
99 | list_add_tail(&cl->node, &clocks); | ||
100 | mutex_unlock(&clocks_mutex); | ||
101 | } | ||
102 | EXPORT_SYMBOL(clkdev_add); | ||
103 | |||
104 | void __init clkdev_add_table(struct clk_lookup *cl, size_t num) | ||
105 | { | ||
106 | mutex_lock(&clocks_mutex); | ||
107 | while (num--) { | ||
108 | list_add_tail(&cl->node, &clocks); | ||
109 | cl++; | ||
110 | } | ||
111 | mutex_unlock(&clocks_mutex); | ||
112 | } | ||
113 | |||
114 | #define MAX_DEV_ID 20 | ||
115 | #define MAX_CON_ID 16 | ||
116 | |||
117 | struct clk_lookup_alloc { | ||
118 | struct clk_lookup cl; | ||
119 | char dev_id[MAX_DEV_ID]; | ||
120 | char con_id[MAX_CON_ID]; | ||
121 | }; | ||
122 | |||
123 | struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id, | ||
124 | const char *dev_fmt, ...) | ||
125 | { | ||
126 | struct clk_lookup_alloc *cla; | ||
127 | |||
128 | cla = kzalloc(sizeof(*cla), GFP_KERNEL); | ||
129 | if (!cla) | ||
130 | return NULL; | ||
131 | |||
132 | cla->cl.clk = clk; | ||
133 | if (con_id) { | ||
134 | strlcpy(cla->con_id, con_id, sizeof(cla->con_id)); | ||
135 | cla->cl.con_id = cla->con_id; | ||
136 | } | ||
137 | |||
138 | if (dev_fmt) { | ||
139 | va_list ap; | ||
140 | |||
141 | va_start(ap, dev_fmt); | ||
142 | vscnprintf(cla->dev_id, sizeof(cla->dev_id), dev_fmt, ap); | ||
143 | cla->cl.dev_id = cla->dev_id; | ||
144 | va_end(ap); | ||
145 | } | ||
146 | |||
147 | return &cla->cl; | ||
148 | } | ||
149 | EXPORT_SYMBOL(clkdev_alloc); | ||
150 | |||
151 | int clk_add_alias(const char *alias, const char *alias_dev_name, char *id, | ||
152 | struct device *dev) | ||
153 | { | ||
154 | struct clk *r = clk_get(dev, id); | ||
155 | struct clk_lookup *l; | ||
156 | |||
157 | if (IS_ERR(r)) | ||
158 | return PTR_ERR(r); | ||
159 | |||
160 | l = clkdev_alloc(r, alias, alias_dev_name); | ||
161 | clk_put(r); | ||
162 | if (!l) | ||
163 | return -ENODEV; | ||
164 | clkdev_add(l); | ||
165 | return 0; | ||
166 | } | ||
167 | EXPORT_SYMBOL(clk_add_alias); | ||
168 | |||
169 | /* | ||
170 | * clkdev_drop - remove a clock dynamically allocated | ||
171 | */ | ||
172 | void clkdev_drop(struct clk_lookup *cl) | ||
173 | { | ||
174 | mutex_lock(&clocks_mutex); | ||
175 | list_del(&cl->node); | ||
176 | mutex_unlock(&clocks_mutex); | ||
177 | kfree(cl); | ||
178 | } | ||
179 | EXPORT_SYMBOL(clkdev_drop); | ||
diff --git a/arch/arm/include/asm/clkdev.h b/arch/arm/include/asm/clkdev.h index b56c1389b6fa..765d33222369 100644 --- a/arch/arm/include/asm/clkdev.h +++ b/arch/arm/include/asm/clkdev.h | |||
@@ -12,23 +12,13 @@ | |||
12 | #ifndef __ASM_CLKDEV_H | 12 | #ifndef __ASM_CLKDEV_H |
13 | #define __ASM_CLKDEV_H | 13 | #define __ASM_CLKDEV_H |
14 | 14 | ||
15 | struct clk; | 15 | #include <linux/slab.h> |
16 | struct device; | ||
17 | 16 | ||
18 | struct clk_lookup { | 17 | #include <mach/clkdev.h> |
19 | struct list_head node; | ||
20 | const char *dev_id; | ||
21 | const char *con_id; | ||
22 | struct clk *clk; | ||
23 | }; | ||
24 | 18 | ||
25 | struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id, | 19 | static inline struct clk_lookup_alloc *__clkdev_alloc(size_t size) |
26 | const char *dev_fmt, ...); | 20 | { |
27 | 21 | return kzalloc(size, GFP_KERNEL); | |
28 | void clkdev_add(struct clk_lookup *cl); | 22 | } |
29 | void clkdev_drop(struct clk_lookup *cl); | ||
30 | |||
31 | void clkdev_add_table(struct clk_lookup *, size_t); | ||
32 | int clk_add_alias(const char *, const char *, char *, struct device *); | ||
33 | 23 | ||
34 | #endif | 24 | #endif |
diff --git a/arch/arm/mach-bcmring/clock.c b/arch/arm/mach-bcmring/clock.c index 14bafc38f2dc..ad237a42d265 100644 --- a/arch/arm/mach-bcmring/clock.c +++ b/arch/arm/mach-bcmring/clock.c | |||
@@ -21,13 +21,12 @@ | |||
21 | #include <linux/string.h> | 21 | #include <linux/string.h> |
22 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
23 | #include <linux/spinlock.h> | 23 | #include <linux/spinlock.h> |
24 | #include <linux/clkdev.h> | ||
24 | #include <mach/csp/hw_cfg.h> | 25 | #include <mach/csp/hw_cfg.h> |
25 | #include <mach/csp/chipcHw_def.h> | 26 | #include <mach/csp/chipcHw_def.h> |
26 | #include <mach/csp/chipcHw_reg.h> | 27 | #include <mach/csp/chipcHw_reg.h> |
27 | #include <mach/csp/chipcHw_inline.h> | 28 | #include <mach/csp/chipcHw_inline.h> |
28 | 29 | ||
29 | #include <asm/clkdev.h> | ||
30 | |||
31 | #include "clock.h" | 30 | #include "clock.h" |
32 | 31 | ||
33 | #define clk_is_primary(x) ((x)->type & CLK_TYPE_PRIMARY) | 32 | #define clk_is_primary(x) ((x)->type & CLK_TYPE_PRIMARY) |
diff --git a/arch/arm/mach-bcmring/core.c b/arch/arm/mach-bcmring/core.c index d3f959e92b2d..ed96ef400474 100644 --- a/arch/arm/mach-bcmring/core.c +++ b/arch/arm/mach-bcmring/core.c | |||
@@ -30,10 +30,10 @@ | |||
30 | #include <linux/amba/bus.h> | 30 | #include <linux/amba/bus.h> |
31 | #include <linux/clocksource.h> | 31 | #include <linux/clocksource.h> |
32 | #include <linux/clockchips.h> | 32 | #include <linux/clockchips.h> |
33 | #include <linux/clkdev.h> | ||
33 | 34 | ||
34 | #include <mach/csp/mm_addr.h> | 35 | #include <mach/csp/mm_addr.h> |
35 | #include <mach/hardware.h> | 36 | #include <mach/hardware.h> |
36 | #include <asm/clkdev.h> | ||
37 | #include <linux/io.h> | 37 | #include <linux/io.h> |
38 | #include <asm/irq.h> | 38 | #include <asm/irq.h> |
39 | #include <asm/hardware/arm_timer.h> | 39 | #include <asm/hardware/arm_timer.h> |
diff --git a/arch/arm/mach-davinci/clock.h b/arch/arm/mach-davinci/clock.h index 11099980b58b..0dd22031ec62 100644 --- a/arch/arm/mach-davinci/clock.h +++ b/arch/arm/mach-davinci/clock.h | |||
@@ -68,7 +68,7 @@ | |||
68 | #ifndef __ASSEMBLER__ | 68 | #ifndef __ASSEMBLER__ |
69 | 69 | ||
70 | #include <linux/list.h> | 70 | #include <linux/list.h> |
71 | #include <asm/clkdev.h> | 71 | #include <linux/clkdev.h> |
72 | 72 | ||
73 | #define PLLSTAT_GOSTAT BIT(0) | 73 | #define PLLSTAT_GOSTAT BIT(0) |
74 | #define PLLCMD_GOSET BIT(0) | 74 | #define PLLCMD_GOSET BIT(0) |
diff --git a/arch/arm/mach-ep93xx/clock.c b/arch/arm/mach-ep93xx/clock.c index ef06c66a6f16..ca4de7105097 100644 --- a/arch/arm/mach-ep93xx/clock.c +++ b/arch/arm/mach-ep93xx/clock.c | |||
@@ -19,10 +19,10 @@ | |||
19 | #include <linux/string.h> | 19 | #include <linux/string.h> |
20 | #include <linux/io.h> | 20 | #include <linux/io.h> |
21 | #include <linux/spinlock.h> | 21 | #include <linux/spinlock.h> |
22 | #include <linux/clkdev.h> | ||
22 | 23 | ||
23 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
24 | 25 | ||
25 | #include <asm/clkdev.h> | ||
26 | #include <asm/div64.h> | 26 | #include <asm/div64.h> |
27 | 27 | ||
28 | 28 | ||
diff --git a/arch/arm/mach-imx/clock-imx1.c b/arch/arm/mach-imx/clock-imx1.c index daca30b2d5b1..3938a563b280 100644 --- a/arch/arm/mach-imx/clock-imx1.c +++ b/arch/arm/mach-imx/clock-imx1.c | |||
@@ -22,8 +22,7 @@ | |||
22 | #include <linux/err.h> | 22 | #include <linux/err.h> |
23 | #include <linux/clk.h> | 23 | #include <linux/clk.h> |
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | 25 | #include <linux/clkdev.h> | |
26 | #include <asm/clkdev.h> | ||
27 | 26 | ||
28 | #include <mach/clock.h> | 27 | #include <mach/clock.h> |
29 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
diff --git a/arch/arm/mach-imx/clock-imx21.c b/arch/arm/mach-imx/clock-imx21.c index cf15ea516a72..d7056559715a 100644 --- a/arch/arm/mach-imx/clock-imx21.c +++ b/arch/arm/mach-imx/clock-imx21.c | |||
@@ -21,11 +21,11 @@ | |||
21 | #include <linux/clk.h> | 21 | #include <linux/clk.h> |
22 | #include <linux/io.h> | 22 | #include <linux/io.h> |
23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
24 | #include <linux/clkdev.h> | ||
24 | 25 | ||
25 | #include <mach/clock.h> | 26 | #include <mach/clock.h> |
26 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
27 | #include <mach/common.h> | 28 | #include <mach/common.h> |
28 | #include <asm/clkdev.h> | ||
29 | #include <asm/div64.h> | 29 | #include <asm/div64.h> |
30 | 30 | ||
31 | #define IO_ADDR_CCM(off) (MX21_IO_ADDRESS(MX21_CCM_BASE_ADDR + (off))) | 31 | #define IO_ADDR_CCM(off) (MX21_IO_ADDRESS(MX21_CCM_BASE_ADDR + (off))) |
diff --git a/arch/arm/mach-imx/clock-imx27.c b/arch/arm/mach-imx/clock-imx27.c index 98a25bada783..ca1017b9028d 100644 --- a/arch/arm/mach-imx/clock-imx27.c +++ b/arch/arm/mach-imx/clock-imx27.c | |||
@@ -21,8 +21,8 @@ | |||
21 | #include <linux/clk.h> | 21 | #include <linux/clk.h> |
22 | #include <linux/io.h> | 22 | #include <linux/io.h> |
23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
24 | #include <linux/clkdev.h> | ||
24 | 25 | ||
25 | #include <asm/clkdev.h> | ||
26 | #include <asm/div64.h> | 26 | #include <asm/div64.h> |
27 | 27 | ||
28 | #include <mach/clock.h> | 28 | #include <mach/clock.h> |
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c index 8f4fb6d638f7..b8e884b450da 100644 --- a/arch/arm/mach-integrator/core.c +++ b/arch/arm/mach-integrator/core.c | |||
@@ -21,9 +21,8 @@ | |||
21 | #include <linux/amba/bus.h> | 21 | #include <linux/amba/bus.h> |
22 | #include <linux/amba/serial.h> | 22 | #include <linux/amba/serial.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <linux/clkdev.h> | ||
24 | 25 | ||
25 | #include <asm/clkdev.h> | ||
26 | #include <mach/clkdev.h> | ||
27 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
28 | #include <mach/platform.h> | 27 | #include <mach/platform.h> |
29 | #include <asm/irq.h> | 28 | #include <asm/irq.h> |
diff --git a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c index fd684bf205e5..5db574f8ae3f 100644 --- a/arch/arm/mach-integrator/impd1.c +++ b/arch/arm/mach-integrator/impd1.c | |||
@@ -22,9 +22,8 @@ | |||
22 | #include <linux/amba/clcd.h> | 22 | #include <linux/amba/clcd.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
25 | #include <linux/clkdev.h> | ||
25 | 26 | ||
26 | #include <asm/clkdev.h> | ||
27 | #include <mach/clkdev.h> | ||
28 | #include <asm/hardware/icst.h> | 27 | #include <asm/hardware/icst.h> |
29 | #include <mach/lm.h> | 28 | #include <mach/lm.h> |
30 | #include <mach/impd1.h> | 29 | #include <mach/impd1.h> |
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 6258c90d020c..9403d2fa13a3 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
@@ -21,9 +21,8 @@ | |||
21 | #include <linux/amba/mmci.h> | 21 | #include <linux/amba/mmci.h> |
22 | #include <linux/io.h> | 22 | #include <linux/io.h> |
23 | #include <linux/gfp.h> | 23 | #include <linux/gfp.h> |
24 | #include <linux/clkdev.h> | ||
24 | 25 | ||
25 | #include <asm/clkdev.h> | ||
26 | #include <mach/clkdev.h> | ||
27 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
28 | #include <mach/platform.h> | 27 | #include <mach/platform.h> |
29 | #include <asm/irq.h> | 28 | #include <asm/irq.h> |
diff --git a/arch/arm/mach-lpc32xx/clock.c b/arch/arm/mach-lpc32xx/clock.c index 32d63796430a..da0e6498110a 100644 --- a/arch/arm/mach-lpc32xx/clock.c +++ b/arch/arm/mach-lpc32xx/clock.c | |||
@@ -90,10 +90,9 @@ | |||
90 | #include <linux/clk.h> | 90 | #include <linux/clk.h> |
91 | #include <linux/amba/bus.h> | 91 | #include <linux/amba/bus.h> |
92 | #include <linux/amba/clcd.h> | 92 | #include <linux/amba/clcd.h> |
93 | #include <linux/clkdev.h> | ||
93 | 94 | ||
94 | #include <mach/hardware.h> | 95 | #include <mach/hardware.h> |
95 | #include <asm/clkdev.h> | ||
96 | #include <mach/clkdev.h> | ||
97 | #include <mach/platform.h> | 96 | #include <mach/platform.h> |
98 | #include "clock.h" | 97 | #include "clock.h" |
99 | #include "common.h" | 98 | #include "common.h" |
diff --git a/arch/arm/mach-mmp/clock.h b/arch/arm/mach-mmp/clock.h index 016ae94691c0..9b027d7491f5 100644 --- a/arch/arm/mach-mmp/clock.h +++ b/arch/arm/mach-mmp/clock.h | |||
@@ -6,7 +6,7 @@ | |||
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <asm/clkdev.h> | 9 | #include <linux/clkdev.h> |
10 | 10 | ||
11 | struct clkops { | 11 | struct clkops { |
12 | void (*enable)(struct clk *); | 12 | void (*enable)(struct clk *); |
diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c index 9e4a5578c2fb..00dcb08019e9 100644 --- a/arch/arm/mach-mx25/clock.c +++ b/arch/arm/mach-mx25/clock.c | |||
@@ -21,8 +21,7 @@ | |||
21 | #include <linux/list.h> | 21 | #include <linux/list.h> |
22 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | 24 | #include <linux/clkdev.h> | |
25 | #include <asm/clkdev.h> | ||
26 | 25 | ||
27 | #include <mach/clock.h> | 26 | #include <mach/clock.h> |
28 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
diff --git a/arch/arm/mach-mx3/clock-imx31.c b/arch/arm/mach-mx3/clock-imx31.c index 109e98f323e0..1cd8b40b7676 100644 --- a/arch/arm/mach-mx3/clock-imx31.c +++ b/arch/arm/mach-mx3/clock-imx31.c | |||
@@ -23,8 +23,8 @@ | |||
23 | #include <linux/clk.h> | 23 | #include <linux/clk.h> |
24 | #include <linux/err.h> | 24 | #include <linux/err.h> |
25 | #include <linux/io.h> | 25 | #include <linux/io.h> |
26 | #include <linux/clkdev.h> | ||
26 | 27 | ||
27 | #include <asm/clkdev.h> | ||
28 | #include <asm/div64.h> | 28 | #include <asm/div64.h> |
29 | 29 | ||
30 | #include <mach/clock.h> | 30 | #include <mach/clock.h> |
diff --git a/arch/arm/mach-mx3/clock-imx35.c b/arch/arm/mach-mx3/clock-imx35.c index 61e4a318980a..819dd809615a 100644 --- a/arch/arm/mach-mx3/clock-imx35.c +++ b/arch/arm/mach-mx3/clock-imx35.c | |||
@@ -21,8 +21,7 @@ | |||
21 | #include <linux/list.h> | 21 | #include <linux/list.h> |
22 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | 24 | #include <linux/clkdev.h> | |
25 | #include <asm/clkdev.h> | ||
26 | 25 | ||
27 | #include <mach/clock.h> | 26 | #include <mach/clock.h> |
28 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
diff --git a/arch/arm/mach-mx5/clock-mx51.c b/arch/arm/mach-mx5/clock-mx51.c index 8ac36d882927..5975edb47de8 100644 --- a/arch/arm/mach-mx5/clock-mx51.c +++ b/arch/arm/mach-mx5/clock-mx51.c | |||
@@ -14,8 +14,8 @@ | |||
14 | #include <linux/delay.h> | 14 | #include <linux/delay.h> |
15 | #include <linux/clk.h> | 15 | #include <linux/clk.h> |
16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
17 | #include <linux/clkdev.h> | ||
17 | 18 | ||
18 | #include <asm/clkdev.h> | ||
19 | #include <asm/div64.h> | 19 | #include <asm/div64.h> |
20 | 20 | ||
21 | #include <mach/hardware.h> | 21 | #include <mach/hardware.h> |
diff --git a/arch/arm/mach-mxc91231/clock.c b/arch/arm/mach-mxc91231/clock.c index 5c85075d8a56..9fab505f1eb1 100644 --- a/arch/arm/mach-mxc91231/clock.c +++ b/arch/arm/mach-mxc91231/clock.c | |||
@@ -2,12 +2,12 @@ | |||
2 | #include <linux/kernel.h> | 2 | #include <linux/kernel.h> |
3 | #include <linux/init.h> | 3 | #include <linux/init.h> |
4 | #include <linux/io.h> | 4 | #include <linux/io.h> |
5 | #include <linux/clkdev.h> | ||
5 | 6 | ||
6 | #include <mach/clock.h> | 7 | #include <mach/clock.h> |
7 | #include <mach/hardware.h> | 8 | #include <mach/hardware.h> |
8 | #include <mach/common.h> | 9 | #include <mach/common.h> |
9 | 10 | ||
10 | #include <asm/clkdev.h> | ||
11 | #include <asm/bug.h> | 11 | #include <asm/bug.h> |
12 | #include <asm/div64.h> | 12 | #include <asm/div64.h> |
13 | 13 | ||
diff --git a/arch/arm/mach-nomadik/clock.c b/arch/arm/mach-nomadik/clock.c index 89f793adf776..48a59f24e10c 100644 --- a/arch/arm/mach-nomadik/clock.c +++ b/arch/arm/mach-nomadik/clock.c | |||
@@ -7,7 +7,7 @@ | |||
7 | #include <linux/module.h> | 7 | #include <linux/module.h> |
8 | #include <linux/errno.h> | 8 | #include <linux/errno.h> |
9 | #include <linux/clk.h> | 9 | #include <linux/clk.h> |
10 | #include <asm/clkdev.h> | 10 | #include <linux/clkdev.h> |
11 | #include "clock.h" | 11 | #include "clock.h" |
12 | 12 | ||
13 | /* | 13 | /* |
diff --git a/arch/arm/mach-nuc93x/clock.h b/arch/arm/mach-nuc93x/clock.h index 18e51be4816f..4de1f1da9dc5 100644 --- a/arch/arm/mach-nuc93x/clock.h +++ b/arch/arm/mach-nuc93x/clock.h | |||
@@ -10,7 +10,7 @@ | |||
10 | * the Free Software Foundation; either version 2 of the License. | 10 | * the Free Software Foundation; either version 2 of the License. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <asm/clkdev.h> | 13 | #include <linux/clkdev.h> |
14 | 14 | ||
15 | void nuc93x_clk_enable(struct clk *clk, int enable); | 15 | void nuc93x_clk_enable(struct clk *clk, int enable); |
16 | void clks_register(struct clk_lookup *clks, size_t num); | 16 | void clks_register(struct clk_lookup *clks, size_t num); |
diff --git a/arch/arm/mach-omap1/clock.c b/arch/arm/mach-omap1/clock.c index b8c7fb9d7921..84ef70476b51 100644 --- a/arch/arm/mach-omap1/clock.c +++ b/arch/arm/mach-omap1/clock.c | |||
@@ -17,9 +17,9 @@ | |||
17 | #include <linux/err.h> | 17 | #include <linux/err.h> |
18 | #include <linux/clk.h> | 18 | #include <linux/clk.h> |
19 | #include <linux/io.h> | 19 | #include <linux/io.h> |
20 | #include <linux/clkdev.h> | ||
20 | 21 | ||
21 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
22 | #include <asm/clkdev.h> | ||
23 | 23 | ||
24 | #include <plat/cpu.h> | 24 | #include <plat/cpu.h> |
25 | #include <plat/usb.h> | 25 | #include <plat/usb.h> |
diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c index ed8d330522f1..ebb888f59365 100644 --- a/arch/arm/mach-omap2/dpll3xxx.c +++ b/arch/arm/mach-omap2/dpll3xxx.c | |||
@@ -26,10 +26,10 @@ | |||
26 | #include <linux/clk.h> | 26 | #include <linux/clk.h> |
27 | #include <linux/io.h> | 27 | #include <linux/io.h> |
28 | #include <linux/bitops.h> | 28 | #include <linux/bitops.h> |
29 | #include <linux/clkdev.h> | ||
29 | 30 | ||
30 | #include <plat/cpu.h> | 31 | #include <plat/cpu.h> |
31 | #include <plat/clock.h> | 32 | #include <plat/clock.h> |
32 | #include <asm/clkdev.h> | ||
33 | 33 | ||
34 | #include "clock.h" | 34 | #include "clock.h" |
35 | #include "prm.h" | 35 | #include "prm.h" |
diff --git a/arch/arm/mach-pnx4008/clock.c b/arch/arm/mach-pnx4008/clock.c index 9d1975fa4d9f..a4a3819c96cb 100644 --- a/arch/arm/mach-pnx4008/clock.c +++ b/arch/arm/mach-pnx4008/clock.c | |||
@@ -21,8 +21,7 @@ | |||
21 | #include <linux/err.h> | 21 | #include <linux/err.h> |
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | 24 | #include <linux/clkdev.h> | |
25 | #include <asm/clkdev.h> | ||
26 | 25 | ||
27 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
28 | #include <mach/clock.h> | 27 | #include <mach/clock.h> |
diff --git a/arch/arm/mach-pxa/clock.c b/arch/arm/mach-pxa/clock.c index abba0089a2ae..4e4a84be96ba 100644 --- a/arch/arm/mach-pxa/clock.c +++ b/arch/arm/mach-pxa/clock.c | |||
@@ -11,8 +11,8 @@ | |||
11 | #include <linux/spinlock.h> | 11 | #include <linux/spinlock.h> |
12 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
13 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
14 | #include <linux/clkdev.h> | ||
14 | 15 | ||
15 | #include <asm/clkdev.h> | ||
16 | #include <mach/pxa2xx-regs.h> | 16 | #include <mach/pxa2xx-regs.h> |
17 | #include <mach/hardware.h> | 17 | #include <mach/hardware.h> |
18 | 18 | ||
diff --git a/arch/arm/mach-pxa/clock.h b/arch/arm/mach-pxa/clock.h index d8488742b807..12cc0e87e6c4 100644 --- a/arch/arm/mach-pxa/clock.h +++ b/arch/arm/mach-pxa/clock.h | |||
@@ -1,4 +1,4 @@ | |||
1 | #include <asm/clkdev.h> | 1 | #include <linux/clkdev.h> |
2 | 2 | ||
3 | struct clkops { | 3 | struct clkops { |
4 | void (*enable)(struct clk *); | 4 | void (*enable)(struct clk *); |
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index 07c08151dfe6..3d915b1ccdb5 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c | |||
@@ -30,8 +30,8 @@ | |||
30 | #include <linux/ata_platform.h> | 30 | #include <linux/ata_platform.h> |
31 | #include <linux/amba/mmci.h> | 31 | #include <linux/amba/mmci.h> |
32 | #include <linux/gfp.h> | 32 | #include <linux/gfp.h> |
33 | #include <linux/clkdev.h> | ||
33 | 34 | ||
34 | #include <asm/clkdev.h> | ||
35 | #include <asm/system.h> | 35 | #include <asm/system.h> |
36 | #include <mach/hardware.h> | 36 | #include <mach/hardware.h> |
37 | #include <asm/irq.h> | 37 | #include <asm/irq.h> |
@@ -47,7 +47,6 @@ | |||
47 | 47 | ||
48 | #include <asm/hardware/gic.h> | 48 | #include <asm/hardware/gic.h> |
49 | 49 | ||
50 | #include <mach/clkdev.h> | ||
51 | #include <mach/platform.h> | 50 | #include <mach/platform.h> |
52 | #include <mach/irqs.h> | 51 | #include <mach/irqs.h> |
53 | #include <plat/timer-sp.h> | 52 | #include <plat/timer-sp.h> |
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 54b479c35ee0..f8f06e9fec35 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
@@ -6,7 +6,7 @@ config ARCH_SH7367 | |||
6 | bool "SH-Mobile G3 (SH7367)" | 6 | bool "SH-Mobile G3 (SH7367)" |
7 | select CPU_V6 | 7 | select CPU_V6 |
8 | select HAVE_CLK | 8 | select HAVE_CLK |
9 | select COMMON_CLKDEV | 9 | select CLKDEV_LOOKUP |
10 | select SH_CLK_CPG | 10 | select SH_CLK_CPG |
11 | select GENERIC_CLOCKEVENTS | 11 | select GENERIC_CLOCKEVENTS |
12 | 12 | ||
@@ -14,7 +14,7 @@ config ARCH_SH7377 | |||
14 | bool "SH-Mobile G4 (SH7377)" | 14 | bool "SH-Mobile G4 (SH7377)" |
15 | select CPU_V7 | 15 | select CPU_V7 |
16 | select HAVE_CLK | 16 | select HAVE_CLK |
17 | select COMMON_CLKDEV | 17 | select CLKDEV_LOOKUP |
18 | select SH_CLK_CPG | 18 | select SH_CLK_CPG |
19 | select GENERIC_CLOCKEVENTS | 19 | select GENERIC_CLOCKEVENTS |
20 | 20 | ||
@@ -22,7 +22,7 @@ config ARCH_SH7372 | |||
22 | bool "SH-Mobile AP4 (SH7372)" | 22 | bool "SH-Mobile AP4 (SH7372)" |
23 | select CPU_V7 | 23 | select CPU_V7 |
24 | select HAVE_CLK | 24 | select HAVE_CLK |
25 | select COMMON_CLKDEV | 25 | select CLKDEV_LOOKUP |
26 | select SH_CLK_CPG | 26 | select SH_CLK_CPG |
27 | select GENERIC_CLOCKEVENTS | 27 | select GENERIC_CLOCKEVENTS |
28 | 28 | ||
diff --git a/arch/arm/mach-shmobile/clock-sh7367.c b/arch/arm/mach-shmobile/clock-sh7367.c index 9f78729098f2..6b186aefcbd6 100644 --- a/arch/arm/mach-shmobile/clock-sh7367.c +++ b/arch/arm/mach-shmobile/clock-sh7367.c | |||
@@ -20,8 +20,8 @@ | |||
20 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/sh_clk.h> | 22 | #include <linux/sh_clk.h> |
23 | #include <linux/clkdev.h> | ||
23 | #include <mach/common.h> | 24 | #include <mach/common.h> |
24 | #include <asm/clkdev.h> | ||
25 | 25 | ||
26 | /* SH7367 registers */ | 26 | /* SH7367 registers */ |
27 | #define RTFRQCR 0xe6150000 | 27 | #define RTFRQCR 0xe6150000 |
diff --git a/arch/arm/mach-shmobile/clock-sh7372.c b/arch/arm/mach-shmobile/clock-sh7372.c index 8565aefa21fd..445112adba46 100644 --- a/arch/arm/mach-shmobile/clock-sh7372.c +++ b/arch/arm/mach-shmobile/clock-sh7372.c | |||
@@ -20,8 +20,8 @@ | |||
20 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/sh_clk.h> | 22 | #include <linux/sh_clk.h> |
23 | #include <linux/clkdev.h> | ||
23 | #include <mach/common.h> | 24 | #include <mach/common.h> |
24 | #include <asm/clkdev.h> | ||
25 | 25 | ||
26 | /* SH7372 registers */ | 26 | /* SH7372 registers */ |
27 | #define FRQCRA 0xe6150000 | 27 | #define FRQCRA 0xe6150000 |
diff --git a/arch/arm/mach-shmobile/clock-sh7377.c b/arch/arm/mach-shmobile/clock-sh7377.c index f91395aeb9ab..95942466e63f 100644 --- a/arch/arm/mach-shmobile/clock-sh7377.c +++ b/arch/arm/mach-shmobile/clock-sh7377.c | |||
@@ -20,8 +20,8 @@ | |||
20 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/sh_clk.h> | 22 | #include <linux/sh_clk.h> |
23 | #include <linux/clkdev.h> | ||
23 | #include <mach/common.h> | 24 | #include <mach/common.h> |
24 | #include <asm/clkdev.h> | ||
25 | 25 | ||
26 | /* SH7377 registers */ | 26 | /* SH7377 registers */ |
27 | #define RTFRQCR 0xe6150000 | 27 | #define RTFRQCR 0xe6150000 |
diff --git a/arch/arm/mach-tcc8k/clock.c b/arch/arm/mach-tcc8k/clock.c index ba32a15127ab..3970a9cdce26 100644 --- a/arch/arm/mach-tcc8k/clock.c +++ b/arch/arm/mach-tcc8k/clock.c | |||
@@ -12,8 +12,7 @@ | |||
12 | #include <linux/io.h> | 12 | #include <linux/io.h> |
13 | #include <linux/module.h> | 13 | #include <linux/module.h> |
14 | #include <linux/spinlock.h> | 14 | #include <linux/spinlock.h> |
15 | 15 | #include <linux/clkdev.h> | |
16 | #include <asm/clkdev.h> | ||
17 | 16 | ||
18 | #include <mach/clock.h> | 17 | #include <mach/clock.h> |
19 | #include <mach/irqs.h> | 18 | #include <mach/irqs.h> |
diff --git a/arch/arm/mach-tegra/clock.c b/arch/arm/mach-tegra/clock.c index ae19f95585be..77948e0f4909 100644 --- a/arch/arm/mach-tegra/clock.c +++ b/arch/arm/mach-tegra/clock.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | #include <linux/seq_file.h> | 26 | #include <linux/seq_file.h> |
27 | #include <linux/regulator/consumer.h> | 27 | #include <linux/regulator/consumer.h> |
28 | #include <asm/clkdev.h> | 28 | #include <linux/clkdev.h> |
29 | 29 | ||
30 | #include "clock.h" | 30 | #include "clock.h" |
31 | #include "board.h" | 31 | #include "board.h" |
diff --git a/arch/arm/mach-tegra/clock.h b/arch/arm/mach-tegra/clock.h index 94fd859770f1..083a4cfc6cf0 100644 --- a/arch/arm/mach-tegra/clock.h +++ b/arch/arm/mach-tegra/clock.h | |||
@@ -21,7 +21,7 @@ | |||
21 | #define __MACH_TEGRA_CLOCK_H | 21 | #define __MACH_TEGRA_CLOCK_H |
22 | 22 | ||
23 | #include <linux/list.h> | 23 | #include <linux/list.h> |
24 | #include <asm/clkdev.h> | 24 | #include <linux/clkdev.h> |
25 | 25 | ||
26 | #define DIV_BUS (1 << 0) | 26 | #define DIV_BUS (1 << 0) |
27 | #define DIV_U71 (1 << 1) | 27 | #define DIV_U71 (1 << 1) |
diff --git a/arch/arm/mach-tegra/tegra2_clocks.c b/arch/arm/mach-tegra/tegra2_clocks.c index ae3b308e22a4..f0dae6d8ba52 100644 --- a/arch/arm/mach-tegra/tegra2_clocks.c +++ b/arch/arm/mach-tegra/tegra2_clocks.c | |||
@@ -24,8 +24,7 @@ | |||
24 | #include <linux/delay.h> | 24 | #include <linux/delay.h> |
25 | #include <linux/io.h> | 25 | #include <linux/io.h> |
26 | #include <linux/hrtimer.h> | 26 | #include <linux/hrtimer.h> |
27 | 27 | #include <linux/clkdev.h> | |
28 | #include <asm/clkdev.h> | ||
29 | 28 | ||
30 | #include <mach/iomap.h> | 29 | #include <mach/iomap.h> |
31 | 30 | ||
diff --git a/arch/arm/mach-u300/clock.c b/arch/arm/mach-u300/clock.c index 7458fc6df5c6..fabcc49abe80 100644 --- a/arch/arm/mach-u300/clock.c +++ b/arch/arm/mach-u300/clock.c | |||
@@ -25,8 +25,8 @@ | |||
25 | #include <linux/timer.h> | 25 | #include <linux/timer.h> |
26 | #include <linux/io.h> | 26 | #include <linux/io.h> |
27 | #include <linux/seq_file.h> | 27 | #include <linux/seq_file.h> |
28 | #include <linux/clkdev.h> | ||
28 | 29 | ||
29 | #include <asm/clkdev.h> | ||
30 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
31 | #include <mach/syscon.h> | 31 | #include <mach/syscon.h> |
32 | 32 | ||
diff --git a/arch/arm/mach-ux500/clock.c b/arch/arm/mach-ux500/clock.c index 1675047daf20..531de5c63641 100644 --- a/arch/arm/mach-ux500/clock.c +++ b/arch/arm/mach-ux500/clock.c | |||
@@ -13,8 +13,7 @@ | |||
13 | #include <linux/err.h> | 13 | #include <linux/err.h> |
14 | #include <linux/clk.h> | 14 | #include <linux/clk.h> |
15 | #include <linux/io.h> | 15 | #include <linux/io.h> |
16 | 16 | #include <linux/clkdev.h> | |
17 | #include <asm/clkdev.h> | ||
18 | 17 | ||
19 | #include <plat/mtu.h> | 18 | #include <plat/mtu.h> |
20 | #include <mach/hardware.h> | 19 | #include <mach/hardware.h> |
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index e38acb0f89c8..8c1ca1d63538 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c | |||
@@ -31,8 +31,8 @@ | |||
31 | #include <linux/amba/pl022.h> | 31 | #include <linux/amba/pl022.h> |
32 | #include <linux/io.h> | 32 | #include <linux/io.h> |
33 | #include <linux/gfp.h> | 33 | #include <linux/gfp.h> |
34 | #include <linux/clkdev.h> | ||
34 | 35 | ||
35 | #include <asm/clkdev.h> | ||
36 | #include <asm/system.h> | 36 | #include <asm/system.h> |
37 | #include <asm/irq.h> | 37 | #include <asm/irq.h> |
38 | #include <asm/leds.h> | 38 | #include <asm/leds.h> |
@@ -46,7 +46,6 @@ | |||
46 | #include <asm/mach/irq.h> | 46 | #include <asm/mach/irq.h> |
47 | #include <asm/mach/time.h> | 47 | #include <asm/mach/time.h> |
48 | #include <asm/mach/map.h> | 48 | #include <asm/mach/map.h> |
49 | #include <mach/clkdev.h> | ||
50 | #include <mach/hardware.h> | 49 | #include <mach/hardware.h> |
51 | #include <mach/platform.h> | 50 | #include <mach/platform.h> |
52 | #include <plat/timer-sp.h> | 51 | #include <plat/timer-sp.h> |
diff --git a/arch/arm/mach-vexpress/ct-ca9x4.c b/arch/arm/mach-vexpress/ct-ca9x4.c index c2e405a9e025..26a02eb57571 100644 --- a/arch/arm/mach-vexpress/ct-ca9x4.c +++ b/arch/arm/mach-vexpress/ct-ca9x4.c | |||
@@ -8,8 +8,8 @@ | |||
8 | #include <linux/platform_device.h> | 8 | #include <linux/platform_device.h> |
9 | #include <linux/amba/bus.h> | 9 | #include <linux/amba/bus.h> |
10 | #include <linux/amba/clcd.h> | 10 | #include <linux/amba/clcd.h> |
11 | #include <linux/clkdev.h> | ||
11 | 12 | ||
12 | #include <asm/clkdev.h> | ||
13 | #include <asm/pgtable.h> | 13 | #include <asm/pgtable.h> |
14 | #include <asm/hardware/arm_timer.h> | 14 | #include <asm/hardware/arm_timer.h> |
15 | #include <asm/hardware/cache-l2x0.h> | 15 | #include <asm/hardware/cache-l2x0.h> |
@@ -18,7 +18,6 @@ | |||
18 | #include <asm/pmu.h> | 18 | #include <asm/pmu.h> |
19 | #include <asm/smp_twd.h> | 19 | #include <asm/smp_twd.h> |
20 | 20 | ||
21 | #include <mach/clkdev.h> | ||
22 | #include <mach/ct-ca9x4.h> | 21 | #include <mach/ct-ca9x4.h> |
23 | 22 | ||
24 | #include <plat/timer-sp.h> | 23 | #include <plat/timer-sp.h> |
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c index 7eaa232180a5..d374a78986e8 100644 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c | |||
@@ -11,15 +11,14 @@ | |||
11 | #include <linux/spinlock.h> | 11 | #include <linux/spinlock.h> |
12 | #include <linux/sysdev.h> | 12 | #include <linux/sysdev.h> |
13 | #include <linux/usb/isp1760.h> | 13 | #include <linux/usb/isp1760.h> |
14 | #include <linux/clkdev.h> | ||
14 | 15 | ||
15 | #include <asm/clkdev.h> | ||
16 | #include <asm/sizes.h> | 16 | #include <asm/sizes.h> |
17 | #include <asm/mach/flash.h> | 17 | #include <asm/mach/flash.h> |
18 | #include <asm/mach/map.h> | 18 | #include <asm/mach/map.h> |
19 | #include <asm/mach/time.h> | 19 | #include <asm/mach/time.h> |
20 | #include <asm/hardware/arm_timer.h> | 20 | #include <asm/hardware/arm_timer.h> |
21 | 21 | ||
22 | #include <mach/clkdev.h> | ||
23 | #include <mach/motherboard.h> | 22 | #include <mach/motherboard.h> |
24 | 23 | ||
25 | #include <plat/timer-sp.h> | 24 | #include <plat/timer-sp.h> |
diff --git a/arch/arm/mach-w90x900/clock.h b/arch/arm/mach-w90x900/clock.h index c56ddab3d912..b88a1b16b2e9 100644 --- a/arch/arm/mach-w90x900/clock.h +++ b/arch/arm/mach-w90x900/clock.h | |||
@@ -10,7 +10,7 @@ | |||
10 | * the Free Software Foundation; either version 2 of the License. | 10 | * the Free Software Foundation; either version 2 of the License. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <asm/clkdev.h> | 13 | #include <linux/clkdev.h> |
14 | 14 | ||
15 | void nuc900_clk_enable(struct clk *clk, int enable); | 15 | void nuc900_clk_enable(struct clk *clk, int enable); |
16 | void nuc900_subclk_enable(struct clk *clk, int enable); | 16 | void nuc900_subclk_enable(struct clk *clk, int enable); |
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig index 92c5bb7909f5..c9408434a855 100644 --- a/arch/arm/plat-omap/Kconfig +++ b/arch/arm/plat-omap/Kconfig | |||
@@ -11,13 +11,13 @@ choice | |||
11 | 11 | ||
12 | config ARCH_OMAP1 | 12 | config ARCH_OMAP1 |
13 | bool "TI OMAP1" | 13 | bool "TI OMAP1" |
14 | select COMMON_CLKDEV | 14 | select CLKDEV_LOOKUP |
15 | help | 15 | help |
16 | "Systems based on omap7xx, omap15xx or omap16xx" | 16 | "Systems based on omap7xx, omap15xx or omap16xx" |
17 | 17 | ||
18 | config ARCH_OMAP2PLUS | 18 | config ARCH_OMAP2PLUS |
19 | bool "TI OMAP2/3/4" | 19 | bool "TI OMAP2/3/4" |
20 | select COMMON_CLKDEV | 20 | select CLKDEV_LOOKUP |
21 | help | 21 | help |
22 | "Systems based on OMAP2, OMAP3 or OMAP4" | 22 | "Systems based on OMAP2, OMAP3 or OMAP4" |
23 | 23 | ||
diff --git a/arch/arm/plat-omap/include/plat/clkdev_omap.h b/arch/arm/plat-omap/include/plat/clkdev_omap.h index bb937f3fabed..4b2028ab4d2b 100644 --- a/arch/arm/plat-omap/include/plat/clkdev_omap.h +++ b/arch/arm/plat-omap/include/plat/clkdev_omap.h | |||
@@ -8,7 +8,7 @@ | |||
8 | #ifndef __ARCH_ARM_PLAT_OMAP_INCLUDE_PLAT_CLKDEV_OMAP_H | 8 | #ifndef __ARCH_ARM_PLAT_OMAP_INCLUDE_PLAT_CLKDEV_OMAP_H |
9 | #define __ARCH_ARM_PLAT_OMAP_INCLUDE_PLAT_CLKDEV_OMAP_H | 9 | #define __ARCH_ARM_PLAT_OMAP_INCLUDE_PLAT_CLKDEV_OMAP_H |
10 | 10 | ||
11 | #include <asm/clkdev.h> | 11 | #include <linux/clkdev.h> |
12 | 12 | ||
13 | struct omap_clk { | 13 | struct omap_clk { |
14 | u16 cpu; | 14 | u16 cpu; |
diff --git a/arch/arm/plat-spear/include/plat/clock.h b/arch/arm/plat-spear/include/plat/clock.h index 298bafc0a52f..2572260f990f 100644 --- a/arch/arm/plat-spear/include/plat/clock.h +++ b/arch/arm/plat-spear/include/plat/clock.h | |||
@@ -15,7 +15,7 @@ | |||
15 | #define __PLAT_CLOCK_H | 15 | #define __PLAT_CLOCK_H |
16 | 16 | ||
17 | #include <linux/list.h> | 17 | #include <linux/list.h> |
18 | #include <asm/clkdev.h> | 18 | #include <linux/clkdev.h> |
19 | #include <linux/types.h> | 19 | #include <linux/types.h> |
20 | 20 | ||
21 | /* clk structure flags */ | 21 | /* clk structure flags */ |
diff --git a/arch/arm/plat-stmp3xxx/clock.c b/arch/arm/plat-stmp3xxx/clock.c index e593a2a801c6..2e712e17ce72 100644 --- a/arch/arm/plat-stmp3xxx/clock.c +++ b/arch/arm/plat-stmp3xxx/clock.c | |||
@@ -25,9 +25,9 @@ | |||
25 | #include <linux/err.h> | 25 | #include <linux/err.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/io.h> | 27 | #include <linux/io.h> |
28 | #include <linux/clkdev.h> | ||
28 | 29 | ||
29 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
30 | #include <asm/clkdev.h> | ||
31 | #include <mach/platform.h> | 31 | #include <mach/platform.h> |
32 | #include <mach/regs-clkctrl.h> | 32 | #include <mach/regs-clkctrl.h> |
33 | 33 | ||
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 5c075f562eba..cfc510608039 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | config SUPERH | 1 | config SUPERH |
2 | def_bool y | 2 | def_bool y |
3 | select EMBEDDED | 3 | select EMBEDDED |
4 | select HAVE_CLK | 4 | select CLKDEV_LOOKUP |
5 | select HAVE_IDE if HAS_IOPORT | 5 | select HAVE_IDE if HAS_IOPORT |
6 | select HAVE_MEMBLOCK | 6 | select HAVE_MEMBLOCK |
7 | select HAVE_OPROFILE | 7 | select HAVE_OPROFILE |
diff --git a/arch/sh/boards/mach-highlander/setup.c b/arch/sh/boards/mach-highlander/setup.c index a5ecfbacaf36..87618c91d178 100644 --- a/arch/sh/boards/mach-highlander/setup.c +++ b/arch/sh/boards/mach-highlander/setup.c | |||
@@ -24,10 +24,10 @@ | |||
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/usb/r8a66597.h> | 25 | #include <linux/usb/r8a66597.h> |
26 | #include <linux/usb/m66592.h> | 26 | #include <linux/usb/m66592.h> |
27 | #include <linux/clkdev.h> | ||
27 | #include <net/ax88796.h> | 28 | #include <net/ax88796.h> |
28 | #include <asm/machvec.h> | 29 | #include <asm/machvec.h> |
29 | #include <mach/highlander.h> | 30 | #include <mach/highlander.h> |
30 | #include <asm/clkdev.h> | ||
31 | #include <asm/clock.h> | 31 | #include <asm/clock.h> |
32 | #include <asm/heartbeat.h> | 32 | #include <asm/heartbeat.h> |
33 | #include <asm/io.h> | 33 | #include <asm/io.h> |
diff --git a/arch/sh/include/asm/clkdev.h b/arch/sh/include/asm/clkdev.h index 5645f358128b..6ba91868201c 100644 --- a/arch/sh/include/asm/clkdev.h +++ b/arch/sh/include/asm/clkdev.h | |||
@@ -1,9 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * arch/sh/include/asm/clkdev.h | 2 | * Copyright (C) 2010 Paul Mundt <lethal@linux-sh.org> |
3 | * | ||
4 | * Cloned from arch/arm/include/asm/clkdev.h: | ||
5 | * | ||
6 | * Copyright (C) 2008 Russell King. | ||
7 | * | 3 | * |
8 | * This program is free software; you can redistribute it and/or modify | 4 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
@@ -11,25 +7,25 @@ | |||
11 | * | 7 | * |
12 | * Helper for the clk API to assist looking up a struct clk. | 8 | * Helper for the clk API to assist looking up a struct clk. |
13 | */ | 9 | */ |
14 | #ifndef __ASM_CLKDEV_H | ||
15 | #define __ASM_CLKDEV_H | ||
16 | 10 | ||
17 | struct clk; | 11 | #ifndef __CLKDEV__H_ |
12 | #define __CLKDEV__H_ | ||
18 | 13 | ||
19 | struct clk_lookup { | 14 | #include <linux/bootmem.h> |
20 | struct list_head node; | 15 | #include <linux/mm.h> |
21 | const char *dev_id; | 16 | #include <linux/slab.h> |
22 | const char *con_id; | ||
23 | struct clk *clk; | ||
24 | }; | ||
25 | 17 | ||
26 | struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id, | 18 | #include <asm/clock.h> |
27 | const char *dev_fmt, ...); | ||
28 | 19 | ||
29 | void clkdev_add(struct clk_lookup *cl); | 20 | static inline struct clk_lookup_alloc *__clkdev_alloc(size_t size) |
30 | void clkdev_drop(struct clk_lookup *cl); | 21 | { |
22 | if (!slab_is_available()) | ||
23 | return alloc_bootmem_low_pages(size); | ||
24 | else | ||
25 | return kzalloc(size, GFP_KERNEL); | ||
26 | } | ||
31 | 27 | ||
32 | void clkdev_add_table(struct clk_lookup *, size_t); | 28 | #define __clk_put(clk) |
33 | int clk_add_alias(const char *, const char *, char *, struct device *); | 29 | #define __clk_get(clk) ({ 1; }) |
34 | 30 | ||
35 | #endif | 31 | #endif /* __CLKDEV_H__ */ |
diff --git a/arch/sh/kernel/Makefile b/arch/sh/kernel/Makefile index 8eed6a485446..cf6522179523 100644 --- a/arch/sh/kernel/Makefile +++ b/arch/sh/kernel/Makefile | |||
@@ -11,7 +11,7 @@ endif | |||
11 | 11 | ||
12 | CFLAGS_REMOVE_return_address.o = -pg | 12 | CFLAGS_REMOVE_return_address.o = -pg |
13 | 13 | ||
14 | obj-y := clkdev.o debugtraps.o dma-nommu.o dumpstack.o \ | 14 | obj-y := debugtraps.o dma-nommu.o dumpstack.o \ |
15 | idle.o io.o irq.o irq_$(BITS).o kdebugfs.o \ | 15 | idle.o io.o irq.o irq_$(BITS).o kdebugfs.o \ |
16 | machvec.o nmi_debug.o process.o \ | 16 | machvec.o nmi_debug.o process.o \ |
17 | process_$(BITS).o ptrace.o ptrace_$(BITS).o \ | 17 | process_$(BITS).o ptrace.o ptrace_$(BITS).o \ |
diff --git a/arch/sh/kernel/clkdev.c b/arch/sh/kernel/clkdev.c deleted file mode 100644 index 1f800ef4a735..000000000000 --- a/arch/sh/kernel/clkdev.c +++ /dev/null | |||
@@ -1,171 +0,0 @@ | |||
1 | /* | ||
2 | * arch/sh/kernel/clkdev.c | ||
3 | * | ||
4 | * Cloned from arch/arm/common/clkdev.c: | ||
5 | * | ||
6 | * Copyright (C) 2008 Russell King. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | * | ||
12 | * Helper for the clk API to assist looking up a struct clk. | ||
13 | */ | ||
14 | #include <linux/module.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/device.h> | ||
17 | #include <linux/list.h> | ||
18 | #include <linux/errno.h> | ||
19 | #include <linux/err.h> | ||
20 | #include <linux/string.h> | ||
21 | #include <linux/mutex.h> | ||
22 | #include <linux/clk.h> | ||
23 | #include <linux/slab.h> | ||
24 | #include <linux/bootmem.h> | ||
25 | #include <linux/mm.h> | ||
26 | #include <asm/clock.h> | ||
27 | #include <asm/clkdev.h> | ||
28 | |||
29 | static LIST_HEAD(clocks); | ||
30 | static DEFINE_MUTEX(clocks_mutex); | ||
31 | |||
32 | /* | ||
33 | * Find the correct struct clk for the device and connection ID. | ||
34 | * We do slightly fuzzy matching here: | ||
35 | * An entry with a NULL ID is assumed to be a wildcard. | ||
36 | * If an entry has a device ID, it must match | ||
37 | * If an entry has a connection ID, it must match | ||
38 | * Then we take the most specific entry - with the following | ||
39 | * order of precedence: dev+con > dev only > con only. | ||
40 | */ | ||
41 | static struct clk *clk_find(const char *dev_id, const char *con_id) | ||
42 | { | ||
43 | struct clk_lookup *p; | ||
44 | struct clk *clk = NULL; | ||
45 | int match, best = 0; | ||
46 | |||
47 | list_for_each_entry(p, &clocks, node) { | ||
48 | match = 0; | ||
49 | if (p->dev_id) { | ||
50 | if (!dev_id || strcmp(p->dev_id, dev_id)) | ||
51 | continue; | ||
52 | match += 2; | ||
53 | } | ||
54 | if (p->con_id) { | ||
55 | if (!con_id || strcmp(p->con_id, con_id)) | ||
56 | continue; | ||
57 | match += 1; | ||
58 | } | ||
59 | if (match == 0) | ||
60 | continue; | ||
61 | |||
62 | if (match > best) { | ||
63 | clk = p->clk; | ||
64 | best = match; | ||
65 | } | ||
66 | } | ||
67 | return clk; | ||
68 | } | ||
69 | |||
70 | struct clk *clk_get_sys(const char *dev_id, const char *con_id) | ||
71 | { | ||
72 | struct clk *clk; | ||
73 | |||
74 | mutex_lock(&clocks_mutex); | ||
75 | clk = clk_find(dev_id, con_id); | ||
76 | mutex_unlock(&clocks_mutex); | ||
77 | |||
78 | return clk ? clk : ERR_PTR(-ENOENT); | ||
79 | } | ||
80 | EXPORT_SYMBOL(clk_get_sys); | ||
81 | |||
82 | void clkdev_add(struct clk_lookup *cl) | ||
83 | { | ||
84 | mutex_lock(&clocks_mutex); | ||
85 | list_add_tail(&cl->node, &clocks); | ||
86 | mutex_unlock(&clocks_mutex); | ||
87 | } | ||
88 | EXPORT_SYMBOL(clkdev_add); | ||
89 | |||
90 | void __init clkdev_add_table(struct clk_lookup *cl, size_t num) | ||
91 | { | ||
92 | mutex_lock(&clocks_mutex); | ||
93 | while (num--) { | ||
94 | list_add_tail(&cl->node, &clocks); | ||
95 | cl++; | ||
96 | } | ||
97 | mutex_unlock(&clocks_mutex); | ||
98 | } | ||
99 | |||
100 | #define MAX_DEV_ID 20 | ||
101 | #define MAX_CON_ID 16 | ||
102 | |||
103 | struct clk_lookup_alloc { | ||
104 | struct clk_lookup cl; | ||
105 | char dev_id[MAX_DEV_ID]; | ||
106 | char con_id[MAX_CON_ID]; | ||
107 | }; | ||
108 | |||
109 | struct clk_lookup * __init_refok | ||
110 | clkdev_alloc(struct clk *clk, const char *con_id, const char *dev_fmt, ...) | ||
111 | { | ||
112 | struct clk_lookup_alloc *cla; | ||
113 | |||
114 | if (!slab_is_available()) | ||
115 | cla = alloc_bootmem_low_pages(sizeof(*cla)); | ||
116 | else | ||
117 | cla = kzalloc(sizeof(*cla), GFP_KERNEL); | ||
118 | |||
119 | if (!cla) | ||
120 | return NULL; | ||
121 | |||
122 | cla->cl.clk = clk; | ||
123 | if (con_id) { | ||
124 | strlcpy(cla->con_id, con_id, sizeof(cla->con_id)); | ||
125 | cla->cl.con_id = cla->con_id; | ||
126 | } | ||
127 | |||
128 | if (dev_fmt) { | ||
129 | va_list ap; | ||
130 | |||
131 | va_start(ap, dev_fmt); | ||
132 | vscnprintf(cla->dev_id, sizeof(cla->dev_id), dev_fmt, ap); | ||
133 | cla->cl.dev_id = cla->dev_id; | ||
134 | va_end(ap); | ||
135 | } | ||
136 | |||
137 | return &cla->cl; | ||
138 | } | ||
139 | EXPORT_SYMBOL(clkdev_alloc); | ||
140 | |||
141 | int clk_add_alias(const char *alias, const char *alias_dev_name, char *id, | ||
142 | struct device *dev) | ||
143 | { | ||
144 | struct clk *r = clk_get(dev, id); | ||
145 | struct clk_lookup *l; | ||
146 | |||
147 | if (IS_ERR(r)) | ||
148 | return PTR_ERR(r); | ||
149 | |||
150 | l = clkdev_alloc(r, alias, alias_dev_name); | ||
151 | clk_put(r); | ||
152 | if (!l) | ||
153 | return -ENODEV; | ||
154 | clkdev_add(l); | ||
155 | return 0; | ||
156 | } | ||
157 | EXPORT_SYMBOL(clk_add_alias); | ||
158 | |||
159 | /* | ||
160 | * clkdev_drop - remove a clock dynamically allocated | ||
161 | */ | ||
162 | void clkdev_drop(struct clk_lookup *cl) | ||
163 | { | ||
164 | struct clk_lookup_alloc *cla = container_of(cl, struct clk_lookup_alloc, cl); | ||
165 | |||
166 | mutex_lock(&clocks_mutex); | ||
167 | list_del(&cl->node); | ||
168 | mutex_unlock(&clocks_mutex); | ||
169 | kfree(cla); | ||
170 | } | ||
171 | EXPORT_SYMBOL(clkdev_drop); | ||
diff --git a/arch/sh/kernel/cpu/clock-cpg.c b/arch/sh/kernel/cpu/clock-cpg.c index e2f63d68da51..dd0e0f211359 100644 --- a/arch/sh/kernel/cpu/clock-cpg.c +++ b/arch/sh/kernel/cpu/clock-cpg.c | |||
@@ -2,7 +2,7 @@ | |||
2 | #include <linux/compiler.h> | 2 | #include <linux/compiler.h> |
3 | #include <linux/slab.h> | 3 | #include <linux/slab.h> |
4 | #include <linux/io.h> | 4 | #include <linux/io.h> |
5 | #include <asm/clkdev.h> | 5 | #include <linux/clkdev.h> |
6 | #include <asm/clock.h> | 6 | #include <asm/clock.h> |
7 | 7 | ||
8 | static struct clk master_clk = { | 8 | static struct clk master_clk = { |
diff --git a/arch/sh/kernel/cpu/clock.c b/arch/sh/kernel/cpu/clock.c index 50f887dda565..4187cf4fe185 100644 --- a/arch/sh/kernel/cpu/clock.c +++ b/arch/sh/kernel/cpu/clock.c | |||
@@ -48,20 +48,4 @@ int __init clk_init(void) | |||
48 | return ret; | 48 | return ret; |
49 | } | 49 | } |
50 | 50 | ||
51 | /* | ||
52 | * Returns a clock. Note that we first try to use device id on the bus | ||
53 | * and clock name. If this fails, we try to use clock name only. | ||
54 | */ | ||
55 | struct clk *clk_get(struct device *dev, const char *con_id) | ||
56 | { | ||
57 | const char *dev_id = dev ? dev_name(dev) : NULL; | ||
58 | |||
59 | return clk_get_sys(dev_id, con_id); | ||
60 | } | ||
61 | EXPORT_SYMBOL_GPL(clk_get); | ||
62 | |||
63 | void clk_put(struct clk *clk) | ||
64 | { | ||
65 | } | ||
66 | EXPORT_SYMBOL_GPL(clk_put); | ||
67 | 51 | ||
diff --git a/arch/sh/kernel/cpu/sh4/clock-sh4-202.c b/arch/sh/kernel/cpu/sh4/clock-sh4-202.c index 4eabc68cd753..6c1492b8431a 100644 --- a/arch/sh/kernel/cpu/sh4/clock-sh4-202.c +++ b/arch/sh/kernel/cpu/sh4/clock-sh4-202.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/err.h> | 14 | #include <linux/err.h> |
15 | #include <linux/io.h> | 15 | #include <linux/io.h> |
16 | #include <asm/clkdev.h> | 16 | #include <linux/clkdev.h> |
17 | #include <asm/clock.h> | 17 | #include <asm/clock.h> |
18 | #include <asm/freq.h> | 18 | #include <asm/freq.h> |
19 | 19 | ||
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7343.c b/arch/sh/kernel/cpu/sh4a/clock-sh7343.c index 71291ae201b9..93c646072c1b 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7343.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7343.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <asm/clkdev.h> | 24 | #include <linux/clkdev.h> |
25 | #include <asm/clock.h> | 25 | #include <asm/clock.h> |
26 | 26 | ||
27 | /* SH7343 registers */ | 27 | /* SH7343 registers */ |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7366.c b/arch/sh/kernel/cpu/sh4a/clock-sh7366.c index 7ce5bbcd4084..049dc0628ccc 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7366.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7366.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <asm/clkdev.h> | 24 | #include <linux/clkdev.h> |
25 | #include <asm/clock.h> | 25 | #include <asm/clock.h> |
26 | 26 | ||
27 | /* SH7366 registers */ | 27 | /* SH7366 registers */ |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7722.c b/arch/sh/kernel/cpu/sh4a/clock-sh7722.c index 2030f3d9fac7..9d23a36f0647 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7722.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7722.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <asm/clkdev.h> | 24 | #include <linux/clkdev.h> |
25 | #include <asm/clock.h> | 25 | #include <asm/clock.h> |
26 | #include <asm/hwblk.h> | 26 | #include <asm/hwblk.h> |
27 | #include <cpu/sh7722.h> | 27 | #include <cpu/sh7722.h> |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7723.c b/arch/sh/kernel/cpu/sh4a/clock-sh7723.c index d3938f0d3702..55493cd5bd8f 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7723.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7723.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <linux/clk.h> | 24 | #include <linux/clk.h> |
25 | #include <asm/clkdev.h> | 25 | #include <linux/clkdev.h> |
26 | #include <asm/clock.h> | 26 | #include <asm/clock.h> |
27 | #include <asm/hwblk.h> | 27 | #include <asm/hwblk.h> |
28 | #include <cpu/sh7723.h> | 28 | #include <cpu/sh7723.h> |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7724.c b/arch/sh/kernel/cpu/sh4a/clock-sh7724.c index 2d9700c6b53a..527936bb3ce0 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7724.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7724.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <linux/clk.h> | 24 | #include <linux/clk.h> |
25 | #include <asm/clkdev.h> | 25 | #include <linux/clkdev.h> |
26 | #include <asm/clock.h> | 26 | #include <asm/clock.h> |
27 | #include <asm/hwblk.h> | 27 | #include <asm/hwblk.h> |
28 | #include <cpu/sh7724.h> | 28 | #include <cpu/sh7724.h> |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7757.c b/arch/sh/kernel/cpu/sh4a/clock-sh7757.c index ce39a2ae8c6c..e073e3eb4c3d 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7757.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7757.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <asm/clkdev.h> | 15 | #include <linux/clkdev.h> |
16 | #include <asm/clock.h> | 16 | #include <asm/clock.h> |
17 | #include <asm/freq.h> | 17 | #include <asm/freq.h> |
18 | 18 | ||
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7763.c b/arch/sh/kernel/cpu/sh4a/clock-sh7763.c index 1f1df48008cd..599630fc4d3b 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7763.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7763.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
15 | #include <linux/io.h> | 15 | #include <linux/io.h> |
16 | #include <asm/clkdev.h> | 16 | #include <linux/clkdev.h> |
17 | #include <asm/clock.h> | 17 | #include <asm/clock.h> |
18 | #include <asm/freq.h> | 18 | #include <asm/freq.h> |
19 | #include <asm/io.h> | 19 | #include <asm/io.h> |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7780.c b/arch/sh/kernel/cpu/sh4a/clock-sh7780.c index 62d706350060..8894926479a6 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7780.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7780.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <asm/clkdev.h> | 15 | #include <linux/clkdev.h> |
16 | #include <asm/clock.h> | 16 | #include <asm/clock.h> |
17 | #include <asm/freq.h> | 17 | #include <asm/freq.h> |
18 | #include <asm/io.h> | 18 | #include <asm/io.h> |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7785.c b/arch/sh/kernel/cpu/sh4a/clock-sh7785.c index c3e458aaa2b7..2d960247f3eb 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7785.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7785.c | |||
@@ -14,7 +14,7 @@ | |||
14 | #include <linux/clk.h> | 14 | #include <linux/clk.h> |
15 | #include <linux/io.h> | 15 | #include <linux/io.h> |
16 | #include <linux/cpufreq.h> | 16 | #include <linux/cpufreq.h> |
17 | #include <asm/clkdev.h> | 17 | #include <linux/clkdev.h> |
18 | #include <asm/clock.h> | 18 | #include <asm/clock.h> |
19 | #include <asm/freq.h> | 19 | #include <asm/freq.h> |
20 | #include <cpu/sh7785.h> | 20 | #include <cpu/sh7785.h> |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7786.c b/arch/sh/kernel/cpu/sh4a/clock-sh7786.c index 597c9fbe49c6..42e403be9076 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7786.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7786.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/clk.h> | 14 | #include <linux/clk.h> |
15 | #include <linux/io.h> | 15 | #include <linux/io.h> |
16 | #include <asm/clkdev.h> | 16 | #include <linux/clkdev.h> |
17 | #include <asm/clock.h> | 17 | #include <asm/clock.h> |
18 | #include <asm/freq.h> | 18 | #include <asm/freq.h> |
19 | 19 | ||
diff --git a/arch/sh/kernel/cpu/sh4a/clock-shx3.c b/arch/sh/kernel/cpu/sh4a/clock-shx3.c index 4f70df6b6169..1afdb93b8ccb 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-shx3.c +++ b/arch/sh/kernel/cpu/sh4a/clock-shx3.c | |||
@@ -14,7 +14,7 @@ | |||
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
17 | #include <asm/clkdev.h> | 17 | #include <linux/clkdev.h> |
18 | #include <asm/clock.h> | 18 | #include <asm/clock.h> |
19 | #include <asm/freq.h> | 19 | #include <asm/freq.h> |
20 | 20 | ||