@@ -622,8 +622,8 @@ static int flash_flexspi_nor_quad_enable(struct flash_flexspi_nor_data *data,
622622 kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_WRSR2 ,
623623 kFLEXSPI_Command_WRITE_SDR , kFLEXSPI_1PAD , 0x1 );
624624
625- /* Set bit 7 of status register 2 */
626- bit = BIT (7 );
625+ /* Set bit 1 of status register 2 */
626+ bit = BIT (1 );
627627 rd_size = 1 ;
628628 wr_size = 1 ;
629629 break ;
@@ -1293,6 +1293,40 @@ static int flash_flexspi_nor_check_jedec(struct flash_flexspi_nor_data *data,
12931293 kFLEXSPI_Command_SDR , kFLEXSPI_8PAD , SPI_NOR_CMD_WREN ,
12941294 kFLEXSPI_Command_STOP , kFLEXSPI_1PAD , 0 );
12951295 return 0 ;
1296+ case 0x1940C8 : /* GD25Q256E */
1297+ flexspi_lut [READ ][0 ] = FLEXSPI_LUT_SEQ (
1298+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_4READ_4B ,
1299+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_4PAD , 0x20 );
1300+ /* Flash needs 15 dummy cycles */
1301+ flexspi_lut [READ ][1 ] = FLEXSPI_LUT_SEQ (
1302+ kFLEXSPI_Command_MODE8_SDR , kFLEXSPI_4PAD , 0xF0 ,
1303+ kFLEXSPI_Command_DUMMY_SDR , kFLEXSPI_4PAD , 0x04 );
1304+ flexspi_lut [READ ][2 ] = FLEXSPI_LUT_SEQ (
1305+ kFLEXSPI_Command_READ_SDR , kFLEXSPI_4PAD , 0x04 ,
1306+ kFLEXSPI_Command_STOP , kFLEXSPI_1PAD , 0x00 );
1307+
1308+ data -> legacy_poll = true;
1309+ flexspi_lut [READ_STATUS_REG ][0 ] = FLEXSPI_LUT_SEQ (
1310+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_RDSR ,
1311+ kFLEXSPI_Command_READ_SDR , kFLEXSPI_1PAD , 0x04 );
1312+
1313+ flexspi_lut [ERASE_SECTOR ][0 ] = FLEXSPI_LUT_SEQ (
1314+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_SE_4B ,
1315+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_1PAD , 0x20 );
1316+
1317+ flexspi_lut [ERASE_BLOCK ][0 ] = FLEXSPI_LUT_SEQ (
1318+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_BE_4B ,
1319+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_1PAD , 0x20 );
1320+
1321+ flexspi_lut [PAGE_PROGRAM ][0 ] = FLEXSPI_LUT_SEQ (
1322+ kFLEXSPI_Command_SDR , kFLEXSPI_1PAD , SPI_NOR_CMD_PP_1_1_4_4B ,
1323+ kFLEXSPI_Command_RADDR_SDR , kFLEXSPI_1PAD , 0x20 );
1324+ flexspi_lut [PAGE_PROGRAM ][1 ] = FLEXSPI_LUT_SEQ (
1325+ kFLEXSPI_Command_WRITE_SDR , kFLEXSPI_4PAD , 0x04 ,
1326+ kFLEXSPI_Command_STOP , kFLEXSPI_1PAD , 0x00 );
1327+
1328+ return flash_flexspi_nor_quad_enable (data , flexspi_lut ,
1329+ JESD216_DW15_QER_VAL_S2B1v6 );
12961330
12971331 default :
12981332 return - ENOTSUP ;
0 commit comments