SPINAND_PROG_LOAD_1S_1S_4S_OP(false, 0, NULL, 0),
SPINAND_PROG_LOAD_1S_1S_1S_OP(false, 0, NULL, 0));
+#define SPINAND_WINBOND_WRITE_VCR_1S_1S_1S(reg, buf) \
+ SPI_MEM_OP(SPI_MEM_OP_CMD(0x81, 1), \
+ SPI_MEM_OP_ADDR(3, reg, 1), \
+ SPI_MEM_OP_NO_DUMMY, \
+ SPI_MEM_OP_DATA_OUT(1, buf, 1))
+
+static struct spi_mem_op
+spinand_fill_winbond_write_vcr_op(struct spinand_device *spinand, u8 reg, void *valptr)
+{
+ return (struct spi_mem_op)SPINAND_WINBOND_WRITE_VCR_1S_1S_1S(reg, valptr);
+}
+
#define SPINAND_WINBOND_SELECT_TARGET_1S_0_1S(buf) \
SPI_MEM_OP(SPI_MEM_OP_CMD(0xc2, 1), \
SPI_MEM_OP_NO_ADDR, \
static int w35n0xjw_write_vcr(struct spinand_device *spinand, u8 reg, u8 val)
{
- struct spi_mem_op op =
- SPI_MEM_OP(SPI_MEM_OP_CMD(0x81, 1),
- SPI_MEM_OP_ADDR(3, reg, 1),
- SPI_MEM_OP_NO_DUMMY,
- SPI_MEM_OP_DATA_OUT(1, spinand->scratchbuf, 1));
+ struct spi_mem_op op = SPINAND_OP(spinand, winbond_write_vcr,
+ reg, spinand->scratchbuf);
int ret;
*spinand->scratchbuf = val;