diff mbox series

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

Message ID 20181019002105.4620-1-vz@mleia.com
State Accepted
Commit a098ce21420e2359042041efaede75a8360c9f42
Delegated to: Tom Rini
Headers show
Series [U-Boot] mtd: nand: lpc32xx mlc: predefine number of NAND chips to support | expand

Commit Message

Vladimir Zapolskiy Oct. 19, 2018, 12:21 a.m. UTC
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@mleia.com>
---
 drivers/mtd/nand/raw/lpc32xx_nand_mlc.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Miquel Raynal Oct. 29, 2018, 9:29 a.m. UTC | #1
Hi Vladimir,

Vladimir Zapolskiy <vz@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@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?

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


Thanks,
Miquèl
Vladimir Zapolskiy Oct. 29, 2018, 4:58 p.m. UTC | #2
Hi Miquel,

On 10/29/2018 11:29 AM, Miquel Raynal wrote:
> Hi Vladimir,
> 
> Vladimir Zapolskiy <vz@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@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@bootlin.com>

Thank you for review!

--
Best wishes,
Vladimir
Tom Rini Nov. 17, 2018, 1:32 p.m. UTC | #3
On Fri, Oct 19, 2018 at 03:21:05AM +0300, Vladimir Zapolskiy wrote:

> 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@mleia.com>
> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>

Applied to u-boot/master, thanks!
diff mbox series

Patch

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)
 
 /**