int spi_flash_cmd_write_status_config(u8 *srcr) { u8 cmd; int ret; size_t cmd_len = 1; size_t data_len = 2; ret = spi_flash_cmd(CMD_WRITE_ENABLE, NULL, 0); if (ret < 0) { print("SF: enabling write failed\n"); return ret; } cmd = CMD_WRITE_STATUS; ret = spi_flash_read_write(&cmd, cmd_len, srcr, NULL, data_len); if (ret) { print("SF: fail to write status and config register\n"); return ret; } ret = spi_flash_cmd_poll_bit(SPI_FLASH_PROG_TIMEOUT, CMD_READ_STATUS, STATUS_WIP); if (ret < 0) { print("SF: write status register timed out\n"); return ret; } return 0; }
int spi_flash_cmd_write(struct spi_slave *spi, const u8 *cmd, size_t cmd_len, const void *data, size_t data_len) { return spi_flash_read_write(spi, cmd, cmd_len, data, NULL, data_len); }
int spi_flash_cmd_read(u8 *cmd, size_t cmd_len, void *data, size_t data_len) { return spi_flash_read_write(cmd, cmd_len, NULL, data, data_len); }
static inline int spi_flash_cmd_read(const u8 *cmd, u32 cmd_len, void *data, u32 data_len) { return spi_flash_read_write(cmd, cmd_len, NULL, data, data_len); }