u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
* [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).