@@ -977,6 +977,37 @@ static int flash_flexspi_nor_check_jedec(struct flash_flexspi_nor_data *data,
977
977
}
978
978
/* Still return an error- we want the JEDEC configuration to run */
979
979
return - ENOTSUP ;
980
+ case 0x40ef :
981
+ /* W25Q512JV flash, use 4 byte read/write */
982
+ flexspi_lut [READ ][0 ] = FLEXSPI_LUT_SEQ (
983
+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_4READ_4B ,
984
+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_4PAD , 32 );
985
+ /* Flash needs 6 dummy cycles (at 104MHz) */
986
+ flexspi_lut [READ ][1 ] = FLEXSPI_LUT_SEQ (
987
+ kFLEXSPI_Command_DUMMY_SDR , kFLEXSPI_4PAD , 6 ,
988
+ kFLEXSPI_Command_READ_SDR , kFLEXSPI_4PAD , 0x04 );
989
+ /* Only 1S-1S-4S page program supported */
990
+ flexspi_lut [PAGE_PROGRAM ][0 ] = FLEXSPI_LUT_SEQ (
991
+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_PP_1_1_4_4B ,
992
+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_1PAD , 32 );
993
+ flexspi_lut [PAGE_PROGRAM ][1 ] = FLEXSPI_LUT_SEQ (
994
+ kFLEXSPI_Command_WRITE_SDR , kFLEXSPI_4PAD , 0x4 ,
995
+ kFLEXSPI_Command_STOP , kFLEXSPI_1PAD , 0x0 );
996
+ /* Update ERASE commands for 4 byte mode */
997
+ flexspi_lut [ERASE_SECTOR ][0 ] = FLEXSPI_LUT_SEQ (
998
+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_SE_4B ,
999
+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_1PAD , 32 );
1000
+ flexspi_lut [ERASE_BLOCK ][0 ] = FLEXSPI_LUT_SEQ (
1001
+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , 0xDC ,
1002
+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_1PAD , 32 ),
1003
+ /* Read instruction used for polling is 0x05 */
1004
+ data -> legacy_poll = true;
1005
+ flexspi_lut [READ_STATUS_REG ][0 ] = FLEXSPI_LUT_SEQ (
1006
+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_RDSR ,
1007
+ kFLEXSPI_Command_READ_SDR , kFLEXSPI_1PAD , 0x01 );
1008
+ /* Device uses bit 1 of status reg 2 for QE */
1009
+ return flash_flexspi_nor_quad_enable (data , flexspi_lut ,
1010
+ JESD216_DW15_QER_VAL_S2B1v5 );
980
1011
case 0x25C2 :
981
1012
/* MX25 flash, use 4 byte read/write */
982
1013
flexspi_lut [READ ][0 ] = FLEXSPI_LUT_SEQ (
0 commit comments