Lines Matching defs:spi
25 #include <linux/spi/spi.h>
26 #include <linux/spi/spidev.h>
67 struct spi_device *spi;
90 struct spi_device *spi;
93 spi = spidev->spi;
96 if (spi == NULL) {
99 status = spi_sync(spi, message);
276 dev_dbg(&spidev->spi->dev, " xfer len %u %s%s%s%dbits %u usec %u usec %uHz\n", k_tmp->len,
278 k_tmp->bits_per_word ?: spidev->spi->bits_per_word, k_tmp->delay.value, k_tmp->word_delay.value,
279 k_tmp->speed_hz ?: spidev->spi->max_speed_hz);
332 struct spi_device *spi;
347 spi = spi_dev_get(spidev->spi);
350 if (spi == NULL) {
365 retval = put_user(spi->mode & SPI_MODE_MASK, (__u8 __user *)arg);
368 retval = put_user(spi->mode & SPI_MODE_MASK, (__u32 __user *)arg);
371 retval = put_user((spi->mode & SPI_LSB_FIRST) ? 1 : 0, (__u8 __user *)arg);
374 retval = put_user(spi->bits_per_word, (__u8 __user *)arg);
389 struct spi_controller *ctlr = spi->controller;
390 u32 save = spi->mode;
397 if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods && ctlr->cs_gpiods[spi->chip_select]) {
401 tmp |= spi->mode & ~SPI_MODE_MASK;
402 spi->mode = (u16)tmp;
403 retval = spi_setup(spi);
405 spi->mode = save;
407 dev_dbg(&spi->dev, "spi mode %x\n", tmp);
414 u32 save = spi->mode;
417 spi->mode |= SPI_LSB_FIRST;
419 spi->mode &= ~SPI_LSB_FIRST;
421 retval = spi_setup(spi);
423 spi->mode = save;
425 dev_dbg(&spi->dev, "%csb first\n", tmp ? 'l' : 'm');
432 u8 save = spi->bits_per_word;
434 spi->bits_per_word = tmp;
435 retval = spi_setup(spi);
437 spi->bits_per_word = save;
439 dev_dbg(&spi->dev, "%d bits per word\n", tmp);
446 u32 save = spi->max_speed_hz;
448 spi->max_speed_hz = tmp;
449 retval = spi_setup(spi);
452 dev_dbg(&spi->dev, "%d Hz (max)\n", spidev->speed_hz);
454 spi->max_speed_hz = save;
477 spi_dev_put(spi);
487 struct spi_device *spi;
498 spi = spi_dev_get(spidev->spi);
501 if (spi == NULL) {
530 spi_dev_put(spi);
569 dev_dbg(&spidev->spi->dev, "open/ENOMEM\n");
578 dev_dbg(&spidev->spi->dev, "open/ENOMEM\n");
610 dofree = (spidev->spi == NULL);
625 spidev->speed_hz = spidev->spi->max_speed_hz;
630 spi_slave_abort(spidev->spi);
696 static void spidev_probe_acpi(struct spi_device *spi)
700 if (!has_acpi_companion(&spi->dev)) {
704 id = acpi_match_device(spidev_acpi_ids, &spi->dev);
710 dev_warn(&spi->dev, "do not use this driver in production systems!\n");
714 static inline void spidev_probe_acpi(struct spi_device *spi)
721 static int spidev_probe(struct spi_device *spi)
732 WARN(spi->dev.of_node && of_device_is_compatible(spi->dev.of_node, "spidev"),
733 "%pOF: buggy DT: spidev listed directly in DT\n", spi->dev.of_node);
735 spidev_probe_acpi(spi);
744 spidev->spi = spi;
759 dev = device_create(spidev_class, &spi->dev, spidev->devt, spidev, "spidev%d.%d", spi->master->bus_num,
760 spi->chip_select);
763 dev_dbg(&spi->dev, "no minor number available!\n");
772 spidev->speed_hz = spi->max_speed_hz;
775 spi_set_drvdata(spi, spidev);
783 static int spidev_remove(struct spi_device *spi)
785 struct spidev_data *spidev = spi_get_drvdata(spi);
791 spidev->spi = NULL;
833 status = register_chrdev(SPIDEV_MAJOR, "spi", &spidev_fops);
864 MODULE_ALIAS("spi:spidev");