Hi,

On 11/24/2016 11:10 AM, Michael Kurz wrote:
> 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.k...@gmail.com>

Reviewed-by: Vikas Manocha <vikas.mano...@st.com>

Cheers,
Vikas

> 
> ---
> 
> 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.
> 
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to