[PATCH 01/25] pxa3xx_nand: condense the flash definition
Eric Miao
eric.y.miao at gmail.com
Fri Jun 18 04:00:59 EDT 2010
>>> -struct pxa3xx_nand_timing {
>>> - unsigned int tCH; /* Enable signal hold time */
>>> - unsigned int tCS; /* Enable signal setup time */
>>> - unsigned int tWH; /* ND_nWE high duration */
>>> - unsigned int tWP; /* ND_nWE pulse time */
>>> - unsigned int tRH; /* ND_nRE high duration */
>>> - unsigned int tRP; /* ND_nRE pulse width */
>>> - unsigned int tR; /* ND_nWE high to ND_nRE low for read */
>>> - unsigned int tWHR; /* ND_nWE high to ND_nRE low for status read */
>>> - unsigned int tAR; /* ND_ALE low to ND_nRE low delay */
>>> -};
>>> -
>>> -struct pxa3xx_nand_cmdset {
>>> - uint16_t read1;
>>> - uint16_t read2;
>>> - uint16_t program;
>>> - uint16_t read_status;
>>> - uint16_t read_id;
>>> - uint16_t erase;
>>> - uint16_t reset;
>>> - uint16_t lock;
>>> - uint16_t unlock;
>>> - uint16_t lock_status;
>>> -};
>>> -
>>> -struct pxa3xx_nand_flash {
>>> - const struct pxa3xx_nand_timing *timing; /* NAND Flash timing */
>>> - const struct pxa3xx_nand_cmdset *cmdset;
>>> -
>>> - uint32_t page_per_block;/* Pages per block (PG_PER_BLK) */
>>> - uint32_t page_size; /* Page size in bytes (PAGE_SZ) */
>>> - uint32_t flash_width; /* Width of Flash memory (DWIDTH_M) */
>>> - uint32_t dfc_width; /* Width of flash controller(DWIDTH_C) */
>>> - uint32_t num_blocks; /* Number of physical blocks in Flash */
>>> - uint32_t chip_id;
>>> -};
>>> -
>>
>> So does this prevent board code from defining their own timing and etc?
>
> No, platform could define its own timing. If there is definition for
> the same chip,
> driver would choose the one from platform definition first.
>
I'm seeing pxa3xx_nand_flash being referenced in pxa3xx_nand_platform_data
below, though?
struct pxa3xx_nand_platform_data {
......
const struct pxa3xx_nand_flash * flash;
size_t num_flash;
};
More information about the linux-arm-kernel
mailing list