forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
818 B
34 lines
818 B
// SPDX-License-Identifier: GPL-2.0 |
|
|
|
#include <linux/kernel.h> |
|
#include <linux/export.h> |
|
#include <linux/property.h> |
|
|
|
#include <asm/mpc5xxx.h> |
|
|
|
/** |
|
* mpc5xxx_fwnode_get_bus_frequency - Find the bus frequency for a firmware node |
|
* @fwnode: firmware node |
|
* |
|
* Returns bus frequency (IPS on MPC512x, IPB on MPC52xx), |
|
* or 0 if the bus frequency cannot be found. |
|
*/ |
|
unsigned long mpc5xxx_fwnode_get_bus_frequency(struct fwnode_handle *fwnode) |
|
{ |
|
struct fwnode_handle *parent; |
|
u32 bus_freq; |
|
int ret; |
|
|
|
ret = fwnode_property_read_u32(fwnode, "bus-frequency", &bus_freq); |
|
if (!ret) |
|
return bus_freq; |
|
|
|
fwnode_for_each_parent_node(fwnode, parent) { |
|
ret = fwnode_property_read_u32(parent, "bus-frequency", &bus_freq); |
|
if (!ret) |
|
return bus_freq; |
|
} |
|
|
|
return 0; |
|
} |
|
EXPORT_SYMBOL(mpc5xxx_fwnode_get_bus_frequency);
|
|
|