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] [PATCHv3 3/9] arm: socfpga: arria10: add reset manager for Arria10
Date: Wed, 2 Dec 2015 15:17:17 +0100	[thread overview]
Message-ID: <201512021517.17815.marex@denx.de> (raw)
In-Reply-To: <1449036776-14854-4-git-send-email-dinguyen@opensource.altera.com>

On Wednesday, December 02, 2015 at 07:12:50 AM, dinguyen at opensource.altera.com 
wrote:
> From: Dinh Nguyen <dinguyen@opensource.altera.com>
> 
> Add the defines for the reset manager and some basic reset functionality.
> 
> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
> ---
> v3: remove duplicate reset function
>     use CONFIG_SOCFPGA_GEN5
> v2: integrate into a5/c5 reset manager

[...]

> @@ -26,13 +28,25 @@ void socfpga_per_reset(u32 reset, int set)
>  	if (RSTMGR_BANK(reset) == 0)
>  		reg = &reset_manager_base->mpu_mod_reset;
>  	else if (RSTMGR_BANK(reset) == 1)
> +#if defined(CONFIG_SOCFPGA_GEN5)
>  		reg = &reset_manager_base->per_mod_reset;
> +#else
> +		reg = &reset_manager_base->per0_mod_reset;
> +#endif

The other option would be to just rename these registers for in
struct socfpga_reset_manager {} and you won't need those ifdefs.

>  	else if (RSTMGR_BANK(reset) == 2)
> +#if defined(CONFIG_SOCFPGA_GEN5)
>  		reg = &reset_manager_base->per2_mod_reset;
> +#else
> +		reg = &reset_manager_base->per1_mod_reset;
> +#endif

Same here.

>  	else if (RSTMGR_BANK(reset) == 3)
>  		reg = &reset_manager_base->brg_mod_reset;
>  	else if (RSTMGR_BANK(reset) == 4)
> +#if defined(CONFIG_SOCFPGA_GEN5)
>  		reg = &reset_manager_base->misc_mod_reset;
> +#else
> +		reg = &reset_manager_base->sys_mod_reset;
> +#endif

I'd just add a comment that misc_mod_reset is sys_mod_reset on gen10 and
also rename it.

>  	else	/* Invalid reset register, do nothing */
>  		return;
> 
> @@ -46,13 +60,29 @@ void socfpga_per_reset(u32 reset, int set)
>   * Assert reset on every peripheral but L4WD0.
>   * Watchdog must be kept intact to prevent glitches
>   * and/or hangs.
> + * For the Arria10, we disable all the peripherals except L4 watchdog0,
> + * L4 Timer 0, and ECC.
>   */
>  void socfpga_per_reset_all(void)
>  {
> +#if defined(CONFIG_SOCFPGA_GEN5)
>  	const u32 l4wd0 = 1 << RSTMGR_RESET(SOCFPGA_RESET(L4WD0));
> 
>  	writel(~l4wd0, &reset_manager_base->per_mod_reset);
>  	writel(0xffffffff, &reset_manager_base->per2_mod_reset);
> +#else
> +	const u32 l4wd0 = (1 << RSTMGR_RESET(SOCFPGA_RESET(WD0)) |
> +			(1 << RSTMGR_RESET(SOCFPGA_RESET(L4SYSTIMER0))));
> +
> +	unsigned mask_ecc_ocp = 0x0000FF00;
> +
> +	/* disable all components except ECC_OCP, L4 Timer0 and L4 WD0 */
> +	writel(~l4wd0, &reset_manager_base->per1_mod_reset);
> +	setbits_le32(&reset_manager_base->per0_mod_reset, ~mask_ecc_ocp);
> +
> +	/* Finally disable the ECC_OCP */
> +	setbits_le32(&reset_manager_base->per0_mod_reset, mask_ecc_ocp);
> +#endif
>  }
> 
>  /*

[...]

  reply	other threads:[~2015-12-02 14:17 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-02  6:12 [U-Boot] [PATCHv3 0/9] ARM: socfpga: Add minimal support for Arria10 dinguyen at opensource.altera.com
2015-12-02  6:12 ` [U-Boot] [PATCHv3 1/9] arm: socfpga: introduce SOCFPGA_GEN5 config property dinguyen at opensource.altera.com
2015-12-02 14:12   ` Marek Vasut
2015-12-02 15:53     ` Dinh Nguyen
2015-12-02  6:12 ` [U-Boot] [PATCHv3 2/9] arm: socfpga: arria10: add system manager defines dinguyen at opensource.altera.com
2015-12-02  6:12 ` [U-Boot] [PATCHv3 3/9] arm: socfpga: arria10: add reset manager for Arria10 dinguyen at opensource.altera.com
2015-12-02 14:17   ` Marek Vasut [this message]
2015-12-02  6:12 ` [U-Boot] [PATCHv3 4/9] arm: socfpga: arria10: add misc functions " dinguyen at opensource.altera.com
2015-12-02 14:18   ` Marek Vasut
2015-12-02  6:12 ` [U-Boot] [PATCHv3 5/9] arm: socfpga: arria10: add socfpga_arria10_socdk config dinguyen at opensource.altera.com
2015-12-02 14:19   ` Marek Vasut
2015-12-02  6:12 ` [U-Boot] [PATCHv3 6/9] arm: socfpga: arria10: add socfpga_arria10_defconfig dinguyen at opensource.altera.com
2015-12-02 14:19   ` Marek Vasut
2015-12-02  6:12 ` [U-Boot] [PATCHv3 7/9] arm: socfpga: arria10: add config option build for arria10 dinguyen at opensource.altera.com
2015-12-02 14:20   ` Marek Vasut
2015-12-02  6:12 ` [U-Boot] [PATCHv3 8/9] arm: socfpga: remove building scan manager dinguyen at opensource.altera.com
2015-12-02 14:20   ` Marek Vasut
2015-12-02  6:12 ` [U-Boot] [PATCHv3 9/9] arm: socfpga: fix up a questionable macro for SDMMC dinguyen at opensource.altera.com
2015-12-02 14:23   ` Marek Vasut

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=201512021517.17815.marex@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.