[PATCH 1/2] ARM i.MX53: Some bug fix about MX53 MSL code
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Tue Dec 21 03:30:48 EST 2010
Hello,
On Tue, Dec 21, 2010 at 11:37:30AM +0800, yong.shen at freescale.com wrote:
> From: Yong Shen <yong.shen at linaro.org>
>
> 1. pll_base address should return right value
> 2. uart parent clk is from pll3
> 3. add cpu_is_mx53 definition
>
> Signed-off-by: Yong Shen <yong.shen at linaro.org>
> ---
> arch/arm/mach-mx5/clock-mx51-mx53.c | 7 ++++---
> arch/arm/mach-mx5/crm_regs.h | 4 ++++
> arch/arm/plat-mxc/include/mach/mxc.h | 15 +++++++++++++--
> 3 files changed, 21 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c
> index 9fc65bb..6db69db 100644
> --- a/arch/arm/mach-mx5/clock-mx51-mx53.c
> +++ b/arch/arm/mach-mx5/clock-mx51-mx53.c
> @@ -127,11 +127,11 @@ static inline u32 _get_mux(struct clk *parent, struct clk *m0,
> static inline void __iomem *_get_pll_base(struct clk *pll)
> {
> if (pll == &pll1_main_clk)
> - return MX51_DPLL1_BASE;
> + return cpu_is_mx51() ? MX51_DPLL1_BASE : MX53_DPLL1_BASE;
> else if (pll == &pll2_sw_clk)
> - return MX51_DPLL2_BASE;
> + return cpu_is_mx51() ? MX51_DPLL2_BASE : MX53_DPLL2_BASE;
> else if (pll == &pll3_sw_clk)
> - return MX51_DPLL3_BASE;
> + return cpu_is_mx51() ? MX51_DPLL3_BASE : MX53_DPLL3_BASE;
> else if (pll == &mx53_pll4_sw_clk)
> return MX53_DPLL4_BASE;
> else
> @@ -1202,6 +1202,7 @@ int __init mx53_clocks_init(unsigned long ckil, unsigned long osc,
>
> clk_tree_init();
>
> + clk_set_parent(&uart_root_clk, &pll3_sw_clk);
> clk_enable(&cpu_clk);
> clk_enable(&main_bus_clk);
>
> diff --git a/arch/arm/mach-mx5/crm_regs.h b/arch/arm/mach-mx5/crm_regs.h
> index 51ff9bb..b462c22 100644
> --- a/arch/arm/mach-mx5/crm_regs.h
> +++ b/arch/arm/mach-mx5/crm_regs.h
> @@ -19,6 +19,10 @@
> #define MX51_GPC_BASE MX51_IO_ADDRESS(MX51_GPC_BASE_ADDR)
>
> /*MX53*/
> +#define MX53_CCM_BASE MX53_IO_ADDRESS(MX53_CCM_BASE_ADDR)
> +#define MX53_DPLL1_BASE MX53_IO_ADDRESS(MX53_PLL1_BASE_ADDR)
> +#define MX53_DPLL2_BASE MX53_IO_ADDRESS(MX53_PLL2_BASE_ADDR)
> +#define MX53_DPLL3_BASE MX53_IO_ADDRESS(MX53_PLL3_BASE_ADDR)
> #define MX53_DPLL4_BASE MX53_IO_ADDRESS(MX53_PLL3_BASE_ADDR)
hmm, I'd like to have MX53_CCM_VBASE_ADDR (or similar) here.
MX53_CCM_BASE doesn't show the difference to MX53_CCM_BASE_ADDR. (And
yes, I saw that MX53_DPLL4_BASE is already there.)
>
> /* PLL Register Offsets */
> diff --git a/arch/arm/plat-mxc/include/mach/mxc.h b/arch/arm/plat-mxc/include/mach/mxc.h
> index 4abbdd1..eca8f83 100644
> --- a/arch/arm/plat-mxc/include/mach/mxc.h
> +++ b/arch/arm/plat-mxc/include/mach/mxc.h
> @@ -126,7 +126,7 @@ extern unsigned int __mxc_cpu_type;
> # define cpu_is_mx35() (0)
> #endif
>
> -#ifdef CONFIG_ARCH_MX5
> +#ifdef CONFIG_ARCH_MX51
> # ifdef mxc_cpu_type
> # undef mxc_cpu_type
> # define mxc_cpu_type __mxc_cpu_type
> @@ -134,11 +134,22 @@ extern unsigned int __mxc_cpu_type;
> # define mxc_cpu_type MXC_CPU_MX51
> # endif
> # define cpu_is_mx51() (mxc_cpu_type == MXC_CPU_MX51)
> -# define cpu_is_mx53() (mxc_cpu_type == MXC_CPU_MX53)
> #else
> # define cpu_is_mx51() (0)
> #endif
>
> +#ifdef CONFIG_ARCH_MX53
> +# ifdef mxc_cpu_type
> +# undef mxc_cpu_type
> +# define mxc_cpu_type __mxc_cpu_type
> +# else
> +# define mxc_cpu_type MXC_CPU_MX53
> +# endif
> +# define cpu_is_mx53() (mxc_cpu_type == MXC_CPU_MX53)
> +#else
> +# define cpu_is_mx53() (0)
> +#endif
> +
This is OK, though it could use CONFIG_SOC_MX53.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
More information about the linux-arm-kernel
mailing list