The GigaDevice GD5F1GQ4UFxxG SPI NAND utilizes three-byte addresses for its page-read ops. http://www.gigadevice.com/datasheet/gd5f1gq4xfxxg/
Showing the changes to include/linux (1 of 1 file). Show all
Unified · Split
| @@ -68,30 +68,60 @@ · 67 unmodified lines | |||
| 68 | SPI_MEM_OP_DUMMY(ndummy, 1), \ | 68 | SPI_MEM_OP_DUMMY(ndummy, 1), \ |
| 69 | SPI_MEM_OP_DATA_IN(len, buf, 1)) | 69 | SPI_MEM_OP_DATA_IN(len, buf, 1)) |
| 70 | 70 | ||
| 71 | #define SPINAND_PAGE_READ_FROM_CACHE_OP_3A(fast, addr, ndummy, buf, len) \ | ||
| 72 | SPI_MEM_OP(SPI_MEM_OP_CMD(fast ? 0x0b : 0x03, 1), \ | ||
| 73 | SPI_MEM_OP_ADDR(3, addr, 1), \ | ||
| 74 | SPI_MEM_OP_DUMMY(ndummy, 1), \ | ||
| 75 | SPI_MEM_OP_DATA_IN(len, buf, 1)) | ||
| 76 | |||
| 71 | #define SPINAND_PAGE_READ_FROM_CACHE_X2_OP(addr, ndummy, buf, len) \ | 77 | #define SPINAND_PAGE_READ_FROM_CACHE_X2_OP(addr, ndummy, buf, len) \ |
| 72 | SPI_MEM_OP(SPI_MEM_OP_CMD(0x3b, 1), \ | 78 | SPI_MEM_OP(SPI_MEM_OP_CMD(0x3b, 1), \ |
| 73 | SPI_MEM_OP_ADDR(2, addr, 1), \ | 79 | SPI_MEM_OP_ADDR(2, addr, 1), \ |
| 74 | SPI_MEM_OP_DUMMY(ndummy, 1), \ | 80 | SPI_MEM_OP_DUMMY(ndummy, 1), \ |
| 75 | SPI_MEM_OP_DATA_IN(len, buf, 2)) | 81 | SPI_MEM_OP_DATA_IN(len, buf, 2)) |
| 76 | 82 | ||
| 83 | #define SPINAND_PAGE_READ_FROM_CACHE_X2_OP_3A(addr, ndummy, buf, len) \ | ||
| 84 | SPI_MEM_OP(SPI_MEM_OP_CMD(0x3b, 1), \ | ||
| 85 | SPI_MEM_OP_ADDR(3, addr, 1), \ | ||
| 86 | SPI_MEM_OP_DUMMY(ndummy, 1), \ | ||
| 87 | SPI_MEM_OP_DATA_IN(len, buf, 2)) | ||
| 88 | |||
| 77 | #define SPINAND_PAGE_READ_FROM_CACHE_X4_OP(addr, ndummy, buf, len) \ | 89 | #define SPINAND_PAGE_READ_FROM_CACHE_X4_OP(addr, ndummy, buf, len) \ |
| 78 | SPI_MEM_OP(SPI_MEM_OP_CMD(0x6b, 1), \ | 90 | SPI_MEM_OP(SPI_MEM_OP_CMD(0x6b, 1), \ |
| 79 | SPI_MEM_OP_ADDR(2, addr, 1), \ | 91 | SPI_MEM_OP_ADDR(2, addr, 1), \ |
| 80 | SPI_MEM_OP_DUMMY(ndummy, 1), \ | 92 | SPI_MEM_OP_DUMMY(ndummy, 1), \ |
| 81 | SPI_MEM_OP_DATA_IN(len, buf, 4)) | 93 | SPI_MEM_OP_DATA_IN(len, buf, 4)) |
| 82 | 94 | ||
| 95 | #define SPINAND_PAGE_READ_FROM_CACHE_X4_OP_3A(addr, ndummy, buf, len) \ | ||
| 96 | SPI_MEM_OP(SPI_MEM_OP_CMD(0x6b, 1), \ | ||
| 97 | SPI_MEM_OP_ADDR(3, addr, 1), \ | ||
| 98 | SPI_MEM_OP_DUMMY(ndummy, 1), \ | ||
| 99 | SPI_MEM_OP_DATA_IN(len, buf, 4)) | ||
| 100 | |||
| 83 | #define SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(addr, ndummy, buf, len) \ | 101 | #define SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(addr, ndummy, buf, len) \ |
| 84 | SPI_MEM_OP(SPI_MEM_OP_CMD(0xbb, 1), \ | 102 | SPI_MEM_OP(SPI_MEM_OP_CMD(0xbb, 1), \ |
| 85 | SPI_MEM_OP_ADDR(2, addr, 2), \ | 103 | SPI_MEM_OP_ADDR(2, addr, 2), \ |
| 86 | SPI_MEM_OP_DUMMY(ndummy, 2), \ | 104 | SPI_MEM_OP_DUMMY(ndummy, 2), \ |
| 87 | SPI_MEM_OP_DATA_IN(len, buf, 2)) | 105 | SPI_MEM_OP_DATA_IN(len, buf, 2)) |
| 88 | 106 | ||
| 107 | #define SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP_3A(addr, ndummy, buf, len) \ | ||
| 108 | SPI_MEM_OP(SPI_MEM_OP_CMD(0xbb, 1), \ | ||
| 109 | SPI_MEM_OP_ADDR(3, addr, 2), \ | ||
| 110 | SPI_MEM_OP_DUMMY(ndummy, 2), \ | ||
| 111 | SPI_MEM_OP_DATA_IN(len, buf, 2)) | ||
| 112 | |||
| 89 | #define SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(addr, ndummy, buf, len) \ | 113 | #define SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(addr, ndummy, buf, len) \ |
| 90 | SPI_MEM_OP(SPI_MEM_OP_CMD(0xeb, 1), \ | 114 | SPI_MEM_OP(SPI_MEM_OP_CMD(0xeb, 1), \ |
| 91 | SPI_MEM_OP_ADDR(2, addr, 4), \ | 115 | SPI_MEM_OP_ADDR(2, addr, 4), \ |
| 92 | SPI_MEM_OP_DUMMY(ndummy, 4), \ | 116 | SPI_MEM_OP_DUMMY(ndummy, 4), \ |
| 93 | SPI_MEM_OP_DATA_IN(len, buf, 4)) | 117 | SPI_MEM_OP_DATA_IN(len, buf, 4)) |
| 94 | 118 | ||
| 119 | #define SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP_3A(addr, ndummy, buf, len) \ | ||
| 120 | SPI_MEM_OP(SPI_MEM_OP_CMD(0xeb, 1), \ | ||
| 121 | SPI_MEM_OP_ADDR(3, addr, 4), \ | ||
| 122 | SPI_MEM_OP_DUMMY(ndummy, 4), \ | ||
| 123 | SPI_MEM_OP_DATA_IN(len, buf, 4)) | ||
| 124 | |||
| 95 | #define SPINAND_PROG_EXEC_OP(addr) \ | 125 | #define SPINAND_PROG_EXEC_OP(addr) \ |
| 96 | SPI_MEM_OP(SPI_MEM_OP_CMD(0x10, 1), \ | 126 | SPI_MEM_OP(SPI_MEM_OP_CMD(0x10, 1), \ |
| 97 | SPI_MEM_OP_ADDR(3, addr, 1), \ | 127 | SPI_MEM_OP_ADDR(3, addr, 1), \ |