public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Michael Kurz <michi.kurz@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4 5/9] ARM: stm32: use clock setup function defined in clock.c
Date: Sun, 22 Jan 2017 16:04:26 +0100	[thread overview]
Message-ID: <1485097470-71245-6-git-send-email-michi.kurz@gmail.com> (raw)
In-Reply-To: <1485097470-71245-1-git-send-email-michi.kurz@gmail.com>

Use the clock setup function defined in clock.c instead of setting the
clock bits directly in the drivers.
Remove register definitions of RCC in rcc.h as these are already
defined in the struct in stm32.h

Signed-off-by: Michael Kurz <michi.kurz@gmail.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Vikas Manocha <vikas.manocha@st.com>

---

Changes in v4:
- Add Reviewed-by tag to 'use clock setup function defined in clock.c'

Changes in v3:
- Split clock setup changes of from cleanup patch

Changes in v2: None

 arch/arm/include/asm/arch-stm32f7/rcc.h          | 26 ------------------------
 arch/arm/include/asm/arch-stm32f7/stm32_periph.h |  3 +++
 arch/arm/mach-stm32/stm32f7/clock.c              |  9 ++++++++
 arch/arm/mach-stm32/stm32f7/timer.c              |  4 ++--
 board/st/stm32f746-disco/stm32f746-disco.c       |  3 +--
 5 files changed, 15 insertions(+), 30 deletions(-)

diff --git a/arch/arm/include/asm/arch-stm32f7/rcc.h b/arch/arm/include/asm/arch-stm32f7/rcc.h
index 184c366..23eec5e 100644
--- a/arch/arm/include/asm/arch-stm32f7/rcc.h
+++ b/arch/arm/include/asm/arch-stm32f7/rcc.h
@@ -8,32 +8,6 @@
 #ifndef _STM32_RCC_H
 #define _STM32_RCC_H
 
-#define RCC_CR		0x00	/* clock control */
-#define RCC_PLLCFGR	0x04	/* PLL configuration */
-#define RCC_CFGR	0x08	/* clock configuration */
-#define RCC_CIR		0x0C	/* clock interrupt */
-#define RCC_AHB1RSTR	0x10	/* AHB1 peripheral reset */
-#define RCC_AHB2RSTR	0x14	/* AHB2 peripheral reset */
-#define RCC_AHB3RSTR	0x18	/* AHB3 peripheral reset */
-#define RCC_APB1RSTR	0x20	/* APB1 peripheral reset */
-#define RCC_APB2RSTR	0x24	/* APB2 peripheral reset */
-#define RCC_AHB1ENR	0x30	/* AHB1 peripheral clock enable */
-#define RCC_AHB2ENR	0x34	/* AHB2 peripheral clock enable */
-#define RCC_AHB3ENR	0x38	/* AHB3 peripheral clock enable */
-#define RCC_APB1ENR	0x40	/* APB1 peripheral clock enable */
-#define RCC_APB2ENR	0x44	/* APB2 peripheral clock enable */
-#define RCC_AHB1LPENR	0x50	/* periph clk enable in low pwr mode */
-#define RCC_AHB2LPENR	0x54	/* AHB2 periph clk enable in low pwr mode */
-#define RCC_AHB3LPENR	0x58	/* AHB3 periph clk enable in low pwr mode */
-#define RCC_APB1LPENR	0x60	/* APB1 periph clk enable in low pwr mode */
-#define RCC_APB2LPENR	0x64	/* APB2 periph clk enable in low pwr mode */
-#define RCC_BDCR	0x70	/* Backup domain control */
-#define RCC_CSR		0x74	/* clock control & status */
-#define RCC_SSCGR	0x80	/* spread spectrum clock generation */
-#define RCC_PLLI2SCFGR	0x84	/* PLLI2S configuration */
-#define RCC_PLLSAICFG	0x88	/* PLLSAI configuration */
-#define RCC_DCKCFG1	0x8C	/* dedicated clocks configuration register */
-#define RCC_DCKCFG2	0x90	/* dedicated clocks configuration register */
 /*
  * RCC AHB1ENR specific definitions
  */
diff --git a/arch/arm/include/asm/arch-stm32f7/stm32_periph.h b/arch/arm/include/asm/arch-stm32f7/stm32_periph.h
index 38adc4e..9b315a8 100644
--- a/arch/arm/include/asm/arch-stm32f7/stm32_periph.h
+++ b/arch/arm/include/asm/arch-stm32f7/stm32_periph.h
@@ -33,6 +33,9 @@ enum periph_clock {
 	GPIO_I_CLOCK_CFG,
 	GPIO_J_CLOCK_CFG,
 	GPIO_K_CLOCK_CFG,
+	SYSCFG_CLOCK_CFG,
+	TIMER2_CLOCK_CFG,
+	FMC_CLOCK_CFG,
 };
 
 #endif /* __ASM_ARM_ARCH_PERIPH_H */
diff --git a/arch/arm/mach-stm32/stm32f7/clock.c b/arch/arm/mach-stm32/stm32f7/clock.c
index 8091c74..4faf174 100644
--- a/arch/arm/mach-stm32/stm32f7/clock.c
+++ b/arch/arm/mach-stm32/stm32f7/clock.c
@@ -252,6 +252,15 @@ void clock_setup(int peripheral)
 	case GPIO_K_CLOCK_CFG:
 		setbits_le32(&STM32_RCC->ahb1enr, RCC_AHB1ENR_GPIO_K_EN);
 		break;
