[U-Boot] [PATCH] mtd: nand: lpc32xx mlc: predefine number of NAND chips to support

Vladimir Zapolskiy vz at mleia.com
Mon Oct 29 16:58:36 UTC 2018


Hi Miquel,

On 10/29/2018 11:29 AM, Miquel Raynal wrote:
> Hi Vladimir,
> 
> Vladimir Zapolskiy <vz at mleia.com> wrote on Fri, 19 Oct 2018 03:21:05
> +0300:
> 
>> Build option CONFIG_SYS_MAX_NAND_CHIPS is used by NXP LPC32xx NAND MLC
>> driver only, as a preparation for potential removal or replacement of
>> the option the change predefines CONFIG_SYS_MAX_NAND_CHIPS to 1, same
>> value is used by the single user Work Microwave Work 92105 board, thus
>> it will be safe now to remove the option as a board specific one.
>>
>> Signed-off-by: Vladimir Zapolskiy <vz at mleia.com>
>> ---
>>  drivers/mtd/nand/raw/lpc32xx_nand_mlc.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/mtd/nand/raw/lpc32xx_nand_mlc.c b/drivers/mtd/nand/raw/lpc32xx_nand_mlc.c
>> index 5d4ffea608d9..79d1489dc72c 100644
>> --- a/drivers/mtd/nand/raw/lpc32xx_nand_mlc.c
>> +++ b/drivers/mtd/nand/raw/lpc32xx_nand_mlc.c
>> @@ -82,6 +82,10 @@ struct lpc32xx_nand_mlc_registers {
>>  static struct lpc32xx_nand_mlc_registers __iomem *lpc32xx_nand_mlc_registers
>>  	= (struct lpc32xx_nand_mlc_registers __iomem *)MLC_NAND_BASE;
>>  
>> +#if !defined(CONFIG_SYS_MAX_NAND_CHIPS)
>> +#define CONFIG_SYS_MAX_NAND_CHIPS	1
>> +#endif
>> +
>>  #define clkdiv(v, w, o) (((1+(clk/v)) & w) << o)
>>  
>>  /**
> 
> 
> If it is safe now, can you also remote the CONFIG_ option now?

At the moment I plan to remove the CONFIG_SYS_MAX_NAND_CHIPS option
from include/configs/work_92105.h as a side activity (concentrate all
LPC32xx raw NAND options in arch/arm/include/asm/arch-lpc32xx/config.h,
the change is in my queue), and regarding total removal of the option,
it shall be considered separately.

For instance you can find it is mentioned in doc/README.nand :

        if (nand_scan_ident(mtd, CONFIG_SYS_MAX_NAND_CHIPS, NULL))
                error out

and commonly it would be expected to provide it as an argument to
nand_scan_ident(), however it is easy to notice that none drivers
but LPC32xx NAND MLC does it. Also note that sometimes NAND *chips*
number is substituted by a number of NAND *controllers* on SoC...

Generally it sounds like a proper change should be a tree-wide one.

So, while I clearly understand the rationale, I would prefer to shift
the task to the MTD maintainers ;)

> 
> Reviewed-by: Miquel Raynal <miquel.raynal at bootlin.com>

Thank you for review!

--
Best wishes,
Vladimir


More information about the U-Boot mailing list