diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2018-11-05 14:08:43 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-11-06 09:39:22 +0100 |
commit | e08031d5796be2eb61e0fef50319cc58d184bb75 (patch) | |
tree | 0f2008c390af649f8e83f416c14d23f3bf24b2bd /arch | |
parent | edd34f73a78300277237c1ebb276cb6e01081ad2 (diff) | |
download | barebox-e08031d5796be2eb61e0fef50319cc58d184bb75.tar.gz barebox-e08031d5796be2eb61e0fef50319cc58d184bb75.tar.xz |
ARM: at91: drop at91_pmc_write()/at91_pmc_read()
at91_pmc_write() and at91_pmc_read() need a compile time base address,
so remove them.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-at91/clock.c | 21 | ||||
-rw-r--r-- | arch/arm/mach-at91/include/mach/at91_pmc.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-at91/include/mach/at91sam926x_board_init.h | 4 |
3 files changed, 24 insertions, 7 deletions
diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c index 1f2cfdc716..9d2e3a3acc 100644 --- a/arch/arm/mach-at91/clock.c +++ b/arch/arm/mach-at91/clock.c @@ -108,6 +108,18 @@ #define cpu_has_dual_matrix() (cpu_is_sama5d4()) +static void *pmc; + +static inline void at91_pmc_write(unsigned int offset, u32 val) +{ + writel(val, pmc + offset); +} + +static inline u32 at91_pmc_read(unsigned int offset) +{ + return readl(pmc + offset); +} + static LIST_HEAD(clocks); static u32 at91_pllb_usb_init; @@ -648,6 +660,15 @@ int at91_clock_init(void) int i; unsigned long main_clock; + if (cpu_is_sama5d4()) + pmc = IOMEM(0xf0018000); + else + pmc = IOMEM(0xfffffc00); /* + * All other supported SoCs use this + * base address (new ones should use of + * clock support) + */ + main_clock = at91_main_clock; /* diff --git a/arch/arm/mach-at91/include/mach/at91_pmc.h b/arch/arm/mach-at91/include/mach/at91_pmc.h index d74c14011c..bbbd497afa 100644 --- a/arch/arm/mach-at91/include/mach/at91_pmc.h +++ b/arch/arm/mach-at91/include/mach/at91_pmc.h @@ -16,12 +16,6 @@ #ifndef AT91_PMC_H #define AT91_PMC_H -#define at91_pmc_read(field) \ - __raw_readl(AT91_PMC + field) - -#define at91_pmc_write(field, value) \ - __raw_writel(value, AT91_PMC + field) - #define AT91_PMC_SCER 0x00 /* System Clock Enable Register */ #define AT91_PMC_SCDR 0x04 /* System Clock Disable Register */ diff --git a/arch/arm/mach-at91/include/mach/at91sam926x_board_init.h b/arch/arm/mach-at91/include/mach/at91sam926x_board_init.h index ee4dfa7187..36fb84b63c 100644 --- a/arch/arm/mach-at91/include/mach/at91sam926x_board_init.h +++ b/arch/arm/mach-at91/include/mach/at91sam926x_board_init.h @@ -20,6 +20,8 @@ #include <mach/gpio.h> #include <mach/at91sam926x.h> +#define AT91SAM926X_BASE_PMC 0xfffffc00 + struct at91sam926x_board_cfg { /* SoC specific */ void __iomem *pio; @@ -59,7 +61,7 @@ static void __always_inline pmc_check_mckrdy(void) u32 r; do { - r = at91_pmc_read(AT91_PMC_SR); + r = readl(AT91SAM926X_BASE_PMC + AT91_PMC_SR); } while (!(r & AT91_PMC_MCKRDY)); } |