From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 03/10] ARM: socfpga: arria10: add reset manager for Arria10
Date: Thu, 19 Nov 2015 23:35:02 +0100 [thread overview]
Message-ID: <201511192335.02514.marex@denx.de> (raw)
In-Reply-To: <1447968947-8395-4-git-send-email-dinguyen@opensource.altera.com>
On Thursday, November 19, 2015 at 10:35:40 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>
> ---
> arch/arm/mach-socfpga/arria10/reset_manager_a10.c | 83 +++++++++++
> .../mach-socfpga/include/mach/reset_manager_a10.h | 162
> +++++++++++++++++++++ 2 files changed, 245 insertions(+)
> create mode 100644 arch/arm/mach-socfpga/arria10/reset_manager_a10.c
> create mode 100644 arch/arm/mach-socfpga/include/mach/reset_manager_a10.h
>
> diff --git a/arch/arm/mach-socfpga/arria10/reset_manager_a10.c
> b/arch/arm/mach-socfpga/arria10/reset_manager_a10.c new file mode 100644
> index 0000000..e2d315a
> --- /dev/null
> +++ b/arch/arm/mach-socfpga/arria10/reset_manager_a10.c
> @@ -0,0 +1,83 @@
> +/*
> + * Copyright (C) 2014 Altera Corporation <www.altera.com>
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <asm/io.h>
> +#include <asm/arch/reset_manager_a10.h>
> +#include <asm/arch/system_manager_a10.h>
> +#include <fdtdec.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
This whole file looks pretty similar to the CV/AV reset manager, can't we
just merge those two into a single file ?
btw. I dont think you need the DECLARE_GLOBAL_DATA_PTR here.
> +static const struct socfpga_reset_manager *reset_manager_base =
> + (void *)SOCFPGA_RSTMGR_ADDRESS;
> +
[...]
> +#define ALT_RSTMGR_BRGMODRST_H2F_SET_MSK 0x00000001
> +#define ALT_RSTMGR_BRGMODRST_LWH2F_SET_MSK 0x00000002
> +#define ALT_RSTMGR_BRGMODRST_F2H_SET_MSK 0x00000004
> +#define ALT_RSTMGR_BRGMODRST_F2SSDRAM0_SET_MSK 0x00000008
> +#define ALT_RSTMGR_BRGMODRST_F2SSDRAM1_SET_MSK 0x00000010
> +#define ALT_RSTMGR_BRGMODRST_F2SSDRAM2_SET_MSK 0x00000020
> +#define ALT_RSTMGR_BRGMODRST_DDRSCH_SET_MSK 0x00000040
All these are probably just bits, so please use 1 << n here.
> +#define ALT_RSTMGR_HDSKEN_SDRSELFREFEN_SET_MSK 0x00000001
> +#define ALT_RSTMGR_HDSKEN_FPGAMGRHSEN_SET_MSK 0x00000002
> +#define ALT_RSTMGR_HDSKEN_FPGAHSEN_SET_MSK 0x00000004
> +#define ALT_RSTMGR_HDSKEN_ETRSTALLEN_SET_MSK 0x00000008
> +
> +/*
> + * Define a reset identifier, from which a permodrst bank ID
> + * and reset ID can be extracted using the subsequent macros
> + * RSTMGR_RESET() and RSTMGR_BANK().
> + */
> +#define RSTMGR_BANK_OFFSET 8
> +#define RSTMGR_BANK_MASK 0x7
> +#define RSTMGR_RESET_OFFSET 0
> +#define RSTMGR_RESET_MASK 0x1f
> +#define RSTMGR_DEFINE(_bank, _offset) \
> + ((_bank) << RSTMGR_BANK_OFFSET) | ((_offset) << RSTMGR_RESET_OFFSET)
> +
> +/* Extract reset ID from the reset identifier. */
> +#define RSTMGR_RESET(_reset) \
> + (((_reset) >> RSTMGR_RESET_OFFSET) & RSTMGR_RESET_MASK)
> +
> +/* Extract bank ID from the reset identifier. */
> +#define RSTMGR_BANK(_reset) \
> +(((_reset) >> RSTMGR_BANK_OFFSET) & RSTMGR_BANK_MASK)
> +
> +/*
> + * SocFPGA Cyclone V/Arria V reset IDs, bank mapping is as follows:
Oh yeah ? Looks arria10-ish to me :-)
> + * 0 ... mpumodrst
> + * 1 ... per0modrst
> + * 2 ... per1modrst
> + * 3 ... brgmodrst
> + * 4 ... sysmodrst
> + */
> +#define RSTMGR_EMAC0 RSTMGR_DEFINE(1, 0)
> +#define RSTMGR_EMAC1 RSTMGR_DEFINE(1, 1)
> +#define RSTMGR_EMAC2 RSTMGR_DEFINE(1, 2)
> +#define RSTMGR_WD0 RSTMGR_DEFINE(2, 0)
> +#define RSTMGR_WD1 RSTMGR_DEFINE(2, 1)
> +#define RSTMGR_L4SYSTIMER0 RSTMGR_DEFINE(2, 2)
> +#define RSTMGR_L4SYSTIMER1 RSTMGR_DEFINE(2, 3)
> +#define RSTMGR_SPTIMER0 RSTMGR_DEFINE(2, 4)
> +#define RSTMGR_SPTIMER1 RSTMGR_DEFINE(2, 5)
> +#define RSTMGR_UART0 RSTMGR_DEFINE(2, 16)
> +#define RSTMGR_UART1 RSTMGR_DEFINE(2, 17)
> +#define RSTMGR_SPIM0 RSTMGR_DEFINE(1, 17)
> +#define RSTMGR_SPIM1 RSTMGR_DEFINE(1, 18)
> +#define RSTMGR_QSPI RSTMGR_DEFINE(1, 6)
> +#define RSTMGR_SDMMC RSTMGR_DEFINE(1, 7)
> +#define RSTMGR_DMA RSTMGR_DEFINE(1, 16)
> +#define RSTMGR_DDRSCH RSTMGR_DEFINE(3, 6)
> +
> +/* Create a human-readable reference to SoCFPGA reset. */
> +#define SOCFPGA_RESET(_name) RSTMGR_##_name
> +
> +#endif /* _SOCFPGA_RESET_MANAGER_A10_H_ */
next prev parent reply other threads:[~2015-11-19 22:35 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-19 21:35 [U-Boot] [PATCH 00/10] ARM: socfpga: Add minimal support for Arria10 dinguyen at opensource.altera.com
2015-11-19 21:35 ` [U-Boot] [PATCH 01/10] ARM: socfpga: arria10: add base address map " dinguyen at opensource.altera.com
2015-11-19 22:26 ` Marek Vasut
2015-11-23 23:16 ` Dinh Nguyen
2015-11-19 21:35 ` [U-Boot] [PATCH 02/10] ARM: socfpga: arria10: add system manager defines dinguyen at opensource.altera.com
2015-11-19 22:27 ` Marek Vasut
2015-11-19 21:35 ` [U-Boot] [PATCH 03/10] ARM: socfpga: arria10: add reset manager for Arria10 dinguyen at opensource.altera.com
2015-11-19 22:35 ` Marek Vasut [this message]
2015-11-19 21:35 ` [U-Boot] [PATCH 04/10] ARM: socfpga: arria10: add stub sdram init " dinguyen at opensource.altera.com
2015-11-23 12:25 ` Pavel Machek
2015-11-23 12:57 ` Marek Vasut
2015-11-19 21:35 ` [U-Boot] [PATCH 05/10] ARM: socfpga: arria10: add misc functions " dinguyen at opensource.altera.com
2015-11-19 22:37 ` Marek Vasut
2015-11-19 21:35 ` [U-Boot] [PATCH 06/10] ARM: socfpga: arria10: add socfpga_arria10_socdk config dinguyen at opensource.altera.com
2015-11-19 22:43 ` Marek Vasut
2015-11-19 21:35 ` [U-Boot] [PATCH 07/10] ARM: socfpga: arria10: add board files for the Arria10 SoCDK dinguyen at opensource.altera.com
2015-11-23 12:43 ` Pavel Machek
2015-11-19 21:35 ` [U-Boot] [PATCH 08/10] ARM: socfpga: arria10: add socfpga_arria10_defconfig dinguyen at opensource.altera.com
2015-11-19 21:35 ` [U-Boot] [PATCH 09/10] ARM: socfpga: arria10: add config option build for arria10 dinguyen at opensource.altera.com
2015-11-19 21:35 ` [U-Boot] [PATCH 10/10] ARM: socfpga: arria10: add support for building Arria10 dinguyen at opensource.altera.com
2015-11-19 22:45 ` Marek Vasut
2015-11-19 23:28 ` Dinh Nguyen
2015-11-20 12:49 ` Marek Vasut
2015-11-23 14:36 ` Dinh Nguyen
2015-11-23 15:38 ` Marek Vasut
2015-11-23 22:32 ` Dinh Nguyen
2015-11-23 22:46 ` Marek Vasut
2015-11-23 22:50 ` Dinh Nguyen
2015-11-23 23:03 ` Marek Vasut
2015-11-23 23:04 ` Dinh Nguyen
2015-11-23 23:20 ` Marek Vasut
2015-11-23 23:25 ` Dinh Nguyen
2015-11-24 3:17 ` Chin Liang See
2015-11-24 9:31 ` Marek Vasut
2015-11-24 12:29 ` Heiko Schocher
2015-11-24 9:33 ` Chin Liang See
2015-11-24 13:22 ` Chin Liang See
2015-11-24 13:31 ` Pavel Machek
2015-11-24 13:36 ` Chin Liang See
2015-11-24 13:52 ` Marek Vasut
2015-11-24 14:01 ` Pavel Machek
2015-11-24 15:09 ` Marek Vasut
2015-11-24 13:34 ` Chin Liang See
2015-11-24 13:53 ` Marek Vasut
2015-11-23 12:51 ` Pavel Machek
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=201511192335.02514.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox