2005-04-16 15:20:36 -07:00
/*
* drivers / mtd / nandids . c
*
* Copyright ( C ) 2002 Thomas Gleixner ( tglx @ linutronix . de )
2005-06-23 10:38:54 +01:00
*
2005-04-16 15:20:36 -07:00
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*
*/
# include <linux/module.h>
# include <linux/mtd/nand.h>
2013-03-04 13:39:30 +02:00
# define LP_OPTIONS NAND_SAMSUNG_LP_OPTIONS
# define LP_OPTIONS16 (LP_OPTIONS | NAND_BUSWIDTH_16)
2013-03-13 09:51:31 -07:00
# define SP_OPTIONS NAND_NEED_READRDY
# define SP_OPTIONS16 (SP_OPTIONS | NAND_BUSWIDTH_16)
2007-04-17 18:30:57 +01:00
2013-03-04 13:39:30 +02:00
/*
* The chip ID list :
* name , device ID , page size , chip size in MiB , eraseblock size , options
*
* If page size and eraseblock size are 0 , the sizes are taken from the
* extended chip ID .
*/
struct nand_flash_dev nand_flash_ids [ ] = {
2013-03-04 13:44:21 +02:00
{ " NAND 4MiB 5V 8-bit " , 0x6B , 512 , 4 , 0x2000 , SP_OPTIONS } ,
{ " NAND 4MiB 3,3V 8-bit " , 0xE3 , 512 , 4 , 0x2000 , SP_OPTIONS } ,
{ " NAND 4MiB 3,3V 8-bit " , 0xE5 , 512 , 4 , 0x2000 , SP_OPTIONS } ,
{ " NAND 8MiB 3,3V 8-bit " , 0xD6 , 512 , 8 , 0x2000 , SP_OPTIONS } ,
{ " NAND 8MiB 3,3V 8-bit " , 0xE6 , 512 , 8 , 0x2000 , SP_OPTIONS } ,
2006-05-25 09:50:16 +02:00
2013-03-13 09:51:31 -07:00
{ " NAND 16MiB 1,8V 8-bit " , 0x33 , 512 , 16 , 0x4000 , SP_OPTIONS } ,
{ " NAND 16MiB 3,3V 8-bit " , 0x73 , 512 , 16 , 0x4000 , SP_OPTIONS } ,
{ " NAND 16MiB 1,8V 16-bit " , 0x43 , 512 , 16 , 0x4000 , SP_OPTIONS16 } ,
{ " NAND 16MiB 3,3V 16-bit " , 0x53 , 512 , 16 , 0x4000 , SP_OPTIONS16 } ,
2006-05-25 09:50:16 +02:00
2013-03-13 09:51:31 -07:00
{ " NAND 32MiB 1,8V 8-bit " , 0x35 , 512 , 32 , 0x4000 , SP_OPTIONS } ,
{ " NAND 32MiB 3,3V 8-bit " , 0x75 , 512 , 32 , 0x4000 , SP_OPTIONS } ,
{ " NAND 32MiB 1,8V 16-bit " , 0x45 , 512 , 32 , 0x4000 , SP_OPTIONS16 } ,
{ " NAND 32MiB 3,3V 16-bit " , 0x55 , 512 , 32 , 0x4000 , SP_OPTIONS16 } ,
2006-05-25 09:50:16 +02:00
2013-03-13 09:51:31 -07:00
{ " NAND 64MiB 1,8V 8-bit " , 0x36 , 512 , 64 , 0x4000 , SP_OPTIONS } ,
{ " NAND 64MiB 3,3V 8-bit " , 0x76 , 512 , 64 , 0x4000 , SP_OPTIONS } ,
{ " NAND 64MiB 1,8V 16-bit " , 0x46 , 512 , 64 , 0x4000 , SP_OPTIONS16 } ,
{ " NAND 64MiB 3,3V 16-bit " , 0x56 , 512 , 64 , 0x4000 , SP_OPTIONS16 } ,
2006-05-25 09:50:16 +02:00
2013-03-13 09:51:31 -07:00
{ " NAND 128MiB 1,8V 8-bit " , 0x78 , 512 , 128 , 0x4000 , SP_OPTIONS } ,
{ " NAND 128MiB 1,8V 8-bit " , 0x39 , 512 , 128 , 0x4000 , SP_OPTIONS } ,
{ " NAND 128MiB 3,3V 8-bit " , 0x79 , 512 , 128 , 0x4000 , SP_OPTIONS } ,
{ " NAND 128MiB 1,8V 16-bit " , 0x72 , 512 , 128 , 0x4000 , SP_OPTIONS16 } ,
{ " NAND 128MiB 1,8V 16-bit " , 0x49 , 512 , 128 , 0x4000 , SP_OPTIONS16 } ,
{ " NAND 128MiB 3,3V 16-bit " , 0x74 , 512 , 128 , 0x4000 , SP_OPTIONS16 } ,
{ " NAND 128MiB 3,3V 16-bit " , 0x59 , 512 , 128 , 0x4000 , SP_OPTIONS16 } ,
2006-05-25 09:50:16 +02:00
2013-03-13 09:51:31 -07:00
{ " NAND 256MiB 3,3V 8-bit " , 0x71 , 512 , 256 , 0x4000 , SP_OPTIONS } ,
2006-05-25 09:50:16 +02:00
/*
2013-03-04 13:39:30 +02:00
* These are the new chips with large page size . Their page size and
* eraseblock size are determined from the extended ID bytes .
2006-05-25 09:50:16 +02:00
*/
2011-11-02 13:34:43 -07:00
/* 512 Megabit */
2006-05-25 09:50:16 +02:00
{ " NAND 64MiB 1,8V 8-bit " , 0xA2 , 0 , 64 , 0 , LP_OPTIONS } ,
2010-08-20 12:36:12 -07:00
{ " NAND 64MiB 1,8V 8-bit " , 0xA0 , 0 , 64 , 0 , LP_OPTIONS } ,
2006-05-25 09:50:16 +02:00
{ " NAND 64MiB 3,3V 8-bit " , 0xF2 , 0 , 64 , 0 , LP_OPTIONS } ,
2010-08-20 12:36:12 -07:00
{ " NAND 64MiB 3,3V 8-bit " , 0xD0 , 0 , 64 , 0 , LP_OPTIONS } ,
2011-11-02 13:34:43 -07:00
{ " NAND 64MiB 3,3V 8-bit " , 0xF0 , 0 , 64 , 0 , LP_OPTIONS } ,
2006-05-25 09:50:16 +02:00
{ " NAND 64MiB 1,8V 16-bit " , 0xB2 , 0 , 64 , 0 , LP_OPTIONS16 } ,
2010-08-20 12:36:12 -07:00
{ " NAND 64MiB 1,8V 16-bit " , 0xB0 , 0 , 64 , 0 , LP_OPTIONS16 } ,
2006-05-25 09:50:16 +02:00
{ " NAND 64MiB 3,3V 16-bit " , 0xC2 , 0 , 64 , 0 , LP_OPTIONS16 } ,
2010-08-20 12:36:12 -07:00
{ " NAND 64MiB 3,3V 16-bit " , 0xC0 , 0 , 64 , 0 , LP_OPTIONS16 } ,
2005-11-07 11:15:49 +00:00
2005-04-16 15:20:36 -07:00
/* 1 Gigabit */
2006-05-25 09:50:16 +02:00
{ " NAND 128MiB 1,8V 8-bit " , 0xA1 , 0 , 128 , 0 , LP_OPTIONS } ,
{ " NAND 128MiB 3,3V 8-bit " , 0xF1 , 0 , 128 , 0 , LP_OPTIONS } ,
2010-05-07 19:09:13 +02:00
{ " NAND 128MiB 3,3V 8-bit " , 0xD1 , 0 , 128 , 0 , LP_OPTIONS } ,
2006-05-25 09:50:16 +02:00
{ " NAND 128MiB 1,8V 16-bit " , 0xB1 , 0 , 128 , 0 , LP_OPTIONS16 } ,
{ " NAND 128MiB 3,3V 16-bit " , 0xC1 , 0 , 128 , 0 , LP_OPTIONS16 } ,
2010-06-17 12:35:11 -07:00
{ " NAND 128MiB 1,8V 16-bit " , 0xAD , 0 , 128 , 0 , LP_OPTIONS16 } ,
2005-04-16 15:20:36 -07:00
/* 2 Gigabit */
2006-05-25 09:50:16 +02:00
{ " NAND 256MiB 1,8V 8-bit " , 0xAA , 0 , 256 , 0 , LP_OPTIONS } ,
{ " NAND 256MiB 3,3V 8-bit " , 0xDA , 0 , 256 , 0 , LP_OPTIONS } ,
{ " NAND 256MiB 1,8V 16-bit " , 0xBA , 0 , 256 , 0 , LP_OPTIONS16 } ,
{ " NAND 256MiB 3,3V 16-bit " , 0xCA , 0 , 256 , 0 , LP_OPTIONS16 } ,
2005-11-07 11:15:49 +00:00
2005-04-16 15:20:36 -07:00
/* 4 Gigabit */
2006-05-25 09:50:16 +02:00
{ " NAND 512MiB 1,8V 8-bit " , 0xAC , 0 , 512 , 0 , LP_OPTIONS } ,
{ " NAND 512MiB 3,3V 8-bit " , 0xDC , 0 , 512 , 0 , LP_OPTIONS } ,
{ " NAND 512MiB 1,8V 16-bit " , 0xBC , 0 , 512 , 0 , LP_OPTIONS16 } ,
{ " NAND 512MiB 3,3V 16-bit " , 0xCC , 0 , 512 , 0 , LP_OPTIONS16 } ,
2005-11-07 11:15:49 +00:00
2005-04-16 15:20:36 -07:00
/* 8 Gigabit */
2006-05-25 09:50:16 +02:00
{ " NAND 1GiB 1,8V 8-bit " , 0xA3 , 0 , 1024 , 0 , LP_OPTIONS } ,
{ " NAND 1GiB 3,3V 8-bit " , 0xD3 , 0 , 1024 , 0 , LP_OPTIONS } ,
{ " NAND 1GiB 1,8V 16-bit " , 0xB3 , 0 , 1024 , 0 , LP_OPTIONS16 } ,
{ " NAND 1GiB 3,3V 16-bit " , 0xC3 , 0 , 1024 , 0 , LP_OPTIONS16 } ,
2005-04-16 15:20:36 -07:00
/* 16 Gigabit */
2006-05-25 09:50:16 +02:00
{ " NAND 2GiB 1,8V 8-bit " , 0xA5 , 0 , 2048 , 0 , LP_OPTIONS } ,
{ " NAND 2GiB 3,3V 8-bit " , 0xD5 , 0 , 2048 , 0 , LP_OPTIONS } ,
{ " NAND 2GiB 1,8V 16-bit " , 0xB5 , 0 , 2048 , 0 , LP_OPTIONS16 } ,
{ " NAND 2GiB 3,3V 16-bit " , 0xC5 , 0 , 2048 , 0 , LP_OPTIONS16 } ,
2010-06-17 12:35:11 -07:00
/* 32 Gigabit */
2010-08-20 12:36:12 -07:00
{ " NAND 4GiB 1,8V 8-bit " , 0xA7 , 0 , 4096 , 0 , LP_OPTIONS } ,
2010-08-13 10:29:14 -07:00
{ " NAND 4GiB 3,3V 8-bit " , 0xD7 , 0 , 4096 , 0 , LP_OPTIONS } ,
2010-08-20 12:36:12 -07:00
{ " NAND 4GiB 1,8V 16-bit " , 0xB7 , 0 , 4096 , 0 , LP_OPTIONS16 } ,
{ " NAND 4GiB 3,3V 16-bit " , 0xC7 , 0 , 4096 , 0 , LP_OPTIONS16 } ,
/* 64 Gigabit */
{ " NAND 8GiB 1,8V 8-bit " , 0xAE , 0 , 8192 , 0 , LP_OPTIONS } ,
{ " NAND 8GiB 3,3V 8-bit " , 0xDE , 0 , 8192 , 0 , LP_OPTIONS } ,
{ " NAND 8GiB 1,8V 16-bit " , 0xBE , 0 , 8192 , 0 , LP_OPTIONS16 } ,
{ " NAND 8GiB 3,3V 16-bit " , 0xCE , 0 , 8192 , 0 , LP_OPTIONS16 } ,
/* 128 Gigabit */
{ " NAND 16GiB 1,8V 8-bit " , 0x1A , 0 , 16384 , 0 , LP_OPTIONS } ,
{ " NAND 16GiB 3,3V 8-bit " , 0x3A , 0 , 16384 , 0 , LP_OPTIONS } ,
{ " NAND 16GiB 1,8V 16-bit " , 0x2A , 0 , 16384 , 0 , LP_OPTIONS16 } ,
{ " NAND 16GiB 3,3V 16-bit " , 0x4A , 0 , 16384 , 0 , LP_OPTIONS16 } ,
/* 256 Gigabit */
{ " NAND 32GiB 1,8V 8-bit " , 0x1C , 0 , 32768 , 0 , LP_OPTIONS } ,
{ " NAND 32GiB 3,3V 8-bit " , 0x3C , 0 , 32768 , 0 , LP_OPTIONS } ,
{ " NAND 32GiB 1,8V 16-bit " , 0x2C , 0 , 32768 , 0 , LP_OPTIONS16 } ,
{ " NAND 32GiB 3,3V 16-bit " , 0x4C , 0 , 32768 , 0 , LP_OPTIONS16 } ,
/* 512 Gigabit */
{ " NAND 64GiB 1,8V 8-bit " , 0x1E , 0 , 65536 , 0 , LP_OPTIONS } ,
{ " NAND 64GiB 3,3V 8-bit " , 0x3E , 0 , 65536 , 0 , LP_OPTIONS } ,
{ " NAND 64GiB 1,8V 16-bit " , 0x2E , 0 , 65536 , 0 , LP_OPTIONS16 } ,
{ " NAND 64GiB 3,3V 16-bit " , 0x4E , 0 , 65536 , 0 , LP_OPTIONS16 } ,
2010-06-17 12:35:11 -07:00
2005-04-16 15:20:36 -07:00
{ NULL , }
} ;
2013-03-04 13:39:30 +02:00
/* Manufacturer IDs */
2005-04-16 15:20:36 -07:00
struct nand_manufacturers nand_manuf_ids [ ] = {
{ NAND_MFR_TOSHIBA , " Toshiba " } ,
{ NAND_MFR_SAMSUNG , " Samsung " } ,
{ NAND_MFR_FUJITSU , " Fujitsu " } ,
{ NAND_MFR_NATIONAL , " National " } ,
{ NAND_MFR_RENESAS , " Renesas " } ,
{ NAND_MFR_STMICRO , " ST Micro " } ,
2006-05-13 18:07:53 +01:00
{ NAND_MFR_HYNIX , " Hynix " } ,
2007-03-21 18:48:02 -07:00
{ NAND_MFR_MICRON , " Micron " } ,
2012-06-20 16:14:02 -07:00
{ NAND_MFR_AMD , " AMD/Spansion " } ,
2011-11-02 13:34:42 -07:00
{ NAND_MFR_MACRONIX , " Macronix " } ,
2012-05-22 07:30:47 -07:00
{ NAND_MFR_EON , " Eon " } ,
2005-04-16 15:20:36 -07:00
{ 0x0 , " Unknown " }
} ;
2006-05-13 18:07:53 +01:00
EXPORT_SYMBOL ( nand_manuf_ids ) ;
EXPORT_SYMBOL ( nand_flash_ids ) ;
2005-04-16 15:20:36 -07:00
2006-05-13 18:07:53 +01:00
MODULE_LICENSE ( " GPL " ) ;
MODULE_AUTHOR ( " Thomas Gleixner <tglx@linutronix.de> " ) ;
MODULE_DESCRIPTION ( " Nand device & manufacturer IDs " ) ;