All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4 25/28] arm: socfpga: arria10: Added drivers for Arria10 clock manager
Date: Fri, 17 Feb 2017 22:10:59 +0100	[thread overview]
Message-ID: <9e30dbd6-7809-b5d0-b652-bd3ef47029b3@denx.de> (raw)
In-Reply-To: <CAFiDJ59HnBe_o-J3gxNMewY2G5yHuXaN+QnFg9r-oX=OmmiZww@mail.gmail.com>

On 02/17/2017 09:56 AM, Ley Foon Tan wrote:
> On Mon, Jan 23, 2017 at 12:18 PM, Marek Vasut <marex@denx.de> wrote:
>> On 01/10/2017 06:20 AM, Chee Tien Fong wrote:
>>> From: Tien Fong Chee <tien.fong.chee@intel.com>
>>>
>>> The drivers is restructured such common functions, gen5 functions, and
>>> arria10 functions are moved to clock_manager.c, clock_manager_gen5 and
>>> clock_manager_arria10 respectively.
>>>
>>> Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
>>> Cc: Marek Vasut <marex@denx.de>
>>> Cc: Dinh Nguyen <dingnuyen@kernel.org>
>>> Cc: Ching Liang See <chin.liang.see@intel.com>
>>> Cc: Tien Fong <skywindctf@gmail.com>
>>> ---
>>>  arch/arm/mach-socfpga/clock_manager.c              | 752 +++++++---------
>>>  arch/arm/mach-socfpga/clock_manager_arria10.c      | 954 +++++++++++++++++++++
>>>  .../{clock_manager.c => clock_manager_gen5.c}      | 240 +-----
>>>  arch/arm/mach-socfpga/include/mach/clock_manager.h | 356 ++++++--
>>>  4 files changed, 1573 insertions(+), 729 deletions(-)
>>>  create mode 100644 arch/arm/mach-socfpga/clock_manager_arria10.c
>>>  copy arch/arm/mach-socfpga/{clock_manager.c => clock_manager_gen5.c} (62%)
>>>
>>> diff --git a/arch/arm/mach-socfpga/clock_manager.c b/arch/arm/mach-socfpga/clock_manager.c
>>> index aa71636..d209f7d 100644
>>> --- a/arch/arm/mach-socfpga/clock_manager.c
>>> +++ b/arch/arm/mach-socfpga/clock_manager.c
>>> @@ -1,5 +1,5 @@
>>>  /*
>>> - *  Copyright (C) 2013 Altera Corporation <www.altera.com>
>>> + *  Copyright (C) 2013-2016 Altera Corporation <www.altera.com>
>>>   *
>>>   * SPDX-License-Identifier:  GPL-2.0+
>>>   */
>>> @@ -7,416 +7,287 @@
>>>  #include <common.h>
>>>  #include <asm/io.h>
>>>  #include <asm/arch/clock_manager.h>
>>> +#include <fdtdec.h>
>>>
>>>  DECLARE_GLOBAL_DATA_PTR;
>>>
>>> +/* Function prototypes */
>>> +/* Common prototypes */
>>> +unsigned int cm_get_l4_sp_clk_hz(void);
>>> +unsigned int cm_get_qspi_controller_clk_hz(void);
>>> +unsigned int cm_get_mmc_controller_clk_hz(void);
>>> +unsigned int cm_get_spi_controller_clk_hz(void);
>>> +static void cm_print_clock_quick_summary(void);
>>> +int do_showclocks(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
>>> +void cm_wait_for_lock(uint32_t mask);
>>> +void cm_wait_for_fsm(void);
>>> +unsigned int cm_get_main_vco_clk_hz(void);
>>> +unsigned int cm_get_per_vco_clk_hz(void);
>>> +unsigned long cm_get_mpu_clk_hz(void);
>>> +
>>>  static const struct socfpga_clock_manager *clock_manager_base =
>>>       (struct socfpga_clock_manager *)SOCFPGA_CLKMGR_ADDRESS;
>>>
>>> -static void cm_wait_for_lock(uint32_t mask)
>>> +/* Common functions */
>>> +int set_cpu_clk_info(void)
>>>  {
>>> -     register uint32_t inter_val;
>>> -     uint32_t retry = 0;
>>> -     do {
>>> -             inter_val = readl(&clock_manager_base->inter) & mask;
>>> -             if (inter_val == mask)
>>> -                     retry++;
>>> -             else
>>> -                     retry = 0;
>>> -             if (retry >= 10)
>>> -                     break;
>>> -     } while (1);
>>> -}
>>> +     /* Calculate the clock frequencies required for drivers */
>>> +     cm_get_l4_sp_clk_hz();
>>> +     cm_get_mmc_controller_clk_hz();
>>>
>>> -/* function to poll in the fsm busy bit */
>>> -static void cm_wait_for_fsm(void)
>>> -{
>>> -     while (readl(&clock_manager_base->stat) & CLKMGR_STAT_BUSY)
>>> -             ;
>>> -}
>>> +     gd->bd->bi_arm_freq = cm_get_mpu_clk_hz() / 1000000;
>>> +     gd->bd->bi_dsp_freq = 0;
>>>
>>> -/*
>>> - * function to write the bypass register which requires a poll of the
>>> - * busy bit
>>> - */
>>> -static void cm_write_bypass(uint32_t val)
>>> -{
>>> -     writel(val, &clock_manager_base->bypass);
>>> -     cm_wait_for_fsm();
>>> -}
>>> +#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
>>> +     gd->bd->bi_ddr_freq = cm_get_sdram_clk_hz() / 1000000;
>>> +#elif defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
>>> +     gd->bd->bi_ddr_freq = 0;
>>
>> What ? This cannot work ...
> For A10, ddr controller is on fpga side and we don't need the ddr freq
> for ddr setup.

And if the user wants to know ? Any chance we can pass this info to the
user ? I presume this is still a hard-IP controller, not some soft core
thing ...

[...]

-- 
Best regards,
Marek Vasut

  reply	other threads:[~2017-02-17 21:10 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-10  5:20 [U-Boot] [PATCH v4 00/28] *** SUBJECT HERE *** Chee Tien Fong
2017-01-10  5:20 ` [U-Boot] [PATCH v4 01/28] arm: socfpga: arria10: add additional i2c nodes for Arria10 Chee Tien Fong
2017-01-23  3:38   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 02/28] arm: socfpga: arria10: add sdram defines " Chee Tien Fong
2017-01-23  3:40   ` Marek Vasut
2017-02-17 10:12     ` Ley Foon Tan
2017-01-10  5:20 ` [U-Boot] [PATCH v4 03/28] arm: socfpga: arria10: add board files for the Arria10 SoCDK Chee Tien Fong
2017-01-23  3:42   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 04/28] arm: socfpga: arria10: add system manager defines Chee Tien Fong
2017-01-23  3:43   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 05/28] arm: socfpga: arria10: add misc functions for Arria10 Chee Tien Fong
2017-01-23  3:45   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 06/28] arm: socfpga: arria10: add socfpga_arria10_socdk config Chee Tien Fong
2017-01-23  3:46   ` Marek Vasut
2017-02-17 10:18     ` Ley Foon Tan
2017-02-17 21:12       ` Marek Vasut
2017-02-17 21:53         ` Dalon Westergreen
2017-02-17 21:57           ` Marek Vasut
2017-02-18 14:18             ` Dalon Westergreen
2017-02-18 15:20               ` Marek Vasut
2017-02-17 22:53           ` Dalon Westergreen
2017-01-10  5:20 ` [U-Boot] [PATCH v4 07/28] arm: socfpga: arria10: add socfpga_arria10_defconfig Chee Tien Fong
2017-01-23  3:46   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 08/28] arm: socfpga: arria10: add config option build for arria10 Chee Tien Fong
2017-01-23  3:48   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 09/28] arm: socfpga: add define for bootinfo bsel bit shift Chee Tien Fong
2017-01-23  3:49   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 10/28] arm: socfpga: arria10: add reset manager for Arria10 Chee Tien Fong
2017-01-23  3:52   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 11/28] arm: socfpga: wrap system manager functions for A5/C5 devices Chee Tien Fong
2017-01-23  3:53   ` Marek Vasut
2017-02-17 10:20     ` Ley Foon Tan
2017-02-17 21:12       ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 12/28] arm: socfpga: arria10: don't build GEN5 sdram for arria10 Chee Tien Fong
2017-01-23  3:54   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 13/28] arm: socfpga: arria10 fpga does not have bridges mapped Chee Tien Fong
2017-01-23  3:55   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 14/28] arm: socfpga: arria10: remove board_init and s_init Chee Tien Fong
2017-01-23  3:56   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 15/28] arm: socfpga: combine clrbits/setbits into a single clrsetbits Chee Tien Fong
2017-01-23  3:58   ` Marek Vasut
2017-02-16  3:34     ` Ley Foon Tan
2017-02-17  7:54       ` Marek Vasut
2017-02-17  9:10         ` Ley Foon Tan
2017-02-17 21:11           ` Marek Vasut
2017-02-17 21:05       ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 16/28] arm: socfpga: add reset manager defines for Arria10 Chee Tien Fong
2017-01-23  3:58   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 17/28] arm: socfpga: arria10: update dwmac reset function to support Arria10 Chee Tien Fong
2017-01-23  4:00   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 18/28] ARM:dts: Added device tree for socfpga arria10 development kit sdmmc Chee Tien Fong
2017-01-23  4:03   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 19/28] arm: socfpga: arria10: Enable SPL for Arria 10 Chee Tien Fong
2017-01-23  4:04   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 20/28] arm: socfpga: arria10: Added clock manager and pin mux compat macro Chee Tien Fong
2017-01-23  4:05   ` Marek Vasut
2017-02-16 10:28     ` Ley Foon Tan
2017-01-10  5:20 ` [U-Boot] [PATCH v4 21/28] arm: socfpga: arria10: Added some hardware base address for Arria 10 Chee Tien Fong
2017-01-23  4:06   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 22/28] arm: socfpga: arria10: Added support for Arria 10 socdk Chee Tien Fong
2017-01-23  4:07   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 23/28] arm: socfpga: arria10: Added drivers for Arria10 Reset Manager Chee Tien Fong
2017-01-23  4:13   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 24/28] arm: socfpga: arria10: Added miscellaneous drivers for Arria 10 Chee Tien Fong
2017-01-23  4:16   ` Marek Vasut
2017-02-17  3:31     ` Ley Foon Tan
2017-01-10  5:20 ` [U-Boot] [PATCH v4 25/28] arm: socfpga: arria10: Added drivers for Arria10 clock manager Chee Tien Fong
2017-01-23  4:18   ` Marek Vasut
2017-02-17  8:56     ` Ley Foon Tan
2017-02-17 21:10       ` Marek Vasut [this message]
2017-02-20  2:34         ` Ley Foon Tan
2017-02-20  7:28           ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 26/28] arm: socfpga: arria10: Added drivers for Arria10 pinmux/pins configuration Chee Tien Fong
2017-01-23  4:19   ` Marek Vasut
2017-02-17 10:06     ` Ley Foon Tan
2017-01-10  5:20 ` [U-Boot] [PATCH v4 27/28] arm: socfpga: arria10: Added Arria10 critical HW initialization to spl Chee Tien Fong
2017-01-23  4:21   ` Marek Vasut
2017-01-10  5:20 ` [U-Boot] [PATCH v4 28/28] arm: socfpga: arria10: Enable fpga driver build for SPL Chee Tien Fong
2017-01-23  4:22   ` Marek Vasut
2017-01-10 22:06 ` [U-Boot] [PATCH v4 00/28] *** SUBJECT HERE *** Marek Vasut
2017-01-11  4:03   ` Chee, Tien Fong
2017-01-11  6:59   ` Chee, Tien Fong
2017-01-10  5:26 [U-Boot] [PATCH v4 25/28] arm: socfpga: arria10: Added drivers for Arria10 clock manager Chee Tien Fong
2017-01-10  5:37 Chee Tien Fong

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=9e30dbd6-7809-b5d0-b652-bd3ef47029b3@denx.de \
    --to=marex@denx.de \
    --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 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.