Lines Matching refs:controller

51 	spi_controller_put(spi->controller);
528 * would make them board-specific. Similarly with SPI controller drivers.
559 * spi_device structure to add it to the SPI controller. If the caller
585 spi->controller = ctlr;
611 dev_set_name(&spi->dev, "%s.%u", dev_name(&spi->controller->dev),
655 if (spi->controller == new_spi->controller) {
667 if (spi->controller->cleanup)
668 spi->controller->cleanup(spi);
673 struct spi_controller *ctlr = spi->controller;
762 struct spi_controller *ctlr = spi->controller;
903 * after the relevant parent SPI controller (bus_num) is defined. We keep
904 * this table of devices forever, so that reloading a controller driver will
1035 if (spi->controller->last_cs[idx] == spi_get_chipselect(spi, idx))
1074 if (!force && ((enable && spi->controller->last_cs_index_mask == spi->cs_index_mask &&
1076 (!enable && spi->controller->last_cs_index_mask == spi->cs_index_mask &&
1078 (spi->controller->last_cs_mode_high == (spi->mode & SPI_CS_HIGH)))
1083 spi->controller->last_cs_index_mask = spi->cs_index_mask;
1085 spi->controller->last_cs[idx] = enable ? spi_get_chipselect(spi, 0) : SPI_INVALID_CS;
1086 spi->controller->last_cs_mode_high = spi->mode & SPI_CS_HIGH;
1095 if ((spi_is_csgpiod(spi) || !spi->controller->set_cs_timing) && !activate)
1106 if ((spi->controller->flags & SPI_CONTROLLER_GPIO_SS) &&
1107 spi->controller->set_cs)
1108 spi->controller->set_cs(spi, !enable);
1109 } else if (spi->controller->set_cs) {
1110 spi->controller->set_cs(spi, !enable);
1113 if (spi_is_csgpiod(spi) || !spi->controller->set_cs_timing) {
1730 * @ctlr: the controller reporting completion
1853 * @ctlr: controller to process queue for
1951 * @work: pointer to kthread work struct contained in the controller struct
2046 * spi_set_thread_rt - set the controller to pump at realtime priority
2047 * @ctlr: controller to boost priority of
2049 * This can be called because the controller requested realtime priority
2056 * controller. If this eventually becomes a problem we may see if we can
2082 * Controller config will indicate if this controller should run the
2097 * @ctlr: the controller to check for queued messages
2132 struct spi_controller *ctlr = msg->spi->controller;
2158 * @ctlr: the controller to return the message to
2285 struct spi_controller *ctlr = spi->controller;
2350 * @ctlr: controller to process queue for
2480 dev_err(&ctlr->dev, "SPI controller doesn't support multi CS\n");
2555 * Registers an spi_device for each child node of controller node which
2593 struct spi_controller *ctlr = spi->controller;
2759 * host controller driver in Windows and can vary
2797 * @ctlr: controller to which the spi device belongs
2835 /* Found SPI in _CRS but it points to another controller */
2959 * controller
2964 struct spi_controller *ctlr = spi->controller;
2975 struct spi_controller *ctlr = spi->controller;
3061 * __spi_alloc_controller - allocate an SPI master or slave controller
3062 * @dev: the controller, possibly using the platform_bus
3069 * slave (true) controller
3072 * This call is used only by SPI controller drivers, which are the
3079 * controller's methods before calling spi_register_controller(); and (after
3083 * Return: the SPI controller structure on success, else NULL.
3127 * @dev: physical device of SPI controller
3132 * Allocate an SPI controller and automatically release a reference on it
3138 * Return: the SPI controller structure on success, else NULL.
3242 * The controller may implement only the high-level SPI-memory like
3273 * spi_register_controller - register SPI master or slave controller
3289 * success, else a negative error code (dropping the controller's refcount).
3308 * the SPI controller.
3350 * A controller using GPIO descriptors always
3382 dev_info(dev, "controller is unqueued, this is deprecated\n");
3426 * controller
3427 * @dev: device managing SPI controller
3428 * @ctlr: initialized controller, originally from spi_alloc_master() or
3466 * spi_unregister_controller - unregister SPI master or slave controller
3467 * @ctlr: the controller being unregistered
3470 * This call is used only by SPI controller drivers, which are the
3475 * Note that this function also drops a reference to the controller.
3488 /* First make sure that this controller was ever added */
3512 * Release the last reference on the controller if its driver
3854 * Core methods for SPI controller protocol drivers. Some of the
3880 struct device *parent = spi->controller->dev.parent;
3883 if (spi->controller->set_cs_timing && !spi_get_csgpiod(spi, 0)) {
3884 if (spi->controller->auto_runtime_pm) {
3888 dev_err(&spi->controller->dev, "Failed to power device: %d\n",
3893 status = spi->controller->set_cs_timing(spi);
3897 status = spi->controller->set_cs_timing(spi);
3917 * that the underlying controller or its driver does not support. For
3947 * that aren't supported with their current controller.
3951 bad_bits = spi->mode & ~(spi->controller->mode_bits | SPI_CS_WORD |
3976 status = __spi_validate_bits_per_word(spi->controller,
3982 if (spi->controller->max_speed_hz &&
3984 spi->max_speed_hz > spi->controller->max_speed_hz))
3985 spi->max_speed_hz = spi->controller->max_speed_hz;
3987 mutex_lock(&spi->controller->io_mutex);
3989 if (spi->controller->setup) {
3990 status = spi->controller->setup(spi);
3992 mutex_unlock(&spi->controller->io_mutex);
3993 dev_err(&spi->controller->dev, "Failed to setup device: %d\n",
4001 mutex_unlock(&spi->controller->io_mutex);
4005 if (spi->controller->auto_runtime_pm && spi->controller->set_cs) {
4006 status = pm_runtime_resume_and_get(spi->controller->dev.parent);
4008 mutex_unlock(&spi->controller->io_mutex);
4009 dev_err(&spi->controller->dev, "Failed to power device: %d\n",
4023 pm_runtime_mark_last_busy(spi->controller->dev.parent);
4024 pm_runtime_put_autosuspend(spi->controller->dev.parent);
4029 mutex_unlock(&spi->controller->io_mutex);
4031 if (spi->rt && !spi->controller->rt) {
4032 spi->controller->rt = true;
4033 spi_set_thread_rt(spi->controller);
4073 struct spi_controller *ctlr = spi->controller;
4197 * Under certain conditions, a SPI controller may not support arbitrary
4200 * supported by the controller.
4210 struct spi_controller *ctlr = msg->spi->controller;
4215 * If an SPI controller does not support toggling the CS line on each
4260 struct spi_controller *ctlr = spi->controller;
4356 struct spi_controller *ctlr = spi->controller;
4396 * core or controller driver code.
4414 struct spi_controller *ctlr = spi->controller;
4486 struct spi_controller *ctlr = spi->controller;
4550 * is non-interruptible, and has no timeout. Low-overhead controller
4568 mutex_lock(&spi->controller->bus_lock_mutex);
4570 mutex_unlock(&spi->controller->bus_lock_mutex);
4583 * is non-interruptible, and has no timeout. Low-overhead controller