All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [PATCH 3/7] ddr: altera: arria10: Change to use reset DM function
Date: Wed, 15 Apr 2020 14:43:11 +0200	[thread overview]
Message-ID: <a96dc378-4fbb-81c9-9aba-e4e20bc68152@denx.de> (raw)
In-Reply-To: <20200415090030.128489-4-ley.foon.tan@intel.com>

On 4/15/20 11:00 AM, Ley Foon Tan wrote:
> Change to use reset DM function and remove unused
> socfpga_reset_deassert_noc_ddr_scheduler().
> 
> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
> ---
>  .../include/mach/reset_manager_arria10.h      |  1 -
>  arch/arm/mach-socfpga/reset_manager_arria10.c |  7 ------
>  drivers/ddr/altera/sdram_arria10.c            | 25 ++++++++++---------
>  3 files changed, 13 insertions(+), 20 deletions(-)
> 
> diff --git a/arch/arm/mach-socfpga/include/mach/reset_manager_arria10.h b/arch/arm/mach-socfpga/include/mach/reset_manager_arria10.h
> index 22e4eb33de88..a0fad7c1e2fc 100644
> --- a/arch/arm/mach-socfpga/include/mach/reset_manager_arria10.h
> +++ b/arch/arm/mach-socfpga/include/mach/reset_manager_arria10.h
> @@ -9,7 +9,6 @@
>  #include <dt-bindings/reset/altr,rst-mgr-a10.h>
>  
>  void socfpga_watchdog_disable(void);
> -void socfpga_reset_deassert_noc_ddr_scheduler(void);
>  int socfpga_reset_deassert_bridges_handoff(void);
>  void socfpga_reset_deassert_osc1wd0(void);
>  int socfpga_bridges_reset(void);
> diff --git a/arch/arm/mach-socfpga/reset_manager_arria10.c b/arch/arm/mach-socfpga/reset_manager_arria10.c
> index aa5299415a74..edfe250ec0bc 100644
> --- a/arch/arm/mach-socfpga/reset_manager_arria10.c
> +++ b/arch/arm/mach-socfpga/reset_manager_arria10.c
> @@ -62,13 +62,6 @@ void socfpga_watchdog_disable(void)
>  		     ALT_RSTMGR_PER1MODRST_WD0_SET_MSK);
>  }
>  
> -/* Release NOC ddr scheduler from reset */
> -void socfpga_reset_deassert_noc_ddr_scheduler(void)
> -{
> -	clrbits_le32(socfpga_get_rstmgr_addr() + RSTMGR_A10_BRGMODRST,
> -		     ALT_RSTMGR_BRGMODRST_DDRSCH_SET_MSK);
> -}
> -
>  static int get_bridge_init_val(const void *blob, int compat_id)
>  {
>  	int node;
> diff --git a/drivers/ddr/altera/sdram_arria10.c b/drivers/ddr/altera/sdram_arria10.c
> index a31d45a5bb8e..794c13acfa93 100644
> --- a/drivers/ddr/altera/sdram_arria10.c
> +++ b/drivers/ddr/altera/sdram_arria10.c
> @@ -10,19 +10,21 @@
>  #include <fdtdec.h>
>  #include <malloc.h>
>  #include <ram.h>
> +#include <reset.h>
>  #include <wait_bit.h>
>  #include <watchdog.h>
>  #include <asm/io.h>
>  #include <asm/arch/fpga_manager.h>
>  #include <asm/arch/misc.h>
> -#include <asm/arch/reset_manager.h>
>  #include <asm/arch/sdram.h>
> +#include <dm/device_compat.h>
>  #include <linux/kernel.h>
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
>  struct altera_sdram_priv {
>  	struct ram_info info;
> +	struct reset_ctl_bulk resets;
>  };
>  
>  struct altera_sdram_platdata {
> @@ -152,7 +154,7 @@ static int emif_reset(struct altera_sdram_platdata *plat)
>  	return 0;
>  }
>  
> -static int ddr_setup(struct altera_sdram_platdata *plat)
> +static int sdram_startup(struct altera_sdram_platdata *plat)
>  {
>  	int i, ret;
>  
> @@ -198,16 +200,6 @@ static void sdram_init_ecc_bits(u32 size)
>  	dcache_disable();
>  }
>  
> -/* Function to startup the SDRAM*/
> -static int sdram_startup(struct altera_sdram_platdata *plat)
> -{
> -	/* Release NOC ddr scheduler from reset */
> -	socfpga_reset_deassert_noc_ddr_scheduler();
> -
> -	/* Bringup the DDR (calibration and configuration) */
> -	return ddr_setup(plat);
> -}
> -
>  static u64 sdram_size_calc(struct altera_sdram_platdata *plat)
>  {
>  	u32 dramaddrw = readl(plat->iohmc + DRAMADDRW);
> @@ -703,8 +695,17 @@ static int altera_sdram_ofdata_to_platdata(struct udevice *dev)
>  
>  static int altera_sdram_probe(struct udevice *dev)
>  {
> +	int ret;
>  	struct altera_sdram_priv *priv = dev_get_priv(dev);
>  
> +	ret = reset_get_bulk(dev, &priv->resets);
> +	if (ret) {
> +		dev_err(dev, "Can't get reset: %d\n", ret);
> +		return -ENODEV;
> +	}
> +
> +	reset_deassert_bulk(&priv->resets);
> +
>  	if (ddr_calibration_sequence(dev->platdata) != 0) {
>  		puts("SDRAM init failed.\n");
>  		goto failed;
> 

I think you need to re-assert the reset in the failed: fail path.

  reply	other threads:[~2020-04-15 12:43 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-15  9:00 [PATCH 0/7] ddr: altera: arria10: Convert SDRAM driver to DM Ley Foon Tan
2020-04-15  9:00 ` [PATCH 1/7] ddr: altera: arria10: Fix incorrect address for mpu1 Ley Foon Tan
2020-04-15 12:37   ` Marek Vasut
2020-04-16  1:23     ` Tan, Ley Foon
2020-04-15  9:00 ` [PATCH 2/7] ddr: altera: arria10: Move SDRAM driver to DM Ley Foon Tan
2020-04-15 12:42   ` Marek Vasut
2020-04-16  1:41     ` Tan, Ley Foon
2020-04-16  8:51       ` Marek Vasut
2020-04-15  9:00 ` [PATCH 3/7] ddr: altera: arria10: Change to use reset DM function Ley Foon Tan
2020-04-15 12:43   ` Marek Vasut [this message]
2020-04-16  1:42     ` Tan, Ley Foon
2020-04-15  9:00 ` [PATCH 4/7] arm: socfpga: arria10: Move sdram_arria10.h to drivers/ddr/altera Ley Foon Tan
2020-04-15  9:00 ` [PATCH 5/7] ddr: altera: arria10: Add RAM size check Ley Foon Tan
2020-04-15 12:44   ` Marek Vasut
2020-04-16  1:34     ` Tan, Ley Foon
2020-04-16  8:52       ` Marek Vasut
2020-04-16  9:18         ` Tan, Ley Foon
2020-04-15  9:00 ` [PATCH 6/7] ddr: altera: arria10: Change %i to %u for printf Ley Foon Tan
2020-04-15 12:45   ` Marek Vasut
2020-04-15 14:56     ` Tom Rini
2020-04-15 14:58       ` Marek Vasut
2020-04-15 15:14         ` Tom Rini
2020-04-15 15:16           ` Marek Vasut
2020-04-15 17:44             ` Tom Rini
2020-04-15 18:06               ` Marek Vasut
2020-04-16 12:55                 ` Tom Rini
2020-04-16 13:11                   ` Marek Vasut
2020-04-16 13:21                     ` Tom Rini
2020-04-16 13:39                       ` Marek Vasut
2020-04-16 18:02                         ` Tom Rini
2020-04-16 19:33                           ` Marek Vasut
2020-04-15  9:00 ` [PATCH 7/7] ddr: altera: arria10: Remove call to dram_init_banksize() Ley Foon Tan

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=a96dc378-4fbb-81c9-9aba-e4e20bc68152@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.