diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-06-17 21:22:08 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-06-17 21:22:08 -0400 |
commit | b71a107c66ad952c9d35ec046a803efc89a80556 (patch) | |
tree | eb1f77af4f14974ba40a413d7679b3a451295a3d /arch/powerpc | |
parent | 4b337c5f245b6587ba844ac7bb13c313a2912f7b (diff) | |
parent | e7c5a4f292e0d1f4ba9a3a94b2c8e8b71e35b25a (diff) |
Merge commit 'gcl/merge' into next
Manual merge of:
drivers/net/fec_mpc52xx.c
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/boot/dts/pcm030.dts | 26 | ||||
-rw-r--r-- | arch/powerpc/include/asm/mpc52xx.h | 2 | ||||
-rw-r--r-- | arch/powerpc/include/asm/mpc5xxx.h (renamed from arch/powerpc/include/asm/mpc512x.h) | 10 | ||||
-rw-r--r-- | arch/powerpc/platforms/512x/clock.c | 10 | ||||
-rw-r--r-- | arch/powerpc/platforms/512x/mpc512x.h | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/512x/mpc512x_shared.c | 23 | ||||
-rw-r--r-- | arch/powerpc/platforms/52xx/mpc52xx_common.c | 32 | ||||
-rw-r--r-- | arch/powerpc/sysdev/Makefile | 3 | ||||
-rw-r--r-- | arch/powerpc/sysdev/mpc5xxx_clocks.c | 33 |
9 files changed, 52 insertions, 88 deletions
diff --git a/arch/powerpc/boot/dts/pcm030.dts b/arch/powerpc/boot/dts/pcm030.dts index 895834713894..30bfdc04c6df 100644 --- a/arch/powerpc/boot/dts/pcm030.dts +++ b/arch/powerpc/boot/dts/pcm030.dts | |||
@@ -258,34 +258,16 @@ | |||
258 | compatible = "nxp,pcf8563"; | 258 | compatible = "nxp,pcf8563"; |
259 | reg = <0x51>; | 259 | reg = <0x51>; |
260 | }; | 260 | }; |
261 | /* FIXME: EEPROM */ | 261 | eeprom@52 { |
262 | compatible = "catalyst,24c32"; | ||
263 | reg = <0x52>; | ||
264 | }; | ||
262 | }; | 265 | }; |
263 | 266 | ||
264 | sram@8000 { | 267 | sram@8000 { |
265 | compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; | 268 | compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; |
266 | reg = <0x8000 0x4000>; | 269 | reg = <0x8000 0x4000>; |
267 | }; | 270 | }; |
268 | |||
269 | /* This is only an example device to show the usage of gpios. It maps all available | ||
270 | * gpios to the "gpio-provider" device. | ||
271 | */ | ||
272 | gpio { | ||
273 | compatible = "gpio-provider"; | ||
274 | |||
275 | /* mpc52xx exp.con patchfield */ | ||
276 | gpios = <&gpio_wkup 0 0 /* GPIO_WKUP_7 11d jp13-3 */ | ||
277 | &gpio_wkup 1 0 /* GPIO_WKUP_6 14c */ | ||
278 | &gpio_wkup 6 0 /* PSC2_4 43c x5-11 */ | ||
279 | &gpio_simple 2 0 /* IRDA_1 24c x7-6 set GPS_PORT_CONFIG[IRDA] = 0 */ | ||
280 | &gpio_simple 3 0 /* IRDA_0 x8-5 set GPS_PORT_CONFIG[IRDA] = 0 */ | ||
281 | &gpt2 0 0 /* timer2 12d x4-4 */ | ||
282 | &gpt3 0 0 /* timer3 13d x6-4 */ | ||
283 | &gpt4 0 0 /* timer4 61c x2-16 */ | ||
284 | &gpt5 0 0 /* timer5 44c x7-11 */ | ||
285 | &gpt6 0 0 /* timer6 60c x8-15 */ | ||
286 | &gpt7 0 0 /* timer7 36a x17-9 */ | ||
287 | >; | ||
288 | }; | ||
289 | }; | 271 | }; |
290 | 272 | ||
291 | pci@f0000d00 { | 273 | pci@f0000d00 { |
diff --git a/arch/powerpc/include/asm/mpc52xx.h b/arch/powerpc/include/asm/mpc52xx.h index 52e049cd9e68..1b4f697abbdd 100644 --- a/arch/powerpc/include/asm/mpc52xx.h +++ b/arch/powerpc/include/asm/mpc52xx.h | |||
@@ -16,6 +16,7 @@ | |||
16 | #ifndef __ASSEMBLY__ | 16 | #ifndef __ASSEMBLY__ |
17 | #include <asm/types.h> | 17 | #include <asm/types.h> |
18 | #include <asm/prom.h> | 18 | #include <asm/prom.h> |
19 | #include <asm/mpc5xxx.h> | ||
19 | #endif /* __ASSEMBLY__ */ | 20 | #endif /* __ASSEMBLY__ */ |
20 | 21 | ||
21 | #include <linux/suspend.h> | 22 | #include <linux/suspend.h> |
@@ -268,7 +269,6 @@ struct mpc52xx_intr { | |||
268 | #ifndef __ASSEMBLY__ | 269 | #ifndef __ASSEMBLY__ |
269 | 270 | ||
270 | /* mpc52xx_common.c */ | 271 | /* mpc52xx_common.c */ |
271 | extern unsigned int mpc52xx_find_ipb_freq(struct device_node *node); | ||
272 | extern void mpc5200_setup_xlb_arbiter(void); | 272 | extern void mpc5200_setup_xlb_arbiter(void); |
273 | extern void mpc52xx_declare_of_platform_devices(void); | 273 | extern void mpc52xx_declare_of_platform_devices(void); |
274 | extern void mpc52xx_map_common_devices(void); | 274 | extern void mpc52xx_map_common_devices(void); |
diff --git a/arch/powerpc/include/asm/mpc512x.h b/arch/powerpc/include/asm/mpc5xxx.h index c48a1658eeac..5ce9c5fa434a 100644 --- a/arch/powerpc/include/asm/mpc512x.h +++ b/arch/powerpc/include/asm/mpc5xxx.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * Author: John Rigby, <jrigby@freescale.com>, Friday Apr 13 2007 | 4 | * Author: John Rigby, <jrigby@freescale.com>, Friday Apr 13 2007 |
5 | * | 5 | * |
6 | * Description: | 6 | * Description: |
7 | * MPC5121 Prototypes and definitions | 7 | * MPC5xxx Prototypes and definitions |
8 | * | 8 | * |
9 | * This is free software; you can redistribute it and/or modify it | 9 | * This is free software; you can redistribute it and/or modify it |
10 | * under the terms of the GNU General Public License as published by | 10 | * under the terms of the GNU General Public License as published by |
@@ -13,10 +13,10 @@ | |||
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #ifndef __ASM_POWERPC_MPC512x_H__ | 16 | #ifndef __ASM_POWERPC_MPC5xxx_H__ |
17 | #define __ASM_POWERPC_MPC512x_H__ | 17 | #define __ASM_POWERPC_MPC5xxx_H__ |
18 | 18 | ||
19 | extern unsigned long mpc512x_find_ips_freq(struct device_node *node); | 19 | extern unsigned long mpc5xxx_get_bus_frequency(struct device_node *node); |
20 | 20 | ||
21 | #endif /* __ASM_POWERPC_MPC512x_H__ */ | 21 | #endif /* __ASM_POWERPC_MPC5xxx_H__ */ |
22 | 22 | ||
diff --git a/arch/powerpc/platforms/512x/clock.c b/arch/powerpc/platforms/512x/clock.c index 1bcff94eb924..84544d072043 100644 --- a/arch/powerpc/platforms/512x/clock.c +++ b/arch/powerpc/platforms/512x/clock.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | 25 | ||
26 | #include <linux/of_platform.h> | 26 | #include <linux/of_platform.h> |
27 | #include <asm/mpc512x.h> | 27 | #include <asm/mpc5xxx.h> |
28 | #include <asm/clk_interface.h> | 28 | #include <asm/clk_interface.h> |
29 | 29 | ||
30 | #undef CLK_DEBUG | 30 | #undef CLK_DEBUG |
@@ -83,13 +83,13 @@ static void dump_clocks(void) | |||
83 | mutex_lock(&clocks_mutex); | 83 | mutex_lock(&clocks_mutex); |
84 | printk(KERN_INFO "CLOCKS:\n"); | 84 | printk(KERN_INFO "CLOCKS:\n"); |
85 | list_for_each_entry(p, &clocks, node) { | 85 | list_for_each_entry(p, &clocks, node) { |
86 | printk(KERN_INFO " %s %ld", p->name, p->rate); | 86 | pr_info(" %s=%ld", p->name, p->rate); |
87 | if (p->parent) | 87 | if (p->parent) |
88 | printk(KERN_INFO " %s %ld", p->parent->name, | 88 | pr_cont(" %s=%ld", p->parent->name, |
89 | p->parent->rate); | 89 | p->parent->rate); |
90 | if (p->flags & CLK_HAS_CTRL) | 90 | if (p->flags & CLK_HAS_CTRL) |
91 | printk(KERN_INFO " reg/bit %d/%d", p->reg, p->bit); | 91 | pr_cont(" reg/bit=%d/%d", p->reg, p->bit); |
92 | printk("\n"); | 92 | pr_cont("\n"); |
93 | } | 93 | } |
94 | mutex_unlock(&clocks_mutex); | 94 | mutex_unlock(&clocks_mutex); |
95 | } | 95 | } |
diff --git a/arch/powerpc/platforms/512x/mpc512x.h b/arch/powerpc/platforms/512x/mpc512x.h index 9c03693cb009..22a5352407e0 100644 --- a/arch/powerpc/platforms/512x/mpc512x.h +++ b/arch/powerpc/platforms/512x/mpc512x.h | |||
@@ -11,7 +11,6 @@ | |||
11 | 11 | ||
12 | #ifndef __MPC512X_H__ | 12 | #ifndef __MPC512X_H__ |
13 | #define __MPC512X_H__ | 13 | #define __MPC512X_H__ |
14 | extern unsigned long mpc512x_find_ips_freq(struct device_node *node); | ||
15 | extern void __init mpc512x_init_IRQ(void); | 14 | extern void __init mpc512x_init_IRQ(void); |
16 | void __init mpc512x_declare_of_platform_devices(void); | 15 | void __init mpc512x_declare_of_platform_devices(void); |
17 | #endif /* __MPC512X_H__ */ | 16 | #endif /* __MPC512X_H__ */ |
diff --git a/arch/powerpc/platforms/512x/mpc512x_shared.c b/arch/powerpc/platforms/512x/mpc512x_shared.c index d8cd579f3191..434d683df5a0 100644 --- a/arch/powerpc/platforms/512x/mpc512x_shared.c +++ b/arch/powerpc/platforms/512x/mpc512x_shared.c | |||
@@ -24,29 +24,6 @@ | |||
24 | 24 | ||
25 | #include "mpc512x.h" | 25 | #include "mpc512x.h" |
26 | 26 | ||
27 | unsigned long | ||
28 | mpc512x_find_ips_freq(struct device_node *node) | ||
29 | { | ||
30 | struct device_node *np; | ||
31 | const unsigned int *p_ips_freq = NULL; | ||
32 | |||
33 | of_node_get(node); | ||
34 | while (node) { | ||
35 | p_ips_freq = of_get_property(node, "bus-frequency", NULL); | ||
36 | if (p_ips_freq) | ||
37 | break; | ||
38 | |||
39 | np = of_get_parent(node); | ||
40 | of_node_put(node); | ||
41 | node = np; | ||
42 | } | ||
43 | if (node) | ||
44 | of_node_put(node); | ||
45 | |||
46 | return p_ips_freq ? *p_ips_freq : 0; | ||
47 | } | ||
48 | EXPORT_SYMBOL(mpc512x_find_ips_freq); | ||
49 | |||
50 | void __init mpc512x_init_IRQ(void) | 27 | void __init mpc512x_init_IRQ(void) |
51 | { | 28 | { |
52 | struct device_node *np; | 29 | struct device_node *np; |
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c index 8e3dd5a0f228..a46bad0c2339 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_common.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c | |||
@@ -47,36 +47,6 @@ static DEFINE_SPINLOCK(mpc52xx_lock); | |||
47 | static struct mpc52xx_gpt __iomem *mpc52xx_wdt; | 47 | static struct mpc52xx_gpt __iomem *mpc52xx_wdt; |
48 | static struct mpc52xx_cdm __iomem *mpc52xx_cdm; | 48 | static struct mpc52xx_cdm __iomem *mpc52xx_cdm; |
49 | 49 | ||
50 | /** | ||
51 | * mpc52xx_find_ipb_freq - Find the IPB bus frequency for a device | ||
52 | * @node: device node | ||
53 | * | ||
54 | * Returns IPB bus frequency, or 0 if the bus frequency cannot be found. | ||
55 | */ | ||
56 | unsigned int | ||
57 | mpc52xx_find_ipb_freq(struct device_node *node) | ||
58 | { | ||
59 | struct device_node *np; | ||
60 | const unsigned int *p_ipb_freq = NULL; | ||
61 | |||
62 | of_node_get(node); | ||
63 | while (node) { | ||
64 | p_ipb_freq = of_get_property(node, "bus-frequency", NULL); | ||
65 | if (p_ipb_freq) | ||
66 | break; | ||
67 | |||
68 | np = of_get_parent(node); | ||
69 | of_node_put(node); | ||
70 | node = np; | ||
71 | } | ||
72 | if (node) | ||
73 | of_node_put(node); | ||
74 | |||
75 | return p_ipb_freq ? *p_ipb_freq : 0; | ||
76 | } | ||
77 | EXPORT_SYMBOL(mpc52xx_find_ipb_freq); | ||
78 | |||
79 | |||
80 | /* | 50 | /* |
81 | * Configure the XLB arbiter settings to match what Linux expects. | 51 | * Configure the XLB arbiter settings to match what Linux expects. |
82 | */ | 52 | */ |
@@ -221,7 +191,7 @@ unsigned int mpc52xx_get_xtal_freq(struct device_node *node) | |||
221 | if (!mpc52xx_cdm) | 191 | if (!mpc52xx_cdm) |
222 | return 0; | 192 | return 0; |
223 | 193 | ||
224 | freq = mpc52xx_find_ipb_freq(node); | 194 | freq = mpc5xxx_get_bus_frequency(node); |
225 | if (!freq) | 195 | if (!freq) |
226 | return 0; | 196 | return 0; |
227 | 197 | ||
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile index d073bfdd222a..9d4b17462f13 100644 --- a/arch/powerpc/sysdev/Makefile +++ b/arch/powerpc/sysdev/Makefile | |||
@@ -50,6 +50,9 @@ obj-$(CONFIG_PPC_DCR) += dcr.o | |||
50 | obj-$(CONFIG_8xx) += mpc8xx_pic.o cpm1.o | 50 | obj-$(CONFIG_8xx) += mpc8xx_pic.o cpm1.o |
51 | obj-$(CONFIG_UCODE_PATCH) += micropatch.o | 51 | obj-$(CONFIG_UCODE_PATCH) += micropatch.o |
52 | 52 | ||
53 | obj-$(CONFIG_PPC_MPC512x) += mpc5xxx_clocks.o | ||
54 | obj-$(CONFIG_PPC_MPC52xx) += mpc5xxx_clocks.o | ||
55 | |||
53 | ifeq ($(CONFIG_SUSPEND),y) | 56 | ifeq ($(CONFIG_SUSPEND),y) |
54 | obj-$(CONFIG_6xx) += 6xx-suspend.o | 57 | obj-$(CONFIG_6xx) += 6xx-suspend.o |
55 | endif | 58 | endif |
diff --git a/arch/powerpc/sysdev/mpc5xxx_clocks.c b/arch/powerpc/sysdev/mpc5xxx_clocks.c new file mode 100644 index 000000000000..34e12f9995fe --- /dev/null +++ b/arch/powerpc/sysdev/mpc5xxx_clocks.c | |||
@@ -0,0 +1,33 @@ | |||
1 | /** | ||
2 | * mpc5xxx_get_bus_frequency - Find the bus frequency for a device | ||
3 | * @node: device node | ||
4 | * | ||
5 | * Returns bus frequency (IPS on MPC512x, IPB on MPC52xx), | ||
6 | * or 0 if the bus frequency cannot be found. | ||
7 | */ | ||
8 | |||
9 | #include <linux/kernel.h> | ||
10 | #include <linux/of_platform.h> | ||
11 | |||
12 | unsigned int | ||
13 | mpc5xxx_get_bus_frequency(struct device_node *node) | ||
14 | { | ||
15 | struct device_node *np; | ||
16 | const unsigned int *p_bus_freq = NULL; | ||
17 | |||
18 | of_node_get(node); | ||
19 | while (node) { | ||
20 | p_bus_freq = of_get_property(node, "bus-frequency", NULL); | ||
21 | if (p_bus_freq) | ||
22 | break; | ||
23 | |||
24 | np = of_get_parent(node); | ||
25 | of_node_put(node); | ||
26 | node = np; | ||
27 | } | ||
28 | if (node) | ||
29 | of_node_put(node); | ||
30 | |||
31 | return p_bus_freq ? *p_bus_freq : 0; | ||
32 | } | ||
33 | EXPORT_SYMBOL(mpc5xxx_get_bus_frequency); | ||