blob: 43aeba3a4c8f662e94cfcfa3f0b85a1cde7ebe2c [file] [log] [blame]
/*
* drivers/mtd/devices/goldfish_nand_reg.h
*
* Copyright (C) 2007 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef GOLDFISH_NAND_REG_H
#define GOLDFISH_NAND_REG_H
enum nand_cmd {
/* Write device name for NAND_DEV to NAND_DATA (vaddr) */
NAND_CMD_GET_DEV_NAME,
NAND_CMD_READ,
NAND_CMD_WRITE,
NAND_CMD_ERASE,
/* NAND_RESULT is 1 if block is bad, 0 if it is not */
NAND_CMD_BLOCK_BAD_GET,
NAND_CMD_BLOCK_BAD_SET,
NAND_CMD_READ_WITH_PARAMS,
NAND_CMD_WRITE_WITH_PARAMS,
NAND_CMD_ERASE_WITH_PARAMS
};
enum nand_dev_flags {
NAND_DEV_FLAG_READ_ONLY = 0x00000001,
NAND_DEV_FLAG_CMD_PARAMS_CAP = 0x00000002,
};
#define NAND_VERSION_CURRENT (1)
enum nand_reg {
/* Global */
NAND_VERSION = 0x000,
NAND_NUM_DEV = 0x004,
NAND_DEV = 0x008,
/* Dev info */
NAND_DEV_FLAGS = 0x010,
NAND_DEV_NAME_LEN = 0x014,
NAND_DEV_PAGE_SIZE = 0x018,
NAND_DEV_EXTRA_SIZE = 0x01c,
NAND_DEV_ERASE_SIZE = 0x020,
NAND_DEV_SIZE_LOW = 0x028,
NAND_DEV_SIZE_HIGH = 0x02c,
/* Command */
NAND_RESULT = 0x040,
NAND_COMMAND = 0x044,
NAND_DATA = 0x048,
NAND_DATA_HIGH = 0x100,
NAND_TRANSFER_SIZE = 0x04c,
NAND_ADDR_LOW = 0x050,
NAND_ADDR_HIGH = 0x054,
NAND_CMD_PARAMS_ADDR_LOW = 0x058,
NAND_CMD_PARAMS_ADDR_HIGH = 0x05c,
};
struct cmd_params {
u32 dev;
u32 addr_low;
u32 addr_high;
u32 transfer_size;
unsigned long data;
u32 result;
};
#endif