Lines Matching defs:spi

16 #include <linux/spi/spi.h>
17 #include <linux/spi/spi-mem.h>
21 #include "spi-dw.h"
88 void dw_spi_set_cs(struct spi_device *spi, bool enable)
90 struct dw_spi *dws = spi_controller_get_devdata(spi->controller);
91 bool cs_high = !!(spi->mode & SPI_CS_HIGH);
101 dw_writel(dws, DW_SPI_SER, BIT(spi_get_chipselect(spi, 0)));
266 static u32 dw_spi_prepare_cr0(struct dw_spi *dws, struct spi_device *spi)
279 if (spi->mode & SPI_CPOL)
281 if (spi->mode & SPI_CPHA)
285 if (spi->mode & SPI_LOOP)
296 if (spi->mode & SPI_CPOL)
298 if (spi->mode & SPI_CPHA)
302 if (spi->mode & SPI_LOOP)
313 void dw_spi_update_config(struct dw_spi *dws, struct spi_device *spi,
316 struct dw_spi_chip_data *chip = spi_get_ctldata(spi);
412 struct spi_device *spi,
438 dw_spi_update_config(dws, spi, &cfg);
443 if (host->can_dma && host->can_dma(host, spi, transfer))
552 static int dw_spi_write_then_read(struct dw_spi *dws, struct spi_device *spi)
575 dw_spi_set_cs(spi, false);
647 static void dw_spi_stop_mem_op(struct dw_spi *dws, struct spi_device *spi)
650 dw_spi_set_cs(spi, true);
664 struct dw_spi *dws = spi_controller_get_devdata(mem->spi->controller);
682 cfg.freq = clamp(mem->spi->max_speed_hz, 0U, dws->max_mem_freq);
692 dw_spi_update_config(dws, mem->spi, &cfg);
729 ret = dw_spi_write_then_read(dws, mem->spi);
747 dw_spi_stop_mem_op(dws, mem->spi);
775 /* This may be called twice for each spi dev */
776 static int dw_spi_setup(struct spi_device *spi)
778 struct dw_spi *dws = spi_controller_get_devdata(spi->controller);
782 chip = spi_get_ctldata(spi);
784 struct dw_spi *dws = spi_controller_get_devdata(spi->controller);
790 spi_set_ctldata(spi, chip);
792 if (device_property_read_u32(&spi->dev,
807 chip->cr0 = dw_spi_prepare_cr0(dws, spi);
812 static void dw_spi_cleanup(struct spi_device *spi)
814 struct dw_spi_chip_data *chip = spi_get_ctldata(spi);
817 spi_set_ctldata(spi, NULL);
956 dev_err_probe(dev, ret, "problem registering spi host\n");