Re: [PATCH 2/3] OMAP: SDP: Introducing 'board-sdp-flash.c' for flash init

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Feb 5, 2010 at 5:20 AM, Tony Lindgren <tony@xxxxxxxxxxx> wrote:
> * Vimal Singh <vimal.newwork@xxxxxxxxx> [100112 22:51]:
>> From 994785b066a9bd4fbaf7753cb6ab7317440afd36 Mon Sep 17 00:00:00 2001
>> From: Vimal Singh <vimalsingh@xxxxxx>
>> Date: Tue, 12 Jan 2010 17:22:42 +0530
>> Subject: [PATCH] OMAP: SDP: Introducing 'board-sdp-flash.c' for flash init
>>
>> This patch adds 'board-sdp-flash.c', which could be utilized
>> by boards similar to 3430SDP. (For ex: 2430sdp, 36030sdp).
>>
>> This file does initialization for all three flash devices present
>> in SDP boards (NOR, NAND, OneNAND), by finding there 'cs' number
>> dynamically using switch setting information (S8: 1-4).
>> This also expects partition information from core board files (for
>> ex: board-3430sdp.c). Which allows to choose different default
>> partitions for different boards.
>>
>> A new structure is created for this purpose: 'flash_partitions'
>> in 'mach/board-sdp.h'. This has two members:
>> 1. struct mtd_partition *parts
>> 2. int nr_parts
>>
>> A board file is expected to fill this structure and pass it to
>> 'sdp-flsash-init'. Partition information should be passed in
>> structure array of 'flash_partitions'. Partition information should
>> be passed in below sequence in array:
>> NOR
>> OneNAND
>> NAND
>
> <snip>
>
>> +__init board_nand_init(struct flash_partitions sdp_nand_parts, u8 cs)
>> +{
>> +     sdp_nand_data.cs                = cs;
>> +     sdp_nand_data.parts             = sdp_nand_parts.parts;
>> +     sdp_nand_data.nr_parts          = sdp_nand_parts.nr_parts;
>> +
>> +     sdp_nand_data.gpmc_cs_baseaddr  = (void *)(OMAP34XX_GPMC_VIRT +
>> +                                                     GPMC_CS0_BASE +
>> +                                                     cs * GPMC_CS_SIZE);
>> +     sdp_nand_data.gpmc_baseaddr      = (void *) (OMAP34XX_GPMC_VIRT);
>> +
>> +     gpmc_nand_init(&sdp_nand_data);
>> +}
>
> Related to the comments for gpmc-nand.c, you can now get rid of the
> gpmc_cs_baseaddr hardcoding in the board-*.c files. The address gets
> assigned by gpmc_cs_request based on the chip select and size.

This (gpmc_cs_baseaddr) is passed to OMAP NAND driver (nand/omap2.c)
for its uses.
This is base address to GPMC Registers for CS where NAND is present.
And this will be used by functions like "omap_hwcontrol" to access
GPMC NAND COMMAND, GPMC NAND ADDRESS and GPMC NAND DATA etc CS
specific registers.

And of course, nand driver should not know at which 'cs' nand device
is connected, correct?
So, this information is passed from board.



-- 
Regards,
Vimal Singh
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux