Lines Matching defs:spi_gpio

17 #include <linux/spi/spi_gpio.h>
26 * platform_device->driver_data ... points to spi_gpio
30 * spi->master->dev.driver_data ... points to spi_gpio->bitbang
33 struct spi_gpio {
67 #define DRIVER_NAME "spi_gpio"
75 static inline struct spi_gpio *__pure
79 struct spi_gpio *spi_gpio;
82 spi_gpio = container_of(bang, struct spi_gpio, bitbang);
83 return spi_gpio;
89 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi);
91 gpiod_set_value_cansleep(spi_gpio->sck, is_on);
96 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi);
98 gpiod_set_value_cansleep(spi_gpio->mosi, is_on);
103 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi);
106 return !!gpiod_get_value_cansleep(spi_gpio->mosi);
108 return !!gpiod_get_value_cansleep(spi_gpio->miso);
201 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi);
205 gpiod_set_value_cansleep(spi_gpio->sck, spi->mode & SPI_CPOL);
208 if (spi_gpio->cs_gpios) {
209 struct gpio_desc *cs = spi_gpio->cs_gpios[spi->chip_select];
220 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi);
226 if (spi_gpio->cs_gpios) {
227 cs = spi_gpio->cs_gpios[spi->chip_select];
241 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi);
245 return gpiod_direction_output(spi_gpio->mosi, 1);
256 ret = gpiod_direction_input(spi_gpio->mosi);
269 gpiod_set_value_cansleep(spi_gpio->sck,
271 gpiod_set_value_cansleep(spi_gpio->sck,
292 static int spi_gpio_request(struct device *dev, struct spi_gpio *spi_gpio)
294 spi_gpio->mosi = devm_gpiod_get_optional(dev, "mosi", GPIOD_OUT_LOW);
295 if (IS_ERR(spi_gpio->mosi))
296 return PTR_ERR(spi_gpio->mosi);
298 spi_gpio->miso = devm_gpiod_get_optional(dev, "miso", GPIOD_IN);
299 if (IS_ERR(spi_gpio->miso))
300 return PTR_ERR(spi_gpio->miso);
302 spi_gpio->sck = devm_gpiod_get(dev, "sck", GPIOD_OUT_LOW);
303 return PTR_ERR_OR_ZERO(spi_gpio->sck);
334 struct spi_gpio *spi_gpio = spi_master_get_devdata(master);
347 spi_gpio->cs_gpios = devm_kcalloc(dev, master->num_chipselect,
348 sizeof(*spi_gpio->cs_gpios),
350 if (!spi_gpio->cs_gpios)
354 spi_gpio->cs_gpios[i] = devm_gpiod_get_index(dev, "cs", i,
356 if (IS_ERR(spi_gpio->cs_gpios[i]))
357 return PTR_ERR(spi_gpio->cs_gpios[i]);
367 struct spi_gpio *spi_gpio;
371 master = devm_spi_alloc_master(dev, sizeof(*spi_gpio));
383 spi_gpio = spi_master_get_devdata(master);
385 status = spi_gpio_request(dev, spi_gpio);
392 if (!spi_gpio->mosi) {
406 bb = &spi_gpio->bitbang;
430 status = spi_bitbang_init(&spi_gpio->bitbang);