From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 4/4] imx-common: consolidate macros and prototypes into sys_proto.h
Date: Wed, 12 Aug 2015 17:49:15 +0200 [thread overview]
Message-ID: <55CB6AFB.8060502@denx.de> (raw)
In-Reply-To: <1439211227-28030-4-git-send-email-Peng.Fan@freescale.com>
Hi Peng,
On 10/08/2015 14:53, Peng Fan wrote:
> Move most macro definitions and prototypes into
> "arch/arm/include/asm/imx-common/sys_proto.h" to avoid duplicated
> function prototypes and marco definitions for different i.MX SoCs.
>
> This patch do not remove the sys_proto.h for different i.MX SoCs,
> because we need to modify lots of driver code and others. This patch
> remove duplicated macros and prototypes and incude "sys_proto.h"
> of imx-common for each sys_proto.h of different i.MX platforms.
> Then later we should avoid add stuff in sys_proto.h of each platform,
> and modify driver to include common sys_proto.h.
>
> Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
> arch/arm/include/asm/arch-mx31/sys_proto.h | 7 ++---
> arch/arm/include/asm/arch-mx35/sys_proto.h | 12 ++++----
> arch/arm/include/asm/arch-mx5/sys_proto.h | 22 +-------------
> arch/arm/include/asm/arch-mx6/sys_proto.h | 45 +----------------------------
> arch/arm/include/asm/arch-mxs/sys_proto.h | 15 ++--------
> arch/arm/include/asm/imx-common/sys_proto.h | 45 +++++++++++++++++++++++++++++
> 6 files changed, 59 insertions(+), 87 deletions(-)
> create mode 100644 arch/arm/include/asm/imx-common/sys_proto.h
>
This breaks MX35 boards:
+In file included from include/asm/arch/sys_proto.h:11:0,
+ from arch/arm/cpu/arm1136/mx35/mx35_sdram.c:11:
+arch/arm/include/asm/imx-common/sys_proto.h:38:23: error: unknown type
name 'bd_t'
Reason is:
int fecmxc_initialize(bd_t *bis);
Can you check and resubmit ? Thanks !
> diff --git a/arch/arm/include/asm/arch-mx31/sys_proto.h b/arch/arm/include/asm/arch-mx31/sys_proto.h
> index 1626442..674b25c 100644
> --- a/arch/arm/include/asm/arch-mx31/sys_proto.h
> +++ b/arch/arm/include/asm/arch-mx31/sys_proto.h
> @@ -5,10 +5,10 @@
> * SPDX-License-Identifier: GPL-2.0+
> */
>
> -#ifndef _SYS_PROTO_H_
> -#define _SYS_PROTO_H_
> +#ifndef _MX31_SYS_PROTO_H_
> +#define _MX31_SYS_PROTO_H_
>
> -#include "../arch-imx/cpu.h"
> +#include <asm/imx-common/sys_proto.h>
>
> struct mxc_weimcs {
> u32 upper;
> @@ -18,5 +18,4 @@ struct mxc_weimcs {
>
> void mxc_setup_weimcs(int cs, const struct mxc_weimcs *weimcs);
> int mxc_mmc_init(bd_t *bis);
> -u32 get_cpu_rev(void);
> #endif
> diff --git a/arch/arm/include/asm/arch-mx35/sys_proto.h b/arch/arm/include/asm/arch-mx35/sys_proto.h
> index 35c0352..0979fda 100644
> --- a/arch/arm/include/asm/arch-mx35/sys_proto.h
> +++ b/arch/arm/include/asm/arch-mx35/sys_proto.h
> @@ -5,12 +5,12 @@
> * SPDX-License-Identifier: GPL-2.0+
> */
>
> -#ifndef _SYS_PROTO_H_
> -#define _SYS_PROTO_H_
> +#ifndef _MX35_SYS_PROTO_H_
> +#define _MX35_SYS_PROTO_H_
>
> -u32 get_cpu_rev(void);
> -void mx3_setup_sdram_bank(u32 start_address, u32 ddr2_config,
> - u32 row, u32 col, u32 dsize, u32 refresh);
> -#define is_soc_rev(rev) ((get_cpu_rev() & 0xFF) - rev)
> +#include <asm/imx-common/sys_proto.h>
> +
> +void mx3_setup_sdram_bank(u32 start_address, u32 ddr2_config, u32 row,
> + u32 col, u32 dsize, u32 refresh);
>
> #endif
> diff --git a/arch/arm/include/asm/arch-mx5/sys_proto.h b/arch/arm/include/asm/arch-mx5/sys_proto.h
> index b06c77f..16c9b76 100644
> --- a/arch/arm/include/asm/arch-mx5/sys_proto.h
> +++ b/arch/arm/include/asm/arch-mx5/sys_proto.h
> @@ -5,24 +5,4 @@
> * SPDX-License-Identifier: GPL-2.0+
> */
>
> -#ifndef _SYS_PROTO_H_
> -#define _SYS_PROTO_H_
> -
> -#include "../arch-imx/cpu.h"
> -
> -#define is_soc_rev(rev) ((get_cpu_rev() & 0xFF) - rev)
> -u32 get_cpu_rev(void);
> -unsigned imx_ddr_size(void);
> -void sdelay(unsigned long);
> -void set_chipselect_size(int const);
> -
> -/*
> - * Initializes on-chip ethernet controllers.
> - * to override, implement board_eth_init()
> - */
> -
> -int fecmxc_initialize(bd_t *bis);
> -u32 get_ahb_clk(void);
> -u32 get_periph_clk(void);
> -
> -#endif
> +#include <asm/imx-common/sys_proto.h>
> diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h b/arch/arm/include/asm/arch-mx6/sys_proto.h
> index eee8ca8..16c9b76 100644
> --- a/arch/arm/include/asm/arch-mx6/sys_proto.h
> +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h
> @@ -5,47 +5,4 @@
> * SPDX-License-Identifier: GPL-2.0+
> */
>
> -#ifndef _SYS_PROTO_H_
> -#define _SYS_PROTO_H_
> -
> -#include <asm/imx-common/regs-common.h>
> -#include "../arch-imx/cpu.h"
> -
> -#define soc_rev() (get_cpu_rev() & 0xFF)
> -#define is_soc_rev(rev) (soc_rev() == rev)
> -
> -u32 get_nr_cpus(void);
> -u32 get_cpu_rev(void);
> -u32 get_cpu_speed_grade_hz(void);
> -u32 get_cpu_temp_grade(int *minc, int *maxc);
> -
> -/* returns MXC_CPU_ value */
> -#define cpu_type(rev) (((rev) >> 12) & 0xff)
> -
> -/* both macros return/take MXC_CPU_ constants */
> -#define get_cpu_type() (cpu_type(get_cpu_rev()))
> -#define is_cpu_type(cpu) (get_cpu_type() == cpu)
> -
> -const char *get_imx_type(u32 imxtype);
> -unsigned imx_ddr_size(void);
> -void set_chipselect_size(int const);
> -
> -#define is_mx6dqp() (is_cpu_type(MXC_CPU_MX6QP) || is_cpu_type(MXC_CPU_MX6DP))
> -
> -/*
> - * Initializes on-chip ethernet controllers.
> - * to override, implement board_eth_init()
> - */
> -
> -int fecmxc_initialize(bd_t *bis);
> -u32 get_ahb_clk(void);
> -u32 get_periph_clk(void);
> -
> -int mxs_reset_block(struct mxs_register_32 *reg);
> -int mxs_wait_mask_set(struct mxs_register_32 *reg,
> - uint32_t mask,
> - unsigned int timeout);
> -int mxs_wait_mask_clr(struct mxs_register_32 *reg,
> - uint32_t mask,
> - unsigned int timeout);
> -#endif
> +#include <asm/imx-common/sys_proto.h>
> diff --git a/arch/arm/include/asm/arch-mxs/sys_proto.h b/arch/arm/include/asm/arch-mxs/sys_proto.h
> index d6e9fdb..20ff101 100644
> --- a/arch/arm/include/asm/arch-mxs/sys_proto.h
> +++ b/arch/arm/include/asm/arch-mxs/sys_proto.h
> @@ -7,19 +7,10 @@
> * SPDX-License-Identifier: GPL-2.0+
> */
>
> -#ifndef __SYS_PROTO_H__
> -#define __SYS_PROTO_H__
> +#ifndef __MXS_SYS_PROTO_H__
> +#define __MXS_SYS_PROTO_H__
>
> -#include <asm/imx-common/regs-common.h>
> -#include <../arch-imx/cpu.h>
> -
> -int mxs_reset_block(struct mxs_register_32 *reg);
> -int mxs_wait_mask_set(struct mxs_register_32 *reg,
> - uint32_t mask,
> - unsigned int timeout);
> -int mxs_wait_mask_clr(struct mxs_register_32 *reg,
> - uint32_t mask,
> - unsigned int timeout);
> +#include <asm/imx-common/sys_proto.h>
>
> int mxsmmc_initialize(bd_t *bis, int id, int (*wp)(int), int (*cd)(int));
>
> diff --git a/arch/arm/include/asm/imx-common/sys_proto.h b/arch/arm/include/asm/imx-common/sys_proto.h
> new file mode 100644
> index 0000000..706bca0
> --- /dev/null
> +++ b/arch/arm/include/asm/imx-common/sys_proto.h
> @@ -0,0 +1,45 @@
> +/*
> + * (C) Copyright 2009
> + * Stefano Babic, DENX Software Engineering, sbabic at denx.de.
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#ifndef _SYS_PROTO_H_
> +#define _SYS_PROTO_H_
> +
> +#include <asm/imx-common/regs-common.h>
> +#include "../arch-imx/cpu.h"
> +
> +#define soc_rev() (get_cpu_rev() & 0xFF)
> +#define is_soc_rev(rev) (soc_rev() == rev)
> +
> +/* returns MXC_CPU_ value */
> +#define cpu_type(rev) (((rev) >> 12) & 0xff)
> +/* both macros return/take MXC_CPU_ constants */
> +#define get_cpu_type() (cpu_type(get_cpu_rev()))
> +#define is_cpu_type(cpu) (get_cpu_type() == cpu)
> +
> +#define is_mx6dqp() (is_cpu_type(MXC_CPU_MX6QP) || is_cpu_type(MXC_CPU_MX6DP))
> +
> +u32 get_nr_cpus(void);
> +u32 get_cpu_rev(void);
> +u32 get_cpu_speed_grade_hz(void);
> +u32 get_cpu_temp_grade(int *minc, int *maxc);
> +const char *get_imx_type(u32 imxtype);
> +u32 imx_ddr_size(void);
> +void sdelay(unsigned long);
> +void set_chipselect_size(int const);
> +
> +/*
> + * Initializes on-chip ethernet controllers.
> + * to override, implement board_eth_init()
> + */
> +int fecmxc_initialize(bd_t *bis);
> +u32 get_ahb_clk(void);
> +u32 get_periph_clk(void);
> +
> +int mxs_reset_block(struct mxs_register_32 *reg);
> +int mxs_wait_mask_set(struct mxs_register_32 *reg, u32 mask, u32 timeout);
> +int mxs_wait_mask_clr(struct mxs_register_32 *reg, u32 mask, u32 timeout);
> +#endif
>
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
next prev parent reply other threads:[~2015-08-12 15:49 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-10 12:53 [U-Boot] [PATCH 1/4] imx: add cpu type for i.MX2 and i.MX3 Peng Fan
2015-08-10 12:53 ` [U-Boot] [PATCH 2/4] imx: mx31 use new formula for get_cpu_rev Peng Fan
2015-08-11 10:45 ` Stefano Babic
2015-08-10 12:53 ` [U-Boot] [PATCH 3/4] imx: mxs: reimplement get_cpu_rev Peng Fan
2015-08-11 10:45 ` Stefano Babic
2015-08-10 12:53 ` [U-Boot] [PATCH 4/4] imx-common: consolidate macros and prototypes into sys_proto.h Peng Fan
2015-08-11 10:45 ` Stefano Babic
2015-08-12 15:49 ` Stefano Babic [this message]
2015-08-13 0:26 ` Peng Fan
2015-08-11 10:45 ` [U-Boot] [PATCH 1/4] imx: add cpu type for i.MX2 and i.MX3 Stefano Babic
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=55CB6AFB.8060502@denx.de \
--to=sbabic@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.