Symbol: spi_engine
drivers/spi/spi-axi-spi-engine.c
1002
struct spi_engine *spi_engine = priv->spi_engine;
drivers/spi/spi-axi-spi-engine.c
1007
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
1011
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
1016
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
1021
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
1024
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
1028
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
1030
ret = readl_relaxed_poll_timeout(spi_engine->base + SPI_ENGINE_REG_SYNC_ID,
drivers/spi/spi-axi-spi-engine.c
1035
reg = readl_relaxed(spi_engine->base +
drivers/spi/spi-axi-spi-engine.c
1038
writel_relaxed(reg, spi_engine->base +
drivers/spi/spi-axi-spi-engine.c
1046
struct spi_engine *spi_engine = priv->spi_engine;
drivers/spi/spi-axi-spi-engine.c
1049
reg = readl_relaxed(spi_engine->base +
drivers/spi/spi-axi-spi-engine.c
1052
writel_relaxed(reg, spi_engine->base +
drivers/spi/spi-axi-spi-engine.c
1059
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
1062
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
1097
struct spi_engine *spi_engine = p;
drivers/spi/spi-axi-spi-engine.c
1099
writel_relaxed(0xff, spi_engine->base + SPI_ENGINE_REG_INT_PENDING);
drivers/spi/spi-axi-spi-engine.c
1100
writel_relaxed(0x00, spi_engine->base + SPI_ENGINE_REG_INT_ENABLE);
drivers/spi/spi-axi-spi-engine.c
1101
writel_relaxed(0x01, spi_engine->base + SPI_ENGINE_REG_RESET);
drivers/spi/spi-axi-spi-engine.c
1106
struct spi_engine *spi_engine;
drivers/spi/spi-axi-spi-engine.c
1115
host = devm_spi_alloc_host(&pdev->dev, sizeof(*spi_engine));
drivers/spi/spi-axi-spi-engine.c
1119
spi_engine = spi_controller_get_devdata(host);
drivers/spi/spi-axi-spi-engine.c
1121
spin_lock_init(&spi_engine->lock);
drivers/spi/spi-axi-spi-engine.c
1122
init_completion(&spi_engine->msg_complete);
drivers/spi/spi-axi-spi-engine.c
1134
spi_engine->offload =
drivers/spi/spi-axi-spi-engine.c
1137
if (IS_ERR(spi_engine->offload))
drivers/spi/spi-axi-spi-engine.c
1138
return PTR_ERR(spi_engine->offload);
drivers/spi/spi-axi-spi-engine.c
1140
priv = spi_engine->offload->priv;
drivers/spi/spi-axi-spi-engine.c
1141
priv->spi_engine = spi_engine;
drivers/spi/spi-axi-spi-engine.c
1144
spi_engine->offload->ops = &spi_engine_offload_ops;
drivers/spi/spi-axi-spi-engine.c
1145
spi_engine->offload_caps = SPI_OFFLOAD_CAP_TRIGGER;
drivers/spi/spi-axi-spi-engine.c
1148
spi_engine->offload_caps |= SPI_OFFLOAD_CAP_RX_STREAM_DMA;
drivers/spi/spi-axi-spi-engine.c
1149
spi_engine->offload->xfer_flags |= SPI_OFFLOAD_XFER_RX_STREAM;
drivers/spi/spi-axi-spi-engine.c
1153
spi_engine->offload_caps |= SPI_OFFLOAD_CAP_TX_STREAM_DMA;
drivers/spi/spi-axi-spi-engine.c
1154
spi_engine->offload->xfer_flags |= SPI_OFFLOAD_XFER_TX_STREAM;
drivers/spi/spi-axi-spi-engine.c
1160
spi_engine->offload_caps |= SPI_OFFLOAD_CAP_TX_STATIC_DATA;
drivers/spi/spi-axi-spi-engine.c
1164
spi_engine->clk = devm_clk_get_enabled(&pdev->dev, "s_axi_aclk");
drivers/spi/spi-axi-spi-engine.c
1165
if (IS_ERR(spi_engine->clk))
drivers/spi/spi-axi-spi-engine.c
1166
return PTR_ERR(spi_engine->clk);
drivers/spi/spi-axi-spi-engine.c
1168
spi_engine->ref_clk = devm_clk_get_enabled(&pdev->dev, "spi_clk");
drivers/spi/spi-axi-spi-engine.c
1169
if (IS_ERR(spi_engine->ref_clk))
drivers/spi/spi-axi-spi-engine.c
1170
return PTR_ERR(spi_engine->ref_clk);
drivers/spi/spi-axi-spi-engine.c
1172
spi_engine->base = devm_platform_ioremap_resource(pdev, 0);
drivers/spi/spi-axi-spi-engine.c
1173
if (IS_ERR(spi_engine->base))
drivers/spi/spi-axi-spi-engine.c
1174
return PTR_ERR(spi_engine->base);
drivers/spi/spi-axi-spi-engine.c
1176
version = readl(spi_engine->base + ADI_AXI_REG_VERSION);
drivers/spi/spi-axi-spi-engine.c
1185
data_width_reg_val = readl(spi_engine->base + SPI_ENGINE_REG_DATA_WIDTH);
drivers/spi/spi-axi-spi-engine.c
1188
unsigned int sizes = readl(spi_engine->base +
drivers/spi/spi-axi-spi-engine.c
1191
spi_engine->offload_ctrl_mem_size = 1 <<
drivers/spi/spi-axi-spi-engine.c
1193
spi_engine->offload_sdo_mem_size = 1 <<
drivers/spi/spi-axi-spi-engine.c
1196
spi_engine->offload_ctrl_mem_size = SPI_ENGINE_OFFLOAD_CMD_FIFO_SIZE;
drivers/spi/spi-axi-spi-engine.c
1197
spi_engine->offload_sdo_mem_size = SPI_ENGINE_OFFLOAD_SDO_FIFO_SIZE;
drivers/spi/spi-axi-spi-engine.c
1201
spi_engine->offload_requires_sync = !adi_axi_pcore_ver_gteq(version, 1, 5);
drivers/spi/spi-axi-spi-engine.c
1203
writel_relaxed(0x00, spi_engine->base + SPI_ENGINE_REG_RESET);
drivers/spi/spi-axi-spi-engine.c
1204
writel_relaxed(0xff, spi_engine->base + SPI_ENGINE_REG_INT_PENDING);
drivers/spi/spi-axi-spi-engine.c
1205
writel_relaxed(0x00, spi_engine->base + SPI_ENGINE_REG_INT_ENABLE);
drivers/spi/spi-axi-spi-engine.c
1208
spi_engine);
drivers/spi/spi-axi-spi-engine.c
1219
host->max_speed_hz = clk_get_rate(spi_engine->ref_clk) / 2;
drivers/spi/spi-axi-spi-engine.c
150
struct spi_engine *spi_engine;
drivers/spi/spi-axi-spi-engine.c
552
static bool spi_engine_write_cmd_fifo(struct spi_engine *spi_engine,
drivers/spi/spi-axi-spi-engine.c
555
void __iomem *addr = spi_engine->base + SPI_ENGINE_REG_CMD_FIFO;
drivers/spi/spi-axi-spi-engine.c
560
n = readl_relaxed(spi_engine->base + SPI_ENGINE_REG_CMD_FIFO_ROOM);
drivers/spi/spi-axi-spi-engine.c
574
static bool spi_engine_write_tx_fifo(struct spi_engine *spi_engine,
drivers/spi/spi-axi-spi-engine.c
577
void __iomem *addr = spi_engine->base + SPI_ENGINE_REG_SDO_DATA_FIFO;
drivers/spi/spi-axi-spi-engine.c
581
n = readl_relaxed(spi_engine->base + SPI_ENGINE_REG_SDO_FIFO_ROOM);
drivers/spi/spi-axi-spi-engine.c
616
static bool spi_engine_read_rx_fifo(struct spi_engine *spi_engine,
drivers/spi/spi-axi-spi-engine.c
619
void __iomem *addr = spi_engine->base + SPI_ENGINE_REG_SDI_DATA_FIFO;
drivers/spi/spi-axi-spi-engine.c
623
n = readl_relaxed(spi_engine->base + SPI_ENGINE_REG_SDI_FIFO_LEVEL);
drivers/spi/spi-axi-spi-engine.c
662
struct spi_engine *spi_engine = spi_controller_get_devdata(host);
drivers/spi/spi-axi-spi-engine.c
667
pending = readl_relaxed(spi_engine->base + SPI_ENGINE_REG_INT_PENDING);
drivers/spi/spi-axi-spi-engine.c
671
spi_engine->base + SPI_ENGINE_REG_INT_PENDING);
drivers/spi/spi-axi-spi-engine.c
673
spi_engine->base + SPI_ENGINE_REG_SYNC_ID);
drivers/spi/spi-axi-spi-engine.c
676
spin_lock(&spi_engine->lock);
drivers/spi/spi-axi-spi-engine.c
679
if (!spi_engine_write_cmd_fifo(spi_engine, msg))
drivers/spi/spi-axi-spi-engine.c
684
if (!spi_engine_write_tx_fifo(spi_engine, msg))
drivers/spi/spi-axi-spi-engine.c
689
if (!spi_engine_read_rx_fifo(spi_engine, msg))
drivers/spi/spi-axi-spi-engine.c
697
complete(&spi_engine->msg_complete);
drivers/spi/spi-axi-spi-engine.c
703
spi_engine->int_enable &= ~disable_int;
drivers/spi/spi-axi-spi-engine.c
704
writel_relaxed(spi_engine->int_enable,
drivers/spi/spi-axi-spi-engine.c
705
spi_engine->base + SPI_ENGINE_REG_INT_ENABLE);
drivers/spi/spi-axi-spi-engine.c
708
spin_unlock(&spi_engine->lock);
drivers/spi/spi-axi-spi-engine.c
716
struct spi_engine *spi_engine = spi_controller_get_devdata(host);
drivers/spi/spi-axi-spi-engine.c
725
if (p->length > spi_engine->offload_ctrl_mem_size)
drivers/spi/spi-axi-spi-engine.c
745
if (tx_word_count && !(spi_engine->offload_caps & SPI_OFFLOAD_CAP_TX_STATIC_DATA))
drivers/spi/spi-axi-spi-engine.c
748
if (tx_word_count > spi_engine->offload_sdo_mem_size)
drivers/spi/spi-axi-spi-engine.c
758
cmd_addr = spi_engine->base +
drivers/spi/spi-axi-spi-engine.c
760
sdo_addr = spi_engine->base +
drivers/spi/spi-axi-spi-engine.c
794
struct spi_engine *spi_engine = priv->spi_engine;
drivers/spi/spi-axi-spi-engine.c
796
writel_relaxed(1, spi_engine->base +
drivers/spi/spi-axi-spi-engine.c
798
writel_relaxed(0, spi_engine->base +
drivers/spi/spi-axi-spi-engine.c
807
struct spi_engine *spi_engine = spi_controller_get_devdata(host);
drivers/spi/spi-axi-spi-engine.c
828
if (!msg->offload || spi_engine->offload_requires_sync)
drivers/spi/spi-axi-spi-engine.c
861
struct spi_engine *spi_engine = spi_controller_get_devdata(host);
drivers/spi/spi-axi-spi-engine.c
864
if (!spi_engine->offload)
drivers/spi/spi-axi-spi-engine.c
867
if (config->capability_flags & ~spi_engine->offload_caps)
drivers/spi/spi-axi-spi-engine.c
870
priv = spi_engine->offload->priv;
drivers/spi/spi-axi-spi-engine.c
875
return spi_engine->offload;
drivers/spi/spi-axi-spi-engine.c
888
struct spi_engine *spi_engine = spi_controller_get_devdata(host);
drivers/spi/spi-axi-spi-engine.c
892
spi_engine->cs_inv |= BIT(spi_get_chipselect(device, 0));
drivers/spi/spi-axi-spi-engine.c
894
spi_engine->cs_inv &= ~BIT(spi_get_chipselect(device, 0));
drivers/spi/spi-axi-spi-engine.c
897
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
899
writel_relaxed(SPI_ENGINE_CMD_CS_INV(spi_engine->cs_inv),
drivers/spi/spi-axi-spi-engine.c
900
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
909
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
912
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
920
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
923
spi_engine->base + SPI_ENGINE_REG_CMD_FIFO);
drivers/spi/spi-axi-spi-engine.c
925
return readl_relaxed_poll_timeout(spi_engine->base + SPI_ENGINE_REG_SYNC_ID,
drivers/spi/spi-axi-spi-engine.c
932
struct spi_engine *spi_engine = spi_controller_get_devdata(host);
drivers/spi/spi-axi-spi-engine.c
933
struct spi_engine_message_state *st = &spi_engine->msg_state;
drivers/spi/spi-axi-spi-engine.c
950
reinit_completion(&spi_engine->msg_complete);
drivers/spi/spi-axi-spi-engine.c
959
spin_lock_irqsave(&spi_engine->lock, flags);
drivers/spi/spi-axi-spi-engine.c
961
if (spi_engine_write_cmd_fifo(spi_engine, msg))
drivers/spi/spi-axi-spi-engine.c
965
if (spi_engine_write_tx_fifo(spi_engine, msg))
drivers/spi/spi-axi-spi-engine.c
975
spi_engine->base + SPI_ENGINE_REG_INT_ENABLE);
drivers/spi/spi-axi-spi-engine.c
976
spi_engine->int_enable = int_enable;
drivers/spi/spi-axi-spi-engine.c
977
spin_unlock_irqrestore(&spi_engine->lock, flags);
drivers/spi/spi-axi-spi-engine.c
979
if (!wait_for_completion_timeout(&spi_engine->msg_complete,