[PATCH v2 1/2] ARM i.MX53: Some bug fix about MX53 MSL code

Yong Shen yong.shen at linaro.org
Thu Dec 30 21:31:30 EST 2010


Hi Uwe,

Thanks for comments, some discussion follewed inline.

Yong

2010/12/30 Uwe Kleine-König <u.kleine-koenig at pengutronix.de>:
> On Thu, Dec 30, 2010 at 01:28:00PM +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
> hmmm, not nice.  I assume Sascha won't take that.
Since the file name is clock-mx51-mx53.c, so this file is supposed to
contain clock information either for mx51 or mx53. And you can find
cpu_is_mx5x() is widely used across the file for this purpose, which
is way I also adapt it in this function. So IMHO, I guess this is the
straight way to add it with little code changes. Please correct me.

>
>> @@ -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)
>>
>>  /* 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
>> +
>>  #ifdef CONFIG_ARCH_MXC91231
>>  # ifdef mxc_cpu_type
>>  #  undef mxc_cpu_type
> This hunk is also included in one of Richard's patches for mx50.
Since Richard's patches are not in the tree so far, so I can not
develop my patch based on his code, which is why there are some
duplicated code here. But I guess it should not be an issue, since
maintainer can easily resolve this conflict when merging this patch.

>
> 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