@@ -1194,6 +1194,39 @@ static int flash_flexspi_nor_check_jedec(struct flash_flexspi_nor_data *data,
11941194 /* Device uses bit 1 of status reg 2 for QE */
11951195 return flash_flexspi_nor_quad_enable (data , flexspi_lut ,
11961196 JESD216_DW15_QER_VAL_S2B1v5 );
1197+ case 0x1740EF :
1198+ /* W25Q64JV flash, use 3 byte read/write */
1199+ flexspi_lut [READ ][0 ] = FLEXSPI_LUT_SEQ (
1200+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_4READ ,
1201+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_4PAD , 24 );
1202+ /* Flash needs 6 dummy cycles */
1203+ flexspi_lut [READ ][1 ] = FLEXSPI_LUT_SEQ (
1204+ kFLEXSPI_Command_DUMMY_SDR , kFLEXSPI_4PAD , 6 ,
1205+ kFLEXSPI_Command_READ_SDR , kFLEXSPI_4PAD , 0x04 );
1206+ /* Only 1S-1S-4S page program supported */
1207+ flexspi_lut [PAGE_PROGRAM ][0 ] =
1208+ FLEXSPI_LUT_SEQ (
1209+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_PP_1_1_4 ,
1210+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_1PAD , 24 );
1211+ flexspi_lut [PAGE_PROGRAM ][1 ] = FLEXSPI_LUT_SEQ (
1212+ kFLEXSPI_Command_WRITE_SDR , kFLEXSPI_4PAD , 0x3 ,
1213+ kFLEXSPI_Command_STOP , kFLEXSPI_1PAD , 0x0 );
1214+ /* Update ERASE commands for 3 byte mode */
1215+ flexspi_lut [ERASE_SECTOR ][0 ] = FLEXSPI_LUT_SEQ (
1216+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_SE ,
1217+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_1PAD , 24 );
1218+ /* 64 KB (0x10000) block erase 0xD8 */
1219+ flexspi_lut [ERASE_BLOCK ][0 ] = FLEXSPI_LUT_SEQ (
1220+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_BE ,
1221+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_1PAD , 24 ),
1222+ /* Read instruction used for polling is 0x05 */
1223+ data -> legacy_poll = true;
1224+ flexspi_lut [READ_STATUS_REG ][0 ] = FLEXSPI_LUT_SEQ (
1225+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_RDSR ,
1226+ kFLEXSPI_Command_READ_SDR , kFLEXSPI_1PAD , 0x01 );
1227+ /* Device uses bit 1 of status reg 2 for QE */
1228+ return flash_flexspi_nor_quad_enable (data , flexspi_lut ,
1229+ JESD216_DW15_QER_VAL_S2B1v5 );
11971230 case 0x3A25C2 :
11981231 /* MX25U51245G flash, use 4 byte read/write */
11991232 flexspi_lut [READ ][0 ] = FLEXSPI_LUT_SEQ (
0 commit comments