Lines Matching defs:spi
17 #include <linux/spi/spi.h>
113 dev_dbg(mas->dev, "spi slave setup done\n");
148 static void handle_se_timeout(struct spi_master *spi,
151 struct spi_geni_master *mas = spi_master_get_devdata(spi);
163 if (spi->slave) {
165 * skip CMD Cancel sequnece since spi slave
228 static void handle_gpi_timeout(struct spi_master *spi, struct spi_message *msg)
230 struct spi_geni_master *mas = spi_master_get_devdata(spi);
236 static void spi_geni_handle_err(struct spi_master *spi, struct spi_message *msg)
238 struct spi_geni_master *mas = spi_master_get_devdata(spi);
243 handle_se_timeout(spi, msg);
246 handle_gpi_timeout(spi, msg);
290 struct spi_master *spi = dev_get_drvdata(mas->dev);
329 handle_se_timeout(spi, NULL);
398 struct spi_master *spi)
400 struct spi_geni_master *mas = spi_master_get_devdata(spi);
437 struct spi_master *spi = cb;
439 spi->cur_msg->status = -EIO;
441 dev_err(&spi->dev, "DMA txn failed: %d\n", result->result);
442 spi_finalize_current_transfer(spi);
447 spi->cur_msg->status = 0;
448 dev_dbg(&spi->dev, "DMA txn completed\n");
450 dev_err(&spi->dev, "DMA xfer has pending: %d\n", result->residue);
453 spi_finalize_current_transfer(spi);
457 struct spi_device *spi_slv, struct spi_master *spi)
506 if (!list_is_last(&xfer->transfer_list, &spi->cur_msg->transfers))
533 tx_desc->callback_param = spi;
582 static int spi_geni_prepare_message(struct spi_master *spi,
585 struct spi_geni_master *mas = spi_master_get_devdata(spi);
593 ret = setup_fifo_params(spi_msg->spi, spi);
650 struct spi_master *spi = dev_get_drvdata(mas->dev);
660 if (spi->slave) {
718 if (!spi->slave) {
827 u16 mode, struct spi_master *spi)
916 static int spi_geni_transfer_one(struct spi_master *spi,
920 struct spi_geni_master *mas = spi_master_get_devdata(spi);
931 ret = setup_se_xfer(xfer, mas, slv->mode, spi);
937 return setup_gsi_xfer(xfer, mas, slv, spi);
942 struct spi_master *spi = data;
943 struct spi_geni_master *mas = spi_master_get_devdata(spi);
967 spi_finalize_current_transfer(spi);
1012 spi_finalize_current_transfer(spi);
1045 struct spi_master *spi;
1067 spi = devm_spi_alloc_master(dev, sizeof(*mas));
1068 if (!spi)
1071 platform_set_drvdata(pdev, spi);
1072 mas = spi_master_get_devdata(spi);
1090 spi->bus_num = -1;
1091 spi->dev.of_node = dev->of_node;
1092 spi->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP | SPI_CS_HIGH;
1093 spi->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32);
1094 spi->num_chipselect = 4;
1095 spi->max_speed_hz = 50000000;
1096 spi->max_dma_len = 0xffff0; /* 24 bits for tx/rx dma length */
1097 spi->prepare_message = spi_geni_prepare_message;
1098 spi->transfer_one = spi_geni_transfer_one;
1099 spi->can_dma = geni_can_dma;
1100 spi->dma_map_dev = dev->parent;
1101 spi->auto_runtime_pm = true;
1102 spi->handle_err = spi_geni_handle_err;
1103 spi->use_gpio_descriptors = true;
1115 if (device_property_read_bool(&pdev->dev, "spi-slave"))
1116 spi->slave = true;
1138 if (!spi->slave && mas->cur_xfer_mode == GENI_SE_FIFO)
1139 spi->set_cs = spi_geni_set_cs;
1145 spi->flags = SPI_CONTROLLER_MUST_TX;
1147 ret = request_irq(mas->irq, geni_spi_isr, 0, dev_name(dev), spi);
1151 ret = spi_register_master(spi);
1157 free_irq(mas->irq, spi);
1167 struct spi_master *spi = platform_get_drvdata(pdev);
1168 struct spi_geni_master *mas = spi_master_get_devdata(spi);
1171 spi_unregister_master(spi);
1175 free_irq(mas->irq, spi);
1181 struct spi_master *spi = dev_get_drvdata(dev);
1182 struct spi_geni_master *mas = spi_master_get_devdata(spi);
1197 struct spi_master *spi = dev_get_drvdata(dev);
1198 struct spi_geni_master *mas = spi_master_get_devdata(spi);
1214 struct spi_master *spi = dev_get_drvdata(dev);
1217 ret = spi_master_suspend(spi);
1223 spi_master_resume(spi);
1230 struct spi_master *spi = dev_get_drvdata(dev);
1237 ret = spi_master_resume(spi);
1251 { .compatible = "qcom,geni-spi" },