[PATCH v2 1/7] mtd: sh_flctl: Expand FLCMNCR register bit field

Bastian Hecht hechtb at googlemail.com
Sun Feb 19 05:34:44 EST 2012


Hello Laurent,

thanks for reviewing this patch.

2012/2/18 Laurent Pinchart <laurent.pinchart at ideasonboard.com>:
> Hi Bastian,
>
> Thanks for the patch.
>
> On Saturday 11 February 2012 12:44:59 Bastian Hecht wrote:
>> Add support for a new hardware generation. The meaning of some bits
>> of the FLCMNCR register changed, so some new defines are added
>> parallel to the existing ones to keep backward compatibility.
>>
>> The defines allow to choose an appropriate clocking scheme.
>>
>> Signed-off-by: Bastian Hecht <hechtb at gmail.com>
>
> Acked-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>
>> ---
>> changelog: code stays the same, just the description is slightly corrected.
>>
>>  include/linux/mtd/sh_flctl.h |   24 ++++++++++++++++++++++++
>>  1 files changed, 24 insertions(+), 0 deletions(-)
>>
>> diff --git a/include/linux/mtd/sh_flctl.h b/include/linux/mtd/sh_flctl.h
>> index 9cf4c4c..e66c393 100644
>> --- a/include/linux/mtd/sh_flctl.h
>> +++ b/include/linux/mtd/sh_flctl.h
>> @@ -67,6 +67,30 @@
>>  #define      CE0_ENABLE      (0x1 << 3)      /* Chip Enable 0 */
>>  #define      TYPESEL_SET     (0x1 << 0)
>>
>> +/*
>> + * Clock settings using the PULSEx registers from FLCMNCR
>> + *
>> + * Some hardware uses bits called PULSEx instead of FCKSEL_E and QTSEL_E
>> + * to control the clock divider used between the High-Speed Peripheral
>> Clock + * and the FLCTL internal clock. If so, use CLK_8_BIT_xxx for
>> connecting 8 bit + * and CLK_16_BIT_xxx for connecting 16 bit bus bandwith
>> NAND chips. For the 16 + * bit version the divider is seperate for the
>> pulse width of high and low + * signals.
>> + */
>> +#define PULSE3       (0x1 << 27)
>> +#define PULSE2       (0x1 << 17)
>> +#define PULSE1       (0x1 << 15)
>> +#define PULSE0       (0x1 << 9)
>> +#define CLK_8_BIT_0_5HP                      PULSE1
>> +#define CLK_8_BIT_1HP                        0x0
>> +#define CLK_8_BIT_1_5HP                      (PULSE1 | PULSE2)
>> +#define CLK_8_BIT_2HP                        PULSE0
>> +#define CLK_8_BIT_3HP                        (PULSE0 | PULSE1 | PULSE2)
>> +#define CLK_8_BIT_4HP                        (PULSE0 | PULSE2)
>> +#define CLK_16_BIT_6HP_LOW_2HP_HIGH  PULSE0
>> +#define CLK_16_BIT_9HP_LOW_3HP_HIGH  (PULSE0 | PULSE1 | PULSE2)
>> +#define CLK_16_BIT_12HP_LOW_4HP_HIGH (PULSE0 | PULSE2)
>> +
>
> This is nitpicking, but you could shorten the names to something like
> CLK_16B_12L_4P (at the expense of readability though). Feel free to ignore
> this.

Well yeah - I felt a bit unsure about the verbosity too, so I'll take
your suggestion, thanks.

>>  /* FLCMDCR control bits */
>>  #define ADRCNT2_E    (0x1 << 31)     /* 5byte address enable */
>>  #define ADRMD_E              (0x1 << 26)     /* Sector address access */
> --
> Regards,
>
> Laurent Pinchart

thanks,

 Bastian



More information about the linux-mtd mailing list