#include <linux/clkdev.h>
#include <linux/clk/at91_pmc.h>
#include <linux/of.h>
-#include <linux/of_address.h>
#include <linux/mfd/syscon.h>
#include <linux/regmap.h>
const struct at91_pmc_caps *caps;
};
-void __iomem *at91_pmc_base;
-EXPORT_SYMBOL_GPL(at91_pmc_base);
-
int of_at91_get_clk_range(struct device_node *np, const char *propname,
struct clk_range *range)
{
const struct at91_pmc_caps *caps)
{
struct at91_pmc *pmc;
- void __iomem *regbase = of_iomap(np, 0);
struct regmap *regmap;
- at91_pmc_base = regbase;
-
regmap = syscon_node_to_regmap(np);
if (IS_ERR(regmap))
panic("Could not retrieve syscon regmap");
#ifndef AT91_PMC_H
#define AT91_PMC_H
-#ifndef __ASSEMBLY__
-extern void __iomem *at91_pmc_base;
-
-#define at91_pmc_read(field) \
- readl_relaxed(at91_pmc_base + field)
-
-#define at91_pmc_write(field, value) \
- writel_relaxed(value, at91_pmc_base + field)
-#else
-.extern at91_pmc_base
-#endif
-
#define AT91_PMC_SCER 0x00 /* System Clock Enable Register */
#define AT91_PMC_SCDR 0x04 /* System Clock Disable Register */