From patchwork Sun Jan 22 15:04:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Kurz X-Patchwork-Id: 718227 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 3v5ySB3hYhz9t1L for ; Mon, 23 Jan 2017 02:05:46 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="umG6yTTg"; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 3450B4B63F; Sun, 22 Jan 2017 16:05:31 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dACcq-6sLhNx; Sun, 22 Jan 2017 16:05:31 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 880DB4AFAA; Sun, 22 Jan 2017 16:05:14 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id BBF874AACE for ; Sun, 22 Jan 2017 16:04:53 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 31quIoCOSy63 for ; Sun, 22 Jan 2017 16:04:53 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-wm0-f65.google.com (mail-wm0-f65.google.com [74.125.82.65]) by theia.denx.de (Postfix) with ESMTPS id E08534A078 for ; Sun, 22 Jan 2017 16:04:51 +0100 (CET) Received: by mail-wm0-f65.google.com with SMTP id r144so19790205wme.0 for ; Sun, 22 Jan 2017 07:04:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=6a0ZYm9UoiiPohFBPRHucoI5vV3pFIhd6A2inAiX+sc=; b=umG6yTTgjqc/71J7ZJkAv3MIO3+gp8068Kh8otViSKbwx3FlvwV+m+vjyR+OmwAwl8 MZzcu1kWERXQpfWfc1fzC8+G/6JJpji1pv315lOMuiitXRu82pl7V4o62xyIsWZUVmVw Xop7vqZlXnINElD1fnW6LLFUCdD3Cowdbt6Zem7fZnhgcPuXb1c6HJgpN8q52p8LBuEy rmS+xu7B7BzU9gb2SA9Qfw4DhpOrUfmCWQlH4fWEb/U/PYNJncgYgfUbscGqVBgvdOSO fcRbpP04+HHsCsjYtt9gfSklIAYKNegWSS0nia1WcS62NfkY0U8Ffm+e6S/hEzsn9yJc NBgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=6a0ZYm9UoiiPohFBPRHucoI5vV3pFIhd6A2inAiX+sc=; b=rl8sIeKXumiBjFdNyvEGdGtwVpBYQtBbeBekxvDMvZc7+wTvwnPrBojjXVwefiKUjK xZ1cBKBun4OwMV6vIn9VZPbAYjFWOrNkH1Qs2lvpJvdF0PSwbYCGM9BeuRK5zusUAlK+ RLTIJ6L2zt3Q0gTFNiIuI8o9+i2NPu6XPqblZn4HlPVf/2y2/6ZqckvtZH9XdQYb2+zP SK/SK8VsWF/sbkYaqBZXOOFjZEYjTvOSkYqFfwqq6hyCevWf6epG7/IMKlxz7sxzNo5u zajWXVXcOytiObKOtSluUaKV6K85VFZxmn3GSNq0K5mJ/6QTVeTGEGVM9m6fE6P/BQi5 2pMw== X-Gm-Message-State: AIkVDXLpVugVYW8WKdPu8lkzK9gBJ51iSR93w9hP8ng/QkfP7qKJXLHqp6ZVZPtq1JsI+w== X-Received: by 10.223.143.48 with SMTP id p45mr19774446wrb.33.1485097491501; Sun, 22 Jan 2017 07:04:51 -0800 (PST) Received: from yoctodev.fritz.box (x590e7b36.dyn.telefonica.de. [89.14.123.54]) by smtp.gmail.com with ESMTPSA id f67sm16326210wmd.13.2017.01.22.07.04.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 22 Jan 2017 07:04:51 -0800 (PST) From: Michael Kurz To: u-boot@lists.denx.de Date: Sun, 22 Jan 2017 16:04:26 +0100 Message-Id: <1485097470-71245-6-git-send-email-michi.kurz@gmail.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1485097470-71245-1-git-send-email-michi.kurz@gmail.com> References: <1485097470-71245-1-git-send-email-michi.kurz@gmail.com> Cc: Albert Aribaud , Joe Hershberger , Toshifumi NISHINAGA Subject: [U-Boot] [PATCH v4 5/9] ARM: stm32: use clock setup function defined in clock.c X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" 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 Reviewed-by: Joe Hershberger Reviewed-by: Vikas Manocha --- 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 #include #include +#include #include -#include #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 #include #include -#include #include #include #include @@ -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.