Lines Matching refs:spi
78 struct spi_device *spi; member
103 struct spi_device *spi; in spidev_sync() local
106 spi = spidev->spi; in spidev_sync()
109 if (spi == NULL) in spidev_sync()
112 status = spi_sync(spi, message); in spidev_sync()
286 dev_dbg(&spidev->spi->dev, in spidev_message()
292 u_tmp->bits_per_word ? : spidev->spi->bits_per_word, in spidev_message()
294 u_tmp->speed_hz ? : spidev->spi->max_speed_hz); in spidev_message()
360 struct spi_device *spi; in spidev_ioctl() local
387 spi = spi_dev_get(spidev->spi); in spidev_ioctl()
390 if (spi == NULL) in spidev_ioctl()
404 retval = __put_user(spi->mode & SPI_MODE_MASK, in spidev_ioctl()
408 retval = __put_user(spi->mode & SPI_MODE_MASK, in spidev_ioctl()
412 retval = __put_user((spi->mode & SPI_LSB_FIRST) ? 1 : 0, in spidev_ioctl()
416 retval = __put_user(spi->bits_per_word, (__u8 __user *)arg); in spidev_ioctl()
430 u32 save = spi->mode; in spidev_ioctl()
437 tmp |= spi->mode & ~SPI_MODE_MASK; in spidev_ioctl()
438 spi->mode = (u16)tmp; in spidev_ioctl()
439 retval = spi_setup(spi); in spidev_ioctl()
441 spi->mode = save; in spidev_ioctl()
443 dev_dbg(&spi->dev, "spi mode %x\n", tmp); in spidev_ioctl()
449 u32 save = spi->mode; in spidev_ioctl()
452 spi->mode |= SPI_LSB_FIRST; in spidev_ioctl()
454 spi->mode &= ~SPI_LSB_FIRST; in spidev_ioctl()
455 retval = spi_setup(spi); in spidev_ioctl()
457 spi->mode = save; in spidev_ioctl()
459 dev_dbg(&spi->dev, "%csb first\n", in spidev_ioctl()
466 u8 save = spi->bits_per_word; in spidev_ioctl()
468 spi->bits_per_word = tmp; in spidev_ioctl()
469 retval = spi_setup(spi); in spidev_ioctl()
471 spi->bits_per_word = save; in spidev_ioctl()
473 dev_dbg(&spi->dev, "%d bits per word\n", tmp); in spidev_ioctl()
479 u32 save = spi->max_speed_hz; in spidev_ioctl()
481 spi->max_speed_hz = tmp; in spidev_ioctl()
482 retval = spi_setup(spi); in spidev_ioctl()
486 dev_dbg(&spi->dev, "%d Hz (max)\n", tmp); in spidev_ioctl()
487 spi->max_speed_hz = save; in spidev_ioctl()
510 spi_dev_put(spi); in spidev_ioctl()
522 struct spi_device *spi; in spidev_compat_ioc_message() local
535 spi = spi_dev_get(spidev->spi); in spidev_compat_ioc_message()
538 if (spi == NULL) in spidev_compat_ioc_message()
565 spi_dev_put(spi); in spidev_compat_ioc_message()
605 dev_dbg(&spidev->spi->dev, "open/ENOMEM\n"); in spidev_open()
614 dev_dbg(&spidev->spi->dev, "open/ENOMEM\n"); in spidev_open()
655 if (spidev->spi) in spidev_release()
656 spidev->speed_hz = spidev->spi->max_speed_hz; in spidev_release()
659 dofree = (spidev->spi == NULL); in spidev_release()
705 static int spidev_probe(struct spi_device *spi) in spidev_probe() argument
716 if (spi->dev.of_node && !of_match_device(spidev_dt_ids, &spi->dev)) { in spidev_probe()
717 dev_err(&spi->dev, "buggy DT: spidev listed directly in DT\n"); in spidev_probe()
718 WARN_ON(spi->dev.of_node && in spidev_probe()
719 !of_match_device(spidev_dt_ids, &spi->dev)); in spidev_probe()
728 spidev->spi = spi; in spidev_probe()
743 dev = device_create(spidev_class, &spi->dev, spidev->devt, in spidev_probe()
745 spi->master->bus_num, spi->chip_select); in spidev_probe()
748 dev_dbg(&spi->dev, "no minor number available!\n"); in spidev_probe()
757 spidev->speed_hz = spi->max_speed_hz; in spidev_probe()
760 spi_set_drvdata(spi, spidev); in spidev_probe()
767 static int spidev_remove(struct spi_device *spi) in spidev_remove() argument
769 struct spidev_data *spidev = spi_get_drvdata(spi); in spidev_remove()
773 spidev->spi = NULL; in spidev_remove()