+	case SYSCFG_CLOCK_CFG:
+		setbits_le32(&STM32_RCC->apb2enr, RCC_APB2ENR_SYSCFGEN);
+		break;
+	case TIMER2_CLOCK_CFG:
+		setbits_le32(&STM32_RCC->apb1enr, RCC_APB1ENR_TIM2EN);
+		break;
+	case FMC_CLOCK_CFG:
+		setbits_le32(&STM32_RCC->ahb3enr, RCC_AHB3ENR_FMC_EN);
+		break;
 	default:
 		break;
 	}
diff --git a/arch/arm/mach-stm32/stm32f7/timer.c b/arch/arm/mach-stm32/stm32f7/timer.c
index a7dee10..c15f8bb 100644
--- a/arch/arm/mach-stm32/stm32f7/timer.c
+++ b/arch/arm/mach-stm32/stm32f7/timer.c
@@ -8,8 +8,8 @@
 #include <common.h>
 #include <asm/io.h>
 #include <asm/arch/stm32.h>
+#include <asm/arch/stm32_defs.h>
 #include <asm/arch/gpt.h>
-#include <asm/arch/rcc.h>
 
 #define READ_TIMER()	(readl(&gpt1_regs_ptr->cnt) & GPT_FREE_RUNNING)
 #define GPT_RESOLUTION	(CONFIG_SYS_HZ_CLOCK/CONFIG_STM32_HZ)
@@ -22,7 +22,7 @@ DECLARE_GLOBAL_DATA_PTR;
 int timer_init(void)
 {
 	/* Timer2 clock configuration */
-	setbits_le32(RCC_BASE + RCC_APB1ENR, RCC_APB1ENR_TIM2EN);
+	clock_setup(TIMER2_CLOCK_CFG);
 	/* Stop the timer */
 	writel(readl(&gpt1_regs_ptr->cr1) & ~GPT_CR1_CEN, &gpt1_regs_ptr->cr1);
 
diff --git a/board/st/stm32f746-disco/stm32f746-disco.c b/board/st/stm32f746-disco/stm32f746-disco.c
index c769da0..929ccb4 100644
--- a/board/st/stm32f746-disco/stm32f746-disco.c
+++ b/board/st/stm32f746-disco/stm32f746-disco.c
@@ -10,7 +10,6 @@
 #include <asm/armv7m.h>
 #include <asm/arch/stm32.h>
 #include <asm/arch/gpio.h>
-#include <asm/arch/rcc.h>
 #include <asm/arch/fmc.h>
 #include <dm/platdata.h>
 #include <dm/platform_data/serial_stm32x7.h>
@@ -171,7 +170,7 @@ int dram_init(void)
 	if (rv)
 		return rv;
 
-	setbits_le32(&STM32_RCC->ahb3enr, RCC_AHB3ENR_FMC_EN);
+	clock_setup(FMC_CLOCK_CFG);
 
 	/*
 	 * Get frequency for NS2CLK calculation.
-- 
2.1.4

  parent reply	other threads:[~2017-01-22 15:04 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-22 15:04 [U-Boot] [PATCH v4 0/9] ARM: stm32: add network and qspi driver support to stm32f746-disco board Michael Kurz
2017-01-22 15:04 ` [U-Boot] [PATCH v4 1/9] ARM: DTS: stm32: add stm32f746 device tree pin control files Michael Kurz
2017-01-28 22:44   ` [U-Boot] [U-Boot, v4, " Tom Rini
2017-01-22 15:04 ` [U-Boot] [PATCH v4 2/9] ARM: DTS: stm32: add stm32f746-disco device tree files Michael Kurz
2017-01-28 22:44   ` [U-Boot] [U-Boot, v4, " Tom Rini
2017-01-22 15:04 ` [U-Boot] [PATCH v4 3/9] ARM: stm32: cleanup stm32f7 files Michael Kurz
2017-01-24 19:35   ` Vikas MANOCHA
2017-01-28 22:45   ` [U-Boot] [U-Boot,v4,3/9] " Tom Rini
2017-01-22 15:04 ` [U-Boot] [PATCH v4 4/9] ARM: stm32: fix stm32f7 sdram fmc base address Michael Kurz
2017-01-28 22:45   ` [U-Boot] [U-Boot, v4, " Tom Rini
2017-01-22 15:04 ` Michael Kurz [this message]
2017-01-28 22:45   ` [U-Boot] [U-Boot, v4, 5/9] ARM: stm32: use clock setup function defined in clock.c Tom Rini
2017-01-22 15:04 ` [U-Boot] [PATCH v4 6/9] net: stm32: add designware mac glue code for stm32 Michael Kurz
2017-01-28 22:45   ` [U-Boot] [U-Boot, v4, " Tom Rini
2017-01-22 15:04 ` [U-Boot] [PATCH v4 7/9] net: phy: add SMSC LAN8742 phy Michael Kurz
2017-01-28 22:45   ` [U-Boot] [U-Boot,v4,7/9] " Tom Rini
2017-01-22 15:04 ` [U-Boot] [PATCH v4 8/9] ARM: stm32: enable support for smsc phy on stm32f746-disco board Michael Kurz
2017-01-28 22:45   ` [U-Boot] [U-Boot, v4, " Tom Rini
2017-01-22 15:04 ` [U-Boot] [PATCH v4 9/9] ARM: SPI: stm32: add stm32f746 qspi driver Michael Kurz
2017-01-28 22:45   ` [U-Boot] [U-Boot, v4, " Tom Rini
2017-01-24 19:39 ` [U-Boot] [PATCH v4 0/9] ARM: stm32: add network and qspi driver support to stm32f746-disco board Vikas MANOCHA

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1485097470-71245-6-git-send-email-michi.kurz@gmail.com \
    --to=michi.kurz@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox