]> git.sur5r.net Git - u-boot/blobdiff - drivers/spi/ti_qspi.c
Merge branch 'master' of git://git.denx.de/u-boot-video
[u-boot] / drivers / spi / ti_qspi.c
index 78d8b1368de697df724fc8f63661f1c340e4155d..9a372ad31dae1f30d3508271b4eb67a1ecd93036 100644 (file)
@@ -45,22 +45,22 @@ DECLARE_GLOBAL_DATA_PTR;
 #define QSPI_XFER_DONE                  QSPI_WC
 #define MM_SWITCH                       0x01
 #define MEM_CS(cs)                      ((cs + 1) << 8)
-#define MEM_CS_UNSELECT                 0xfffff0ff
+#define MEM_CS_UNSELECT                 0xfffff8ff
 #define MMAP_START_ADDR_DRA            0x5c000000
 #define MMAP_START_ADDR_AM43x          0x30000000
 #define CORE_CTRL_IO                    0x4a002558
 
 #define QSPI_CMD_READ                   (0x3 << 0)
 #define QSPI_CMD_READ_DUAL             (0x6b << 0)
-#define QSPI_CMD_READ_QUAD              (0x6b << 0)
+#define QSPI_CMD_READ_QUAD              (0x6c << 0)
 #define QSPI_CMD_READ_FAST              (0x0b << 0)
-#define QSPI_SETUP0_NUM_A_BYTES         (0x2 << 8)
+#define QSPI_SETUP0_NUM_A_BYTES         (0x3 << 8)
 #define QSPI_SETUP0_NUM_D_BYTES_NO_BITS (0x0 << 10)
 #define QSPI_SETUP0_NUM_D_BYTES_8_BITS  (0x1 << 10)
 #define QSPI_SETUP0_READ_NORMAL         (0x0 << 12)
 #define QSPI_SETUP0_READ_DUAL           (0x1 << 12)
 #define QSPI_SETUP0_READ_QUAD           (0x3 << 12)
-#define QSPI_CMD_WRITE                  (0x2 << 16)
+#define QSPI_CMD_WRITE                  (0x12 << 16)
 #define QSPI_NUM_DUMMY_BITS             (0x0 << 24)
 
 /* ti qspi register set */
@@ -277,7 +277,7 @@ static int __ti_qspi_xfer(struct ti_qspi_priv *priv, unsigned int bitlen,
 }
 
 /* TODO: control from sf layer to here through dm-spi */
-#ifdef CONFIG_TI_EDMA3
+#if defined(CONFIG_TI_EDMA3) && !defined(CONFIG_DMA)
 void spi_flash_copy_mmap(void *data, void *offset, size_t len)
 {
        unsigned int                    addr = (unsigned int) (data);
@@ -534,11 +534,15 @@ static int ti_qspi_ofdata_to_platdata(struct udevice *bus)
        const void *blob = gd->fdt_blob;
        int node = bus->of_offset;
        fdt_addr_t addr;
+       void *mmap;
 
-       priv->base = (struct ti_qspi_regs *)dev_get_addr(bus);
-       priv->memory_map = (void *)dev_get_addr_index(bus, 1);
+       priv->base = map_physmem(dev_get_addr(bus), sizeof(struct ti_qspi_regs),
+                                MAP_NOCACHE);
+       priv->memory_map = map_physmem(dev_get_addr_index(bus, 1), 0,
+                                      MAP_NOCACHE);
        addr = dev_get_addr_index(bus, 2);
-       priv->ctrl_mod_mmap = (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
+       mmap = map_physmem(dev_get_addr_index(bus, 2), 0, MAP_NOCACHE);
+       priv->ctrl_mod_mmap = (addr == FDT_ADDR_T_NONE) ? NULL : mmap;
 
        priv->max_hz = fdtdec_get_int(blob, node, "spi-max-frequency", -1);
        if (priv->max_hz < 0) {