* [PATCH 1/2] arm: mvebu: Remove timer.c
@ 2022-09-21 6:26 Stefan Roese
2022-09-21 6:26 ` [PATCH 2/2] timer: orion-timer: Only init timer once Stefan Roese
2022-10-06 10:46 ` [PATCH 1/2] arm: mvebu: Remove timer.c Stefan Roese
0 siblings, 2 replies; 4+ messages in thread
From: Stefan Roese @ 2022-09-21 6:26 UTC (permalink / raw)
To: u-boot; +Cc: Michael Walle, Pali Rohár
Since the move to CONFIG_TIMER with support for CONFIG_TIMER_EARLY, this
platform specific init_timer() function is not needed any more. Let's
remove it completely.
Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Michael Walle <michael@walle.cc>
Cc: Pali Rohár <pali@kernel.org>
---
arch/arm/mach-mvebu/Makefile | 5 -----
arch/arm/mach-mvebu/spl.c | 2 --
arch/arm/mach-mvebu/timer.c | 41 ------------------------------------
3 files changed, 48 deletions(-)
delete mode 100644 arch/arm/mach-mvebu/timer.c
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
index 103e64cf2047..406a9ee8f686 100644
--- a/arch/arm/mach-mvebu/Makefile
+++ b/arch/arm/mach-mvebu/Makefile
@@ -16,10 +16,6 @@ obj-y = dram.o
obj-y += gpio.o
obj-y += mbus.o
-ifndef CONFIG_TIMER
-obj-y += timer.o
-endif
-
else # CONFIG_ARCH_KIRKWOOD
obj-y = cpu.o
@@ -97,7 +93,6 @@ $(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
endif # CONFIG_SPL_BUILD
obj-y += gpio.o
obj-y += mbus.o
-obj-y += timer.o
obj-$(CONFIG_SPL_BUILD) += spl.o
obj-$(CONFIG_SPL_BUILD) += lowlevel_spl.o
diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
index ca2d5a59d773..424599286e5e 100644
--- a/arch/arm/mach-mvebu/spl.c
+++ b/arch/arm/mach-mvebu/spl.c
@@ -340,8 +340,6 @@ void board_init_f(ulong dummy)
preloader_console_init();
- timer_init();
-
/* Armada 375 does not support SerDes and DDR3 init yet */
#if !defined(CONFIG_ARMADA_375)
/* First init the serdes PHY's */
diff --git a/arch/arm/mach-mvebu/timer.c b/arch/arm/mach-mvebu/timer.c
deleted file mode 100644
index 557a378776d7..000000000000
--- a/arch/arm/mach-mvebu/timer.c
+++ /dev/null
@@ -1,41 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) Marvell International Ltd. and its affiliates
- * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
- *
- * Copyright (C) 2015 Stefan Roese <sr@denx.de>
- */
-
-#include <common.h>
-#include <init.h>
-#include <asm/io.h>
-#include <asm/arch/soc.h>
-#include <linux/bitops.h>
-
-#define TIMER_LOAD_VAL 0xffffffff
-
-static int init_done __section(".data") = 0;
-
-/*
- * Timer initialization
- */
-int timer_init(void)
-{
- /* Only init the timer once */
- if (init_done)
- return 0;
- init_done = 1;
-
- /* load value into timer */
- writel(TIMER_LOAD_VAL, MVEBU_TIMER_BASE + 0x10);
- writel(TIMER_LOAD_VAL, MVEBU_TIMER_BASE + 0x14);
-
-#if defined(CONFIG_ARCH_MVEBU)
- /* On Armada XP / 38x ..., the 25MHz clock source needs to be enabled */
- setbits_le32(MVEBU_TIMER_BASE + 0x00, BIT(11));
-#endif
- /* enable timer in auto reload mode */
- setbits_le32(MVEBU_TIMER_BASE + 0x00, 0x3);
-
- return 0;
-}
--
2.37.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] timer: orion-timer: Only init timer once
2022-09-21 6:26 [PATCH 1/2] arm: mvebu: Remove timer.c Stefan Roese
@ 2022-09-21 6:26 ` Stefan Roese
2022-10-06 10:46 ` Stefan Roese
2022-10-06 10:46 ` [PATCH 1/2] arm: mvebu: Remove timer.c Stefan Roese
1 sibling, 1 reply; 4+ messages in thread
From: Stefan Roese @ 2022-09-21 6:26 UTC (permalink / raw)
To: u-boot; +Cc: Michael Walle, Pali Rohár
Move the code making sure that the timer is initialized only once into
orion_timer_init(), which is called from timer_early_init() and from
orion_timer_probe(). This way the timer is not re-initialized.
Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Michael Walle <michael@walle.cc>
Cc: Pali Rohár <pali@kernel.org>
---
drivers/timer/orion-timer.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/timer/orion-timer.c b/drivers/timer/orion-timer.c
index cd63ea916237..d0eab3ce781d 100644
--- a/drivers/timer/orion-timer.c
+++ b/drivers/timer/orion-timer.c
@@ -28,6 +28,11 @@ static bool early_init_done __section(".data") = false;
/* Common functions for early (boot) and DM based timer */
static void orion_timer_init(void *base, enum input_clock_type type)
{
+ /* Only init the timer once */
+ if (early_init_done)
+ return;
+ early_init_done = true;
+
writel(~0, base + TIMER0_VAL);
writel(~0, base + TIMER0_RELOAD);
@@ -51,11 +56,6 @@ static uint64_t orion_timer_get_count(void *base)
/* Early (e.g. bootstage etc) timer functions */
static void notrace timer_early_init(void)
{
- /* Only init the timer once */
- if (early_init_done)
- return;
- early_init_done = true;
-
if (IS_ENABLED(CONFIG_ARCH_MVEBU))
orion_timer_init((void *)MVEBU_TIMER_BASE, INPUT_CLOCK_25MHZ);
else
--
2.37.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] arm: mvebu: Remove timer.c
2022-09-21 6:26 [PATCH 1/2] arm: mvebu: Remove timer.c Stefan Roese
2022-09-21 6:26 ` [PATCH 2/2] timer: orion-timer: Only init timer once Stefan Roese
@ 2022-10-06 10:46 ` Stefan Roese
1 sibling, 0 replies; 4+ messages in thread
From: Stefan Roese @ 2022-10-06 10:46 UTC (permalink / raw)
To: u-boot; +Cc: Michael Walle, Pali Rohár
On 21.09.22 08:26, Stefan Roese wrote:
> Since the move to CONFIG_TIMER with support for CONFIG_TIMER_EARLY, this
> platform specific init_timer() function is not needed any more. Let's
> remove it completely.
>
> Signed-off-by: Stefan Roese <sr@denx.de>
> Cc: Michael Walle <michael@walle.cc>
> Cc: Pali Rohár <pali@kernel.org>
Applied to u-boot-marvell/master
Thanks,
Stefan
> ---
> arch/arm/mach-mvebu/Makefile | 5 -----
> arch/arm/mach-mvebu/spl.c | 2 --
> arch/arm/mach-mvebu/timer.c | 41 ------------------------------------
> 3 files changed, 48 deletions(-)
> delete mode 100644 arch/arm/mach-mvebu/timer.c
>
> diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
> index 103e64cf2047..406a9ee8f686 100644
> --- a/arch/arm/mach-mvebu/Makefile
> +++ b/arch/arm/mach-mvebu/Makefile
> @@ -16,10 +16,6 @@ obj-y = dram.o
> obj-y += gpio.o
> obj-y += mbus.o
>
> -ifndef CONFIG_TIMER
> -obj-y += timer.o
> -endif
> -
> else # CONFIG_ARCH_KIRKWOOD
>
> obj-y = cpu.o
> @@ -97,7 +93,6 @@ $(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
> endif # CONFIG_SPL_BUILD
> obj-y += gpio.o
> obj-y += mbus.o
> -obj-y += timer.o
> obj-$(CONFIG_SPL_BUILD) += spl.o
> obj-$(CONFIG_SPL_BUILD) += lowlevel_spl.o
>
> diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
> index ca2d5a59d773..424599286e5e 100644
> --- a/arch/arm/mach-mvebu/spl.c
> +++ b/arch/arm/mach-mvebu/spl.c
> @@ -340,8 +340,6 @@ void board_init_f(ulong dummy)
>
> preloader_console_init();
>
> - timer_init();
> -
> /* Armada 375 does not support SerDes and DDR3 init yet */
> #if !defined(CONFIG_ARMADA_375)
> /* First init the serdes PHY's */
> diff --git a/arch/arm/mach-mvebu/timer.c b/arch/arm/mach-mvebu/timer.c
> deleted file mode 100644
> index 557a378776d7..000000000000
> --- a/arch/arm/mach-mvebu/timer.c
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -/*
> - * Copyright (C) Marvell International Ltd. and its affiliates
> - * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
> - *
> - * Copyright (C) 2015 Stefan Roese <sr@denx.de>
> - */
> -
> -#include <common.h>
> -#include <init.h>
> -#include <asm/io.h>
> -#include <asm/arch/soc.h>
> -#include <linux/bitops.h>
> -
> -#define TIMER_LOAD_VAL 0xffffffff
> -
> -static int init_done __section(".data") = 0;
> -
> -/*
> - * Timer initialization
> - */
> -int timer_init(void)
> -{
> - /* Only init the timer once */
> - if (init_done)
> - return 0;
> - init_done = 1;
> -
> - /* load value into timer */
> - writel(TIMER_LOAD_VAL, MVEBU_TIMER_BASE + 0x10);
> - writel(TIMER_LOAD_VAL, MVEBU_TIMER_BASE + 0x14);
> -
> -#if defined(CONFIG_ARCH_MVEBU)
> - /* On Armada XP / 38x ..., the 25MHz clock source needs to be enabled */
> - setbits_le32(MVEBU_TIMER_BASE + 0x00, BIT(11));
> -#endif
> - /* enable timer in auto reload mode */
> - setbits_le32(MVEBU_TIMER_BASE + 0x00, 0x3);
> -
> - return 0;
> -}
Viele Grüße,
Stefan Roese
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] timer: orion-timer: Only init timer once
2022-09-21 6:26 ` [PATCH 2/2] timer: orion-timer: Only init timer once Stefan Roese
@ 2022-10-06 10:46 ` Stefan Roese
0 siblings, 0 replies; 4+ messages in thread
From: Stefan Roese @ 2022-10-06 10:46 UTC (permalink / raw)
To: u-boot; +Cc: Michael Walle, Pali Rohár
On 21.09.22 08:26, Stefan Roese wrote:
> Move the code making sure that the timer is initialized only once into
> orion_timer_init(), which is called from timer_early_init() and from
> orion_timer_probe(). This way the timer is not re-initialized.
>
> Signed-off-by: Stefan Roese <sr@denx.de>
> Cc: Michael Walle <michael@walle.cc>
> Cc: Pali Rohár <pali@kernel.org>
Applied to u-boot-marvell/master
Thanks,
Stefan
> ---
> drivers/timer/orion-timer.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/timer/orion-timer.c b/drivers/timer/orion-timer.c
> index cd63ea916237..d0eab3ce781d 100644
> --- a/drivers/timer/orion-timer.c
> +++ b/drivers/timer/orion-timer.c
> @@ -28,6 +28,11 @@ static bool early_init_done __section(".data") = false;
> /* Common functions for early (boot) and DM based timer */
> static void orion_timer_init(void *base, enum input_clock_type type)
> {
> + /* Only init the timer once */
> + if (early_init_done)
> + return;
> + early_init_done = true;
> +
> writel(~0, base + TIMER0_VAL);
> writel(~0, base + TIMER0_RELOAD);
>
> @@ -51,11 +56,6 @@ static uint64_t orion_timer_get_count(void *base)
> /* Early (e.g. bootstage etc) timer functions */
> static void notrace timer_early_init(void)
> {
> - /* Only init the timer once */
> - if (early_init_done)
> - return;
> - early_init_done = true;
> -
> if (IS_ENABLED(CONFIG_ARCH_MVEBU))
> orion_timer_init((void *)MVEBU_TIMER_BASE, INPUT_CLOCK_25MHZ);
> else
Viele Grüße,
Stefan Roese
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-10-06 10:46 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-21 6:26 [PATCH 1/2] arm: mvebu: Remove timer.c Stefan Roese
2022-09-21 6:26 ` [PATCH 2/2] timer: orion-timer: Only init timer once Stefan Roese
2022-10-06 10:46 ` Stefan Roese
2022-10-06 10:46 ` [PATCH 1/2] arm: mvebu: Remove timer.c Stefan Roese
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).