[U-Boot] [PATCH] ARM: imx: fsl_esdhc: fix usage of low 4 bits of sysctl register

Eric Nelson eric at nelint.com
Fri Dec 4 18:49:57 CET 2015


Hi Michael,

On 12/04/2015 10:40 AM, Michael Trimarchi wrote:
> On Fri, Dec 4, 2015 at 6:32 PM, Eric Nelson <eric at nelint.com> wrote:
...

>> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
>> index c5054d6..1ccc576 100644
>> --- a/drivers/mmc/fsl_esdhc.c
>> +++ b/drivers/mmc/fsl_esdhc.c
>> @@ -502,15 +502,22 @@ static void set_sysctl(struct mmc *mmc, uint clock)
>>
>>         clk = (pre_div << 8) | (div << 4);
>>
>> +#ifdef CONFIG_FSL_USDHC
>> +       esdhc_setbits32(&regs->sysctl, SYSCTL_RSTA);
>> +#else
>>         esdhc_clrbits32(&regs->sysctl, SYSCTL_CKEN);
>> +#endif
>>
> 
> I really prefer is_usdhc()
> 

Am I overlooking something?

I'm not seeing any such animal, and using a run-time test would prevent
the compiler from catching the use of the bits below:

...

>> diff --git a/include/fsl_esdhc.h b/include/fsl_esdhc.h
>> index aa1b4cf..a4b87ce 100644
>> --- a/include/fsl_esdhc.h
>> +++ b/include/fsl_esdhc.h
>> @@ -25,10 +25,12 @@
>>  #define SYSCTL_INITA           0x08000000
>>  #define SYSCTL_TIMEOUT_MASK    0x000f0000
>>  #define SYSCTL_CLOCK_MASK      0x0000fff0
>> +#if !defined(CONFIG_MX6)
>>  #define SYSCTL_CKEN            0x00000008
>>  #define SYSCTL_PEREN           0x00000004
>>  #define SYSCTL_HCKEN           0x00000002
>>  #define SYSCTL_IPGEN           0x00000001
>> +#endif

Please advise,


Eric


More information about the U-Boot mailing list