Lines Matching defs:spi
25 #include <linux/spi/spi.h>
26 #include <linux/spi/spidev.h>
71 struct spi_device *spi;
95 struct spi_device *spi;
98 spi = spidev->spi;
101 if (spi == NULL)
104 status = spi_sync(spi, message);
282 dev_dbg(&spidev->spi->dev,
288 k_tmp->bits_per_word ? : spidev->spi->bits_per_word,
291 k_tmp->speed_hz ? : spidev->spi->max_speed_hz);
348 struct spi_device *spi;
362 spi = spi_dev_get(spidev->spi);
365 if (spi == NULL)
380 tmp = spi->mode;
383 struct spi_controller *ctlr = spi->controller;
386 ctlr->cs_gpiods[spi->chip_select])
398 retval = put_user((spi->mode & SPI_LSB_FIRST) ? 1 : 0,
402 retval = put_user(spi->bits_per_word, (__u8 __user *)arg);
416 struct spi_controller *ctlr = spi->controller;
417 u32 save = spi->mode;
425 ctlr->cs_gpiods[spi->chip_select])
428 tmp |= spi->mode & ~SPI_MODE_MASK;
429 spi->mode = (u16)tmp;
430 retval = spi_setup(spi);
432 spi->mode = save;
434 dev_dbg(&spi->dev, "spi mode %x\n", tmp);
440 u32 save = spi->mode;
443 spi->mode |= SPI_LSB_FIRST;
445 spi->mode &= ~SPI_LSB_FIRST;
446 retval = spi_setup(spi);
448 spi->mode = save;
450 dev_dbg(&spi->dev, "%csb first\n",
457 u8 save = spi->bits_per_word;
459 spi->bits_per_word = tmp;
460 retval = spi_setup(spi);
462 spi->bits_per_word = save;
464 dev_dbg(&spi->dev, "%d bits per word\n", tmp);
470 u32 save = spi->max_speed_hz;
472 spi->max_speed_hz = tmp;
473 retval = spi_setup(spi);
476 dev_dbg(&spi->dev, "%d Hz (max)\n",
479 spi->max_speed_hz = save;
502 spi_dev_put(spi);
514 struct spi_device *spi;
525 spi = spi_dev_get(spidev->spi);
528 if (spi == NULL)
555 spi_dev_put(spi);
634 dofree = (spidev->spi == NULL);
650 spidev->speed_hz = spidev->spi->max_speed_hz;
654 spi_slave_abort(spidev->spi);
718 static void spidev_probe_acpi(struct spi_device *spi)
722 if (!has_acpi_companion(&spi->dev))
725 id = acpi_match_device(spidev_acpi_ids, &spi->dev);
730 dev_warn(&spi->dev, "do not use this driver in production systems!\n");
733 static inline void spidev_probe_acpi(struct spi_device *spi) {}
738 static int spidev_probe(struct spi_device *spi)
749 WARN(spi->dev.of_node &&
750 of_device_is_compatible(spi->dev.of_node, "spidev"),
751 "%pOF: buggy DT: spidev listed directly in DT\n", spi->dev.of_node);
753 spidev_probe_acpi(spi);
761 spidev->spi = spi;
776 dev = device_create(spidev_class, &spi->dev, spidev->devt,
778 spi->master->bus_num, spi->chip_select);
781 dev_dbg(&spi->dev, "no minor number available!\n");
790 spidev->speed_hz = spi->max_speed_hz;
793 spi_set_drvdata(spi, spidev);
800 static int spidev_remove(struct spi_device *spi)
802 struct spidev_data *spidev = spi_get_drvdata(spi);
808 spidev->spi = NULL;
848 status = register_chrdev(SPIDEV_MAJOR, "spi", &spidev_fops);
878 MODULE_ALIAS("spi:spidev");