| 1 | |
|---|
| 2 | #ifndef __MTD_IFLASH_H__ |
|---|
| 3 | #define __MTD_IFLASH_H__ |
|---|
| 4 | |
|---|
| 5 | /* Extended CIS registers for Series 2 and 2+ cards */ |
|---|
| 6 | /* The registers are all offsets from 0x4000 */ |
|---|
| 7 | #define CISREG_CSR 0x0100 |
|---|
| 8 | #define CISREG_WP 0x0104 |
|---|
| 9 | #define CISREG_RDYBSY 0x0140 |
|---|
| 10 | |
|---|
| 11 | /* Extended CIS registers for Series 2 cards */ |
|---|
| 12 | #define CISREG_SLEEP 0x0118 |
|---|
| 13 | #define CISREG_RDY_MASK 0x0120 |
|---|
| 14 | #define CISREG_RDY_STATUS 0x0130 |
|---|
| 15 | |
|---|
| 16 | /* Extended CIS registers for Series 2+ cards */ |
|---|
| 17 | #define CISREG_VCR 0x010c |
|---|
| 18 | |
|---|
| 19 | /* Card Status Register */ |
|---|
| 20 | #define CSR_SRESET 0x20 /* Soft reset */ |
|---|
| 21 | #define CSR_CMWP 0x10 /* Common memory write protect */ |
|---|
| 22 | #define CSR_PWRDOWN 0x08 /* Power down status */ |
|---|
| 23 | #define CSR_CISWP 0x04 /* Common memory CIS WP */ |
|---|
| 24 | #define CSR_WP 0x02 /* Mechanical write protect */ |
|---|
| 25 | #define CSR_READY 0x01 /* Ready/busy status */ |
|---|
| 26 | |
|---|
| 27 | /* Write Protection Register */ |
|---|
| 28 | #define WP_BLKEN 0x04 /* Enable block locking */ |
|---|
| 29 | #define WP_CMWP 0x02 /* Common memory write protect */ |
|---|
| 30 | #define WP_CISWP 0x01 /* Common memory CIS WP */ |
|---|
| 31 | |
|---|
| 32 | /* Voltage Control Register */ |
|---|
| 33 | #define VCR_VCC_LEVEL 0x80 /* 0 = 5V, 1 = 3.3V */ |
|---|
| 34 | #define VCR_VPP_VALID 0x02 /* Vpp Valid */ |
|---|
| 35 | #define VCR_VPP_GEN 0x01 /* Integrated Vpp generator */ |
|---|
| 36 | |
|---|
| 37 | /* Ready/Busy Mode Register */ |
|---|
| 38 | #define RDYBSY_RACK 0x02 /* Ready acknowledge */ |
|---|
| 39 | #define RDYBSY_MODE 0x01 /* 1 = high performance */ |
|---|
| 40 | |
|---|
| 41 | #define LOW(x) ((x) & 0xff) |
|---|
| 42 | |
|---|
| 43 | /* 28F008SA-Compatible Command Set */ |
|---|
| 44 | #define IF_READ_ARRAY 0xffff |
|---|
| 45 | #define IF_INTEL_ID 0x9090 |
|---|
| 46 | #define IF_READ_CSR 0x7070 |
|---|
| 47 | #define IF_CLEAR_CSR 0x5050 |
|---|
| 48 | #define IF_WRITE 0x4040 |
|---|
| 49 | #define IF_BLOCK_ERASE 0x2020 |
|---|
| 50 | #define IF_ERASE_SUSPEND 0xb0b0 |
|---|
| 51 | #define IF_CONFIRM 0xd0d0 |
|---|
| 52 | |
|---|
| 53 | /* 28F016SA Performance Enhancement Commands */ |
|---|
| 54 | #define IF_READ_PAGE 0x7575 |
|---|
| 55 | #define IF_PAGE_SWAP 0x7272 |
|---|
| 56 | #define IF_SINGLE_LOAD 0x7474 |
|---|
| 57 | #define IF_SEQ_LOAD 0xe0e0 |
|---|
| 58 | #define IF_PAGE_WRITE 0x0c0c |
|---|
| 59 | #define IF_RDY_MODE 0x9696 |
|---|
| 60 | #define IF_RDY_LEVEL 0x0101 |
|---|
| 61 | #define IF_RDY_PULSE_WRITE 0x0202 |
|---|
| 62 | #define IF_RDY_PULSE_ERASE 0x0303 |
|---|
| 63 | #define IF_RDY_DISABLE 0x0404 |
|---|
| 64 | #define IF_LOCK_BLOCK 0x7777 |
|---|
| 65 | #define IF_UPLOAD_STATUS 0x9797 |
|---|
| 66 | #define IF_READ_ESR 0x7171 |
|---|
| 67 | #define IF_ERASE_UNLOCKED 0xa7a7 |
|---|
| 68 | #define IF_SLEEP 0xf0f0 |
|---|
| 69 | #define IF_ABORT 0x8080 |
|---|
| 70 | #define IF_UPLOAD_DEVINFO 0x9999 |
|---|
| 71 | |
|---|
| 72 | /* Definitions for Compatible Status Register */ |
|---|
| 73 | #define CSR_WR_READY 0x8080 /* Write state machine status */ |
|---|
| 74 | #define CSR_ERA_SUSPEND 0x4040 /* Erase suspend status */ |
|---|
| 75 | #define CSR_ERA_ERR 0x2020 /* Erase status */ |
|---|
| 76 | #define CSR_WR_ERR 0x1010 /* Data write status */ |
|---|
| 77 | #define CSR_VPP_LOW 0x0808 /* Vpp status */ |
|---|
| 78 | |
|---|
| 79 | /* Definitions for Global Status Register */ |
|---|
| 80 | #define GSR_WR_READY 0x8080 /* Write state machine status */ |
|---|
| 81 | #define GSR_OP_SUSPEND 0x4040 /* Operation suspend status */ |
|---|
| 82 | #define GSR_OP_ERR 0x2020 /* Device operation status */ |
|---|
| 83 | #define GSR_SLEEP 0x1010 /* Device sleep status */ |
|---|
| 84 | #define GSR_QUEUE_FULL 0x0808 /* Queue status */ |
|---|
| 85 | #define GSR_PAGE_AVAIL 0x0404 /* Page buffer available status */ |
|---|
| 86 | #define GSR_PAGE_READY 0x0202 /* Page buffer status */ |
|---|
| 87 | #define GSR_PAGE_SELECT 0x0101 /* Page buffer select status */ |
|---|
| 88 | |
|---|
| 89 | /* Definitions for Block Status Register */ |
|---|
| 90 | #define BSR_READY 0x8080 /* Block status */ |
|---|
| 91 | #define BSR_UNLOCK 0x4040 /* Block lock status */ |
|---|
| 92 | #define BSR_FAILED 0x2020 /* Block operation status */ |
|---|
| 93 | #define BSR_ABORTED 0x1010 /* Operation abort status */ |
|---|
| 94 | #define BSR_QUEUE_FULL 0x0808 /* Queue status */ |
|---|
| 95 | #define BSR_VPP_LOW 0x0404 /* Vpp status */ |
|---|
| 96 | |
|---|
| 97 | #endif /* __MTD_IFLASH_H__ */ |
|---|