| /* |
| * 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 |