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 1/3] arm: socfpga: Convert reset manager from struct to defines
Date: Tue, 20 Aug 2019 11:37:27 +0200	[thread overview]
Message-ID: <dac2fd4e-42dc-e271-aac2-eda8fdbdbcd2@denx.de> (raw)
In-Reply-To: <1566268505-2508-2-git-send-email-ley.foon.tan@intel.com>

On 8/20/19 4:35 AM, Ley Foon Tan wrote:
> Convert reset manager for Gen5, Arria 10 and Stratix 10 from struct
> to defines.
> No functional change.
> 
> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
> ---
>  .../mach-socfpga/include/mach/reset_manager.h | 12 +++++
>  .../include/mach/reset_manager_arria10.h      | 41 +++-------------
>  .../include/mach/reset_manager_gen5.h         | 20 +++-----
>  .../include/mach/reset_manager_s10.h          | 33 ++-----------
>  arch/arm/mach-socfpga/misc_gen5.c             |  6 +--
>  arch/arm/mach-socfpga/reset_manager_arria10.c | 49 +++++++++----------
>  arch/arm/mach-socfpga/reset_manager_gen5.c    | 26 +++++-----
>  arch/arm/mach-socfpga/reset_manager_s10.c     | 35 ++++++-------
>  drivers/sysreset/sysreset_socfpga.c           |  6 +--
>  9 files changed, 86 insertions(+), 142 deletions(-)
> 
> diff --git a/arch/arm/mach-socfpga/include/mach/reset_manager.h b/arch/arm/mach-socfpga/include/mach/reset_manager.h
> index 6ad037e325..c460e89d22 100644
> --- a/arch/arm/mach-socfpga/include/mach/reset_manager.h
> +++ b/arch/arm/mach-socfpga/include/mach/reset_manager.h
> @@ -6,6 +6,18 @@
>  #ifndef _RESET_MANAGER_H_
>  #define _RESET_MANAGER_H_
>  
> +#define RSTMGR_READL(reg)			\
> +	readl(SOCFPGA_RSTMGR_ADDRESS + (reg))
> +
> +#define RSTMGR_WRITEL(data, reg)		\
> +	writel(data, SOCFPGA_RSTMGR_ADDRESS + (reg))
> +
> +#define RSTMGR_CLRBITS(reg, mask)		\
> +	clrbits_le32(SOCFPGA_RSTMGR_ADDRESS + (reg), mask)
> +
> +#define RSTMGR_SETBITS(reg, mask)		\
> +	setbits_le32(SOCFPGA_RSTMGR_ADDRESS + (reg), mask)
> +

No, don't introduce such macros. Use readl()/writel()/... in the driver.
The address should come from DT. Besides, there is no type checking in
such macros.

>  void reset_cpu(ulong addr);
>  
>  void socfpga_per_reset(u32 reset, int set);
> 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 6623ebee65..8b72f41498 100644
> --- a/arch/arm/mach-socfpga/include/mach/reset_manager_arria10.h
> +++ b/arch/arm/mach-socfpga/include/mach/reset_manager_arria10.h
> @@ -14,40 +14,13 @@ int socfpga_reset_deassert_bridges_handoff(void);
>  void socfpga_reset_deassert_osc1wd0(void);
>  int socfpga_bridges_reset(void);
>  
> -struct socfpga_reset_manager {
> -	u32	stat;
> -	u32	ramstat;
> -	u32	miscstat;
> -	u32	ctrl;
> -	u32	hdsken;
> -	u32	hdskreq;
> -	u32	hdskack;
> -	u32	counts;
> -	u32	mpumodrst;
> -	u32	per0modrst;
> -	u32	per1modrst;
> -	u32	brgmodrst;
> -	u32	sysmodrst;
> -	u32	coldmodrst;
> -	u32	nrstmodrst;
> -	u32	dbgmodrst;
> -	u32	mpuwarmmask;
> -	u32	per0warmmask;
> -	u32	per1warmmask;
> -	u32	brgwarmmask;
> -	u32	syswarmmask;
> -	u32	nrstwarmmask;
> -	u32	l3warmmask;
> -	u32	tststa;
> -	u32	tstscratch;
> -	u32	hdsktimeout;
> -	u32	hmcintr;
> -	u32	hmcintren;
> -	u32	hmcintrens;
> -	u32	hmcintrenr;
> -	u32	hmcgpout;
> -	u32	hmcgpin;
> -};
> +#define RSTMGR_STATUS		0
> +#define RSTMGR_CTRL		0xc
> +#define RSTMGR_MPUMODRST	0x20
> +#define RSTMGR_PER0MODRST	0x24
> +#define RSTMGR_PER1MODRST	0x28
> +#define RSTMGR_BRGMODRST	0x2c
> +#define RSTMGR_SYSMODRST	0x30

It would be much better to have some SOCFPGA_ prefix here, to clearly
identify those macros. Also, you are missing quite a few registers.

[...]

  reply	other threads:[~2019-08-20  9:37 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-20  2:35 [U-Boot] [PATCH 0/3] arm: socfpga: Convert drivers from struct to defines Ley Foon Tan
2019-08-20  2:35 ` [U-Boot] [PATCH 1/3] arm: socfpga: Convert reset manager " Ley Foon Tan
2019-08-20  9:37   ` Marek Vasut [this message]
2019-08-20  9:55     ` Simon Goldschmidt
2019-08-20 10:15       ` Marek Vasut
2019-08-20 10:29         ` Simon Goldschmidt
2019-08-20 11:24           ` Marek Vasut
2019-08-21  1:51             ` Ley Foon Tan
2019-08-21  1:50     ` Ley Foon Tan
2019-08-23  8:57       ` Ley Foon Tan
2019-08-23  9:22         ` Marek Vasut
2019-08-23  9:52           ` Ley Foon Tan
2019-08-23  9:56             ` Marek Vasut
2019-08-26  7:28               ` Ley Foon Tan
2019-08-26  8:50                 ` Marek Vasut
2019-08-26 10:58                   ` Simon Goldschmidt
2019-08-28  8:13               ` Ley Foon Tan
2019-08-28 11:14                 ` Marek Vasut
2019-08-28 13:03                   ` Simon Goldschmidt
2019-08-28 13:28                   ` Ley Foon Tan
2019-08-28 13:39                     ` Marek Vasut
2019-08-28 14:07                       ` Ley Foon Tan
2019-08-20  2:35 ` [U-Boot] [PATCH 2/3] arm: socfpga: Convert system " Ley Foon Tan
2019-08-20  2:35 ` [U-Boot] [PATCH 3/3] arm: socfpga: Convert clock " Ley Foon Tan
2019-08-20  8:33 ` [U-Boot] [PATCH 0/3] arm: socfpga: Convert drivers " Simon Goldschmidt

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=dac2fd4e-42dc-e271-aac2-eda8fdbdbcd2@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.