| OLD | NEW |
| (Empty) | |
| 1 /* register offset */ |
| 2 #define NAND_COMMAND_0 0x00 |
| 3 #define NAND_CMD_GO Bit31 |
| 4 #define NAND_CMD_CLE Bit30 |
| 5 #define NAND_CMD_ALE Bit29 |
| 6 #define NAND_CMD_PIO Bit28 |
| 7 #define NAND_CMD_TX Bit27 |
| 8 #define NAND_CMD_RX Bit26 |
| 9 #define NAND_CMD_SEC_CMD Bit25 |
| 10 #define NAND_CMD_AFT_DAT Bit24 |
| 11 #define NAND_CMD_TRANS_SIZE_SHIFT 20 |
| 12 #define NAND_CMD_TRANS_SIZE_BYTES1 0 |
| 13 #define NAND_CMD_TRANS_SIZE_BYTES2 1 |
| 14 #define NAND_CMD_TRANS_SIZE_BYTES3 2 |
| 15 #define NAND_CMD_TRANS_SIZE_BYTES4 3 |
| 16 #define NAND_CMD_TRANS_SIZE_BYTES5 4 |
| 17 #define NAND_CMD_TRANS_SIZE_BYTES6 5 |
| 18 #define NAND_CMD_TRANS_SIZE_BYTES7 6 |
| 19 #define NAND_CMD_TRANS_SIZE_BYTES8 7 |
| 20 #define NAND_CMD_A_VALID Bit19 |
| 21 #define NAND_CMD_B_VALID Bit18 |
| 22 #define NAND_CMD_RD_STATUS_CHK Bit17 |
| 23 #define NAND_CMD_R_BSY_CHK Bit16 |
| 24 #define NAND_CMD_CE7 Bit15 |
| 25 #define NAND_CMD_CE6 Bit14 |
| 26 #define NAND_CMD_CE5 Bit13 |
| 27 #define NAND_CMD_CE4 Bit12 |
| 28 #define NAND_CMD_CE3 Bit11 |
| 29 #define NAND_CMD_CE2 Bit10 |
| 30 #define NAND_CMD_CE1 Bit9 |
| 31 #define NAND_CMD_CE0 Bit8 |
| 32 #define NAND_CMD_CLE_BYTE_SIZE_SHIFT 4 |
| 33 #define NAND_CMD_CLE_BYTES1 0 |
| 34 #define NAND_CMD_CLE_BYTES2 1 |
| 35 #define NAND_CMD_CLE_BYTES3 2 |
| 36 #define NAND_CMD_CLE_BYTES4 3 |
| 37 #define NAND_CMD_ALE_BYTE_SIZE_SHIFT 0 |
| 38 #define NAND_CMD_ALE_BYTES1 0 |
| 39 #define NAND_CMD_ALE_BYTES2 1 |
| 40 #define NAND_CMD_ALE_BYTES3 2 |
| 41 #define NAND_CMD_ALE_BYTES4 3 |
| 42 #define NAND_CMD_ALE_BYTES5 4 |
| 43 #define NAND_CMD_ALE_BYTES6 5 |
| 44 #define NAND_CMD_ALE_BYTES7 6 |
| 45 #define NAND_CMD_ALE_BYTES8 7 |
| 46 |
| 47 #define NAND_STATUS_0 0x04 |
| 48 #define NAND_STATUS_RBSY0 Bit8 |
| 49 #define NAND_ISR_0 0x08 |
| 50 #define NAND_IER_0 0x0C |
| 51 #define NAND_CONFIG_0 0x10 |
| 52 #define NAND_CONFIG_HW_ECC_MASK Bit31 |
| 53 #define NAND_CONFIG_HW_ECC_DISABLE 0 |
| 54 #define NAND_CONFIG_HW_ECC_ENABLE Bit31 |
| 55 #define NAND_CONFIG_HW_ECC_SEL_MASK Bit30 |
| 56 #define NAND_CONFIG_HW_ECC_SEL_HAMMING 0 |
| 57 #define NAND_CONFIG_HW_ECC_SEL_RS Bit30 |
| 58 #define NAND_CONFIG_HW_ECC_CORRECTION_MASK Bit29 |
| 59 #define NAND_CONFIG_HW_ECC_CORRECTION_DISABLE 0 |
| 60 #define NAND_CONFIG_HW_ECC_CORRECTION_ENABLE Bit29 |
| 61 #define NAND_CONFIG_PIPELINE_EN_MASK Bit28 |
| 62 #define NAND_CONFIG_PIPELINE_EN_DISABLE 0 |
| 63 #define NAND_CONFIG_PIPELINE_EN_ENABLE Bit28 |
| 64 #define NAND_CONFIG_ECC_EN_TAG_MASK Bit27 |
| 65 #define NAND_CONFIG_ECC_EN_TAG_DISABLE 0 |
| 66 #define NAND_CONFIG_ECC_EN_TAG_ENABLE Bit27 |
| 67 #define NAND_CONFIG_TVALUE (Bit25+Bit24) |
| 68 #define NAND_CONFIG_TVAL4 (0<<24) |
| 69 #define NAND_CONFIG_TVAL6 (1<<24) |
| 70 #define NAND_CONFIG_TVAL8 (2<<24) |
| 71 #define NAND_CONFIG_SKIP_SPARE_MASK Bit23 |
| 72 #define NAND_CONFIG_SKIP_SPARE_DISABLE 0 |
| 73 #define NAND_CONFIG_SKIP_SPARE_ENABLE Bit23 |
| 74 #define NAND_CONFIG_COM_BSY_MASK Bit22 |
| 75 #define NAND_CONFIG_COM_BSY_DISABLE 0 |
| 76 #define NAND_CONFIG_COM_BSY_ENABLE Bit22 |
| 77 #define NAND_CONFIG_BUS_WIDTH_MASK Bit21 |
| 78 #define NAND_CONFIG_BUS_WIDTH_8BIT 0 |
| 79 #define NAND_CONFIG_BUS_WIDTH_16BIT Bit21 |
| 80 #define NAND_CONFIG_LPDDR1_MODE_MASK Bit20 |
| 81 #define NAND_CONFIG_LPDDR1_MODE_DISABLE 0 |
| 82 #define NAND_CONFIG_LPDDR1_MODE_ENABLE Bit20 |
| 83 #define NAND_CONFIG_EDO_MODE_MASK Bit19 |
| 84 #define NAND_CONFIG_EDO_MODE_DISABLE 0 |
| 85 #define NAND_CONFIG_EDO_MODE_ENABLE Bit19 |
| 86 #define NAND_CONFIG_PAGE_SIZE_SEL_MASK (Bit18+Bit17+Bit16) |
| 87 #define NAND_CONFIG_PAGE_SIZE_256 (0<<16) |
| 88 #define NAND_CONFIG_PAGE_SIZE_512 (1<<16) |
| 89 #define NAND_CONFIG_PAGE_SIZE_1024 (2<<16) |
| 90 #define NAND_CONFIG_PAGE_SIZE_2048 (3<<16) |
| 91 #define NAND_CONFIG_PAGE_SIZE_4096 (4<<16) |
| 92 #define NAND_CONFIG_SKIP_SPARE_SEL_MASK (Bit15+Bit14) |
| 93 #define NAND_CONFIG_SKIP_SPARE_SEL_4 (0<<14) |
| 94 #define NAND_CONFIG_SKIP_SPARE_SEL_8 (1<<14) |
| 95 #define NAND_CONFIG_SKIP_SPARE_SEL_12 (2<<14) |
| 96 #define NAND_CONFIG_SKIP_SPARE_SEL_16 (3<<14) |
| 97 #define NAND_CONFIG_TAG_BYTE_SIZE_MASK 0x1FF |
| 98 |
| 99 #define NAND_TIMING_0 0x14 |
| 100 #define NAND_TIMING_TRP_RESP_CNT_SHIFT 28 |
| 101 #define NAND_TIMING_TWB_CNT_SHIFT 24 |
| 102 #define NAND_TIMING_TCR_TAR_TRR_CNT_SHIFT 20 |
| 103 #define NAND_TIMING_TWHR_CNT_SHIFT 16 |
| 104 #define NAND_TIMING_TCS_CNT_SHIFT 14 |
| 105 #define NAND_TIMING_TWH_CNT_SHIFT 12 |
| 106 #define NAND_TIMING_TWP_CNT_SHIFT 8 |
| 107 #define NAND_TIMING_TRH_CNT_SHIFT 4 |
| 108 #define NAND_TIMING_TRP_CNT_SHIFT 0 |
| 109 #define NAND_RESP_0 0x18 |
| 110 #define NAND_TIMING2_0 0x1C |
| 111 #define NAND_TIMING2_TADL_CNT_SHIFT 0 |
| 112 #define NAND_CMD_REG1_0 0x20 |
| 113 #define NAND_CMD_REG2_0 0x24 |
| 114 #define NAND_ADDR_REG1_0 0x28 |
| 115 #define NAND_ADDR_REG2_0 0x2C |
| 116 |
| 117 #define LP_OPTIONS (NAND_NO_READRDY | NAND_NO_AUTOINCR) |
| 118 |
| 119 static uint8_t tegra2_nand_read_byte(struct mtd_info *mtd); |
| 120 static void tegra2_nand_write_buf(struct mtd_info *mtd, const uint8_t *buf, \ |
| 121 int len); |
| 122 static void tegra2_nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int len); |
| 123 static int tegra2_nand_waitfor_cmd_completion(struct mtd_info *mtd); |
| 124 static int tegra2_nand_dev_ready(struct mtd_info *mtd); |
| 125 |
| 126 |
| 127 |
| OLD | NEW |