diff options
author | Gregory CLEMENT <gregory.clement@bootlin.com> | 2019-07-10 15:43:42 +0200 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2019-08-08 09:08:09 -0700 |
commit | 33c0259092c805dc1cee9dd7bf66a955124702d9 (patch) | |
tree | f8daa17f929ecd6bb0f382c62816324cadbdda7d /drivers/clk/mvebu/armada_ap_cp_helper.c | |
parent | 096f4597406bc86cd93947eb0e96a8188f934ebf (diff) |
clk: mvebu: add helper file for Armada AP and CP clocks
Clock drivers for Armada AP and Armada CP use the same function to
generate unique clock name. A third drivers is coming with the same
need, so it's time to move this function in a common file.
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Link: https://lkml.kernel.org/r/20190710134346.30239-3-gregory.clement@bootlin.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Diffstat (limited to 'drivers/clk/mvebu/armada_ap_cp_helper.c')
-rw-r--r-- | drivers/clk/mvebu/armada_ap_cp_helper.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/clk/mvebu/armada_ap_cp_helper.c b/drivers/clk/mvebu/armada_ap_cp_helper.c new file mode 100644 index 000000000000..6a930f697ee5 --- /dev/null +++ b/drivers/clk/mvebu/armada_ap_cp_helper.c @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Marvell Armada AP and CP110 helper + * + * Copyright (C) 2018 Marvell + * + * Gregory Clement <gregory.clement@bootlin.com> + * + */ + +#include "armada_ap_cp_helper.h" +#include <linux/device.h> +#include <linux/of.h> +#include <linux/of_address.h> + +char *ap_cp_unique_name(struct device *dev, struct device_node *np, + const char *name) +{ + const __be32 *reg; + u64 addr; + + /* Do not create a name if there is no clock */ + if (!name) + return NULL; + + reg = of_get_property(np, "reg", NULL); + addr = of_translate_address(np, reg); + return devm_kasprintf(dev, GFP_KERNEL, "%llx-%s", + (unsigned long long)addr, name); +} |