aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev/mpc5xxx_clocks.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2009-06-17 02:30:22 -0400
committerGrant Likely <grant.likely@secretlab.ca>2009-06-17 02:30:22 -0400
commit87c441e54dfcf9f45593ecaf68e7e18ea53d5e13 (patch)
tree6a986caab77412a90ffe8c5d8788bc1216b10ed8 /arch/powerpc/sysdev/mpc5xxx_clocks.c
parentc155ee10c212254e9cdfe7b3eab4e8c13990c231 (diff)
powerpc/5xxx: Add common mpc5xxx_get_bus_frequency() function
So far, MPC512x used mpc512x_find_ips_freq() to get the bus frequency, while MPC52xx used mpc52xx_find_ipb_freq(). Despite the different clock names (IPS vs. IPB) the code was identical. Use common code for both processor families. Signed-off-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'arch/powerpc/sysdev/mpc5xxx_clocks.c')
-rw-r--r--arch/powerpc/sysdev/mpc5xxx_clocks.c33
1 files changed, 33 insertions, 0 deletions
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
12unsigned int
13mpc5xxx_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}
33EXPORT_SYMBOL(mpc5xxx_get_bus_frequency);