diff options
Diffstat (limited to 'drivers/clk/clk-highbank.c')
| -rw-r--r-- | drivers/clk/clk-highbank.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/clk/clk-highbank.c b/drivers/clk/clk-highbank.c index 2e08cb00193..2e7e9d9798c 100644 --- a/drivers/clk/clk-highbank.c +++ b/drivers/clk/clk-highbank.c @@ -20,8 +20,7 @@  #include <linux/clk-provider.h>  #include <linux/io.h>  #include <linux/of.h> - -extern void __iomem *sregs_base; +#include <linux/of_address.h>  #define HB_PLL_LOCK_500		0x20000000  #define HB_PLL_LOCK		0x10000000 @@ -280,6 +279,7 @@ static __init struct clk *hb_clk_init(struct device_node *node, const struct clk  	const char *clk_name = node->name;  	const char *parent_name;  	struct clk_init_data init; +	struct device_node *srnp;  	int rc;  	rc = of_property_read_u32(node, "reg", ®); @@ -290,7 +290,11 @@ static __init struct clk *hb_clk_init(struct device_node *node, const struct clk  	if (WARN_ON(!hb_clk))  		return NULL; -	hb_clk->reg = sregs_base + reg; +	/* Map system registers */ +	srnp = of_find_compatible_node(NULL, NULL, "calxeda,hb-sregs"); +	hb_clk->reg = of_iomap(srnp, 0); +	BUG_ON(!hb_clk->reg); +	hb_clk->reg += reg;  	of_property_read_string(node, "clock-output-names", &clk_name);  | 
