Message ID | 1439211227-28030-4-git-send-email-Peng.Fan@freescale.com |
---|---|
State | Changes Requested |
Delegated to: | Stefano Babic |
Headers | show |
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 > > 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@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 > Reviewed-by: Stefano Babic <sbabic@denx.de> Best regards, Stefano Babic
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@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
Hi Stefano, On Wed, Aug 12, 2015 at 05:49:15PM +0200, Stefano Babic wrote: >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 ! Oh. I'll check this. I missed to build mx35 target. [...] Regards, Peng.
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@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
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