From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCHv2 2/9] arm: socfpga: arria10: add reset manager for Arria10
Date: Tue, 1 Dec 2015 19:51:39 +0100 [thread overview]
Message-ID: <201512011951.39290.marex@denx.de> (raw)
In-Reply-To: <1448988519-21669-3-git-send-email-dinguyen@opensource.altera.com>
On Tuesday, December 01, 2015 at 05:48:32 PM, 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>
> ---
> v2: integrate into a5/c5 reset manager
[...]
Hi!
> diff --git a/arch/arm/mach-socfpga/reset_manager.c
> b/arch/arm/mach-socfpga/reset_manager.c index b6beaa2..b955d39 100644
> --- a/arch/arm/mach-socfpga/reset_manager.c
> +++ b/arch/arm/mach-socfpga/reset_manager.c
> @@ -18,7 +18,51 @@ static const struct socfpga_reset_manager
> *reset_manager_base = static struct socfpga_system_manager *sysmgr_regs =
> (struct socfpga_system_manager *)SOCFPGA_SYSMGR_ADDRESS;
>
> -/* Assert or de-assert SoCFPGA reset manager reset. */
> +/*
> + * Assert or de-assert SoCFPGA reset manager reset.
> + */
> +#if defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
> +void socfpga_per_reset(u32 reset, int set)
> +{
> + const void *reg;
OK, Dinh, come on. I know you _can_ do better than this crap.
> + if (RSTMGR_BANK(reset) == 0)
> + reg = &reset_manager_base->mpu_mod_rst;
> + else if (RSTMGR_BANK(reset) == 1)
> + reg = &reset_manager_base->per0_mod_rst;
> + else if (RSTMGR_BANK(reset) == 2)
> + reg = &reset_manager_base->per1_mod_rst;
The only difference between gen5 and gen10 in this function is the register
naming. On gen5, these two registers are called per_mod_rst and per2_mod_rst,
while on gen10, they are called per0_mod_rst and per1_mod_rst . Do you really
think such a trivial change justifies introducing a whole new copy of this
function ?
> + else if (RSTMGR_BANK(reset) == 3)
> + reg = &reset_manager_base->brg_mod_rst;
> + else if (RSTMGR_BANK(reset) == 4)
> + reg = &reset_manager_base->sys_mod_rst;
> + else /* Invalid reset register, do nothing */
> + return;
> +
> + if (set)
> + setbits_le32(reg, 1 << RSTMGR_RESET(reset));
> + else
> + clrbits_le32(reg, 1 << RSTMGR_RESET(reset));
> +}
> +
> +/*
> + * Disable all the peripherals except L4 watchdog0 and L4 Timer 0.
> + */
> +void reset_assert_all_peripherals_except_l4wd0_l4timer0(void)
> +{
> + 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_rst);
> + setbits_le32(&reset_manager_base->per0_mod_rst, ~mask_ecc_ocp);
> +
> + /* Finally disable the ECC_OCP */
> + setbits_le32(&reset_manager_base->per0_mod_rst, mask_ecc_ocp);
> +}
> +#else
> void socfpga_per_reset(u32 reset, int set)
> {
> const void *reg;
> @@ -118,3 +162,4 @@ void socfpga_bridges_reset(int enable)
> }
> }
> #endif
> +#endif
next prev parent reply other threads:[~2015-12-01 18:51 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-01 16:48 [U-Boot] [PATCHv2 0/9] ARM: socfpga: Add minimal support for Arria10 dinguyen at opensource.altera.com
2015-12-01 16:48 ` [U-Boot] [PATCHv2 1/9] arm: socfpga: arria10: add system manager defines dinguyen at opensource.altera.com
2015-12-01 18:46 ` Marek Vasut
2015-12-01 22:56 ` Dinh Nguyen
2015-12-03 18:23 ` Pavel Machek
2015-12-01 16:48 ` [U-Boot] [PATCHv2 2/9] arm: socfpga: arria10: add reset manager for Arria10 dinguyen at opensource.altera.com
2015-12-01 18:51 ` Marek Vasut [this message]
2015-12-03 18:27 ` Pavel Machek
2015-12-01 16:48 ` [U-Boot] [PATCHv2 3/9] arm: socfpga: arria10: add sdram defines " dinguyen at opensource.altera.com
2015-12-01 18:52 ` Marek Vasut
2015-12-01 16:48 ` [U-Boot] [PATCHv2 4/9] arm: socfpga: arria10: add misc functions " dinguyen at opensource.altera.com
2015-12-01 18:56 ` Marek Vasut
2015-12-02 5:29 ` Dinh Nguyen
2015-12-02 14:29 ` Marek Vasut
2015-12-03 18:35 ` Pavel Machek
2015-12-03 20:34 ` Marek Vasut
2015-12-01 16:48 ` [U-Boot] [PATCHv2 5/9] arm: socfpga: arria10: add socfpga_arria10_socdk config dinguyen at opensource.altera.com
2015-12-01 19:02 ` Marek Vasut
2015-12-01 16:48 ` [U-Boot] [PATCHv2 6/9] arm: socfpga: arria10: add board files for the Arria10 SoCDK dinguyen at opensource.altera.com
2015-12-01 19:03 ` Marek Vasut
2015-12-01 16:48 ` [U-Boot] [PATCHv2 7/9] arm: socfpga: arria10: add socfpga_arria10_defconfig dinguyen at opensource.altera.com
2015-12-01 19:04 ` Marek Vasut
2015-12-01 16:48 ` [U-Boot] [PATCHv2 8/9] arm: socfpga: arria10: add config option build for arria10 dinguyen at opensource.altera.com
2015-12-01 16:48 ` [U-Boot] [PATCHv2 9/9] arm: socfpga: remove building scan manager dinguyen at opensource.altera.com
2015-12-01 19:05 ` 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=201512011951.39290.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.