|
@@ -278,6 +278,32 @@ int spi_flash_cmd_write_status(struct spi_flash *flash, u8 sr)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+int spi_flash_cmd_bankaddr_write(struct spi_flash *flash, u8 bank_sel)
|
|
|
+{
|
|
|
+ u8 cmd;
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ ret = spi_flash_cmd_write_enable(flash);
|
|
|
+ if (ret < 0) {
|
|
|
+ debug("SF: enabling write failed\n");
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ ret = spi_flash_cmd_write(flash->spi, &cmd, 1, &bank_sel, 1);
|
|
|
+ if (ret) {
|
|
|
+ debug("SF: fail to write bank addr register\n");
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ ret = spi_flash_cmd_wait_ready(flash, SPI_FLASH_PROG_TIMEOUT);
|
|
|
+ if (ret < 0) {
|
|
|
+ debug("SF: write bank addr register timed out\n");
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
#ifdef CONFIG_OF_CONTROL
|
|
|
int spi_flash_decode_fdt(const void *blob, struct spi_flash *flash)
|
|
|
{
|