Lines Matching defs:spi
3 // spi-mt7621.c -- MediaTek MT7621 SPI controller driver
9 // Some parts are based on spi-orion.c:
21 #include <linux/spi/spi.h>
23 #define DRIVER_NAME "spi-mt7621"
63 static inline struct mt7621_spi *spidev_to_mt7621_spi(struct spi_device *spi)
65 return spi_controller_get_devdata(spi->master);
78 static void mt7621_spi_set_cs(struct spi_device *spi, int enable)
80 struct mt7621_spi *rs = spidev_to_mt7621_spi(spi);
81 int cs = spi_get_chipselect(spi, 0);
102 static int mt7621_spi_prepare(struct spi_device *spi, unsigned int speed)
104 struct mt7621_spi *rs = spidev_to_mt7621_spi(spi);
108 dev_dbg(&spi->dev, "speed:%u\n", speed);
111 dev_dbg(&spi->dev, "rate-1:%u\n", rate);
125 if (spi->mode & SPI_LSB_FIRST)
252 struct spi_device *spi = m->spi;
253 unsigned int speed = spi->max_speed_hz;
263 if (mt7621_spi_prepare(spi, speed)) {
269 mt7621_spi_set_cs(spi, 1);
293 mt7621_spi_set_cs(spi, 0);
302 static int mt7621_spi_setup(struct spi_device *spi)
304 struct mt7621_spi *rs = spidev_to_mt7621_spi(spi);
306 if ((spi->max_speed_hz == 0) ||
307 (spi->max_speed_hz > (rs->sys_freq / 2)))
308 spi->max_speed_hz = rs->sys_freq / 2;
310 if (spi->max_speed_hz < (rs->sys_freq / 4097)) {
311 dev_err(&spi->dev, "setup: requested speed is too low %d Hz\n",
312 spi->max_speed_hz);
320 { .compatible = "ralink,mt7621-spi" },