mtd: spi-nor: cqspi: Fix build on arches missing readsl/writesl
authorMarek Vasut <marex@denx.de>
Tue, 2 Aug 2016 13:10:47 +0000 (15:10 +0200)
committerCyrille Pitchen <cyrille.pitchen@atmel.com>
Wed, 4 Jan 2017 08:54:03 +0000 (09:54 +0100)
The x86-64 and some other architectures are missing readsl/writesl
functions, so this driver won't build on them. Use a more portable
ioread32_rep()/iowrite32_rep() instead.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Alan Tull <atull@opensource.altera.com>
Cc: Brian Norris <computersforpeace@gmail.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Graham Moore <grmoore@opensource.altera.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Yves Vandervennet <yvanderv@opensource.altera.com>
Suggested-by: Stefan Roese <sr@denx.de>
Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
drivers/mtd/spi-nor/Kconfig
drivers/mtd/spi-nor/cadence-quadspi.c

index 4a682ee0f6325cc19d7a81a2dc857985c686b6ee..1e6f037923d9a1845bac17c230fca793e24f64f9 100644 (file)
@@ -40,7 +40,7 @@ config SPI_ATMEL_QUADSPI
 
 config SPI_CADENCE_QUADSPI
        tristate "Cadence Quad SPI controller"
-       depends on OF && ARM
+       depends on OF && (ARM || COMPILE_TEST)
        help
          Enable support for the Cadence Quad SPI Flash controller.
 
index d489fbd07c12b6e73bf0f73e5f3de2696d4da3c4..3fb7be857bb6348afee8ea701474094b29bb77fa 100644 (file)
@@ -526,7 +526,8 @@ static int cqspi_indirect_read_execute(struct spi_nor *nor,
                        bytes_to_read *= cqspi->fifo_width;
                        bytes_to_read = bytes_to_read > remaining ?
                                        remaining : bytes_to_read;
-                       readsl(ahb_base, rxbuf, DIV_ROUND_UP(bytes_to_read, 4));
+                       ioread32_rep(ahb_base, rxbuf,
+                                    DIV_ROUND_UP(bytes_to_read, 4));
                        rxbuf += bytes_to_read;
                        remaining -= bytes_to_read;
                        bytes_to_read = cqspi_get_rd_sram_level(cqspi);
@@ -610,7 +611,8 @@ static int cqspi_indirect_write_execute(struct spi_nor *nor,
 
        while (remaining > 0) {
                write_bytes = remaining > page_size ? page_size : remaining;
-               writesl(cqspi->ahb_base, txbuf, DIV_ROUND_UP(write_bytes, 4));
+               iowrite32_rep(cqspi->ahb_base, txbuf,
+                             DIV_ROUND_UP(write_bytes, 4));
 
                ret = wait_for_completion_timeout(&cqspi->transfer_complete,
                                                  msecs_to_jiffies