All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.