X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fspi%2Fti_qspi.c;h=e69ec0d9cdee17747939bdbed029023f5d46168c;hb=a2277cc30cdb40298aca80344f3764db6a0cfb8d;hp=78d8b1368de697df724fc8f63661f1c340e4155d;hpb=e6ac28b60be2d670948332197862e314b7977177;p=u-boot diff --git a/drivers/spi/ti_qspi.c b/drivers/spi/ti_qspi.c index 78d8b1368d..e69ec0d9cd 100644 --- a/drivers/spi/ti_qspi.c +++ b/drivers/spi/ti_qspi.c @@ -52,15 +52,15 @@ DECLARE_GLOBAL_DATA_PTR; #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) {