Re: [RESEND PATCH v2 3/4] ARM: davinci: add aemif & nand support to da850-lcdk in legacy mode

From: Bartosz Golaszewski
Date: Wed Apr 25 2018 - 05:15:06 EST


2018-04-17 16:09 GMT+02:00 Sekhar Nori <nsekhar@xxxxxx>:
> On Tuesday 17 April 2018 03:59 PM, Bartosz Golaszewski wrote:
>> From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>
>>
>> We now have support for aemif & nand from board files. As an example
>> add support for nand to da850-lcdk in legacy mode.
>
> Hawkboard is a separate board of its own, although closely related to
> LCDK. Lets refer to it as hawkboard itself, instead of "LCDK in legacy
> mode". So:
>
> ARM: davinci: omapl138-hawk: ...
>
>>
>> Signed-off-by: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>
>> ---
>> arch/arm/mach-davinci/board-omapl138-hawk.c | 132 ++++++++++++++++++++
>> 1 file changed, 132 insertions(+)
>>
>> diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c
>> index 6c997c59a3cd..9c3de56b54e4 100644
>> --- a/arch/arm/mach-davinci/board-omapl138-hawk.c
>> +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c
>> @@ -16,6 +16,11 @@
>> #include <linux/gpio.h>
>> #include <linux/gpio/machine.h>
>> #include <linux/platform_data/gpio-davinci.h>
>> +#include <linux/platform_data/ti-aemif.h>
>> +#include <linux/mtd/rawnand.h>
>> +#include <linux/mtd/partitions.h>
>> +#include <linux/platform_data/mtd-davinci.h>
>> +#include <linux/platform_data/mtd-davinci-aemif.h>
>> #include <linux/regulator/machine.h>
>>
>> #include <asm/mach-types.h>
>> @@ -162,6 +167,129 @@ static __init void omapl138_hawk_mmc_init(void)
>> gpiod_remove_lookup_table(&mmc_gpios_table);
>> }
>>
>> +static struct mtd_partition omapl138_hawk_nandflash_partition[] = {
>> + {
>> + .name = "u-boot env",
>> + .offset = 0,
>> + .size = SZ_128K,
>> + .mask_flags = MTD_WRITEABLE,
>> + },
>> + {
>> + .name = "u-boot",
>> + .offset = MTDPART_OFS_APPEND,
>> + .size = SZ_128K,
>
> Can you make it 512K as it is in da850-lcdk.dts ?
>
>> + .mask_flags = MTD_WRITEABLE,
>> + },
>> + {
>> + .name = "free space",
>> + .offset = MTDPART_OFS_APPEND,
>> + .size = MTDPART_SIZ_FULL,
>> + .mask_flags = 0,
>> + },
>> +};
>
>> +static struct aemif_abus_data omapl138_hawk_aemif_abus_data[] = {
>> + {
>> + .cs = 3,
>> + }
>> +};
>> +
>> +static struct platform_device omapl138_hawk_aemif_devices[] = {
>> + {
>> + .name = "davinci_nand",
>> + .id = 1,
>
> Is there a reason for .id to be set to 1 here? Ideally it should be -1,
> I think since there is a single NAND on the board.
>

The davinci nand driver uses pdev->id as the chipselect number. I
guess this should be in the platform data. I'll send a patch for that.

> Note that I sent a patch dropping AEMIF clock acquisition from DaVinci
> NAND driver.
>
>> + .dev = {
>> + .platform_data = &omapl138_hawk_nandflash_data,
>> + },
>> + .resource = omapl138_hawk_nandflash_resource,
>> + .num_resources = ARRAY_SIZE(omapl138_hawk_nandflash_resource),
>> + .id = 0,
>
> This should have resulted in a double init warning?
>

It should, strange it didn't - at least for me.

Thanks,
Bart