[PATCH v2 1/7] mtd: sh_flctl: Expand FLCMNCR register bit field
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Feb 17 21:22:40 EST 2012
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.
> /* FLCMDCR control bits */
> #define ADRCNT2_E (0x1 << 31) /* 5byte address enable */
> #define ADRMD_E (0x1 << 26) /* Sector address access */
--
Regards,
Laurent Pinchart
More information about the linux-mtd
mailing list