spi: remove spi_set_cs_timing()
No one seems to be using this global and exported function, so remove it as it is no longer needed. Cc: Mark Brown <broonie@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Link: https://lore.kernel.org/r/20210609071918.2852069-1-gregkh@linuxfoundation.org Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
2b2142f247
commit
4ccf359849
2 changed files with 0 additions and 78 deletions
|
@ -3472,79 +3472,6 @@ int spi_setup(struct spi_device *spi)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(spi_setup);
|
EXPORT_SYMBOL_GPL(spi_setup);
|
||||||
|
|
||||||
/**
|
|
||||||
* spi_set_cs_timing - configure CS setup, hold, and inactive delays
|
|
||||||
* @spi: the device that requires specific CS timing configuration
|
|
||||||
* @setup: CS setup time specified via @spi_delay
|
|
||||||
* @hold: CS hold time specified via @spi_delay
|
|
||||||
* @inactive: CS inactive delay between transfers specified via @spi_delay
|
|
||||||
*
|
|
||||||
* Return: zero on success, else a negative error code.
|
|
||||||
*/
|
|
||||||
int spi_set_cs_timing(struct spi_device *spi, struct spi_delay *setup,
|
|
||||||
struct spi_delay *hold, struct spi_delay *inactive)
|
|
||||||
{
|
|
||||||
struct device *parent = spi->controller->dev.parent;
|
|
||||||
size_t len;
|
|
||||||
int status;
|
|
||||||
|
|
||||||
if (spi->controller->set_cs_timing &&
|
|
||||||
!(spi->cs_gpiod || gpio_is_valid(spi->cs_gpio))) {
|
|
||||||
mutex_lock(&spi->controller->io_mutex);
|
|
||||||
|
|
||||||
if (spi->controller->auto_runtime_pm) {
|
|
||||||
status = pm_runtime_get_sync(parent);
|
|
||||||
if (status < 0) {
|
|
||||||
mutex_unlock(&spi->controller->io_mutex);
|
|
||||||
pm_runtime_put_noidle(parent);
|
|
||||||
dev_err(&spi->controller->dev, "Failed to power device: %d\n",
|
|
||||||
status);
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
status = spi->controller->set_cs_timing(spi, setup,
|
|
||||||
hold, inactive);
|
|
||||||
pm_runtime_mark_last_busy(parent);
|
|
||||||
pm_runtime_put_autosuspend(parent);
|
|
||||||
} else {
|
|
||||||
status = spi->controller->set_cs_timing(spi, setup, hold,
|
|
||||||
inactive);
|
|
||||||
}
|
|
||||||
|
|
||||||
mutex_unlock(&spi->controller->io_mutex);
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((setup && setup->unit == SPI_DELAY_UNIT_SCK) ||
|
|
||||||
(hold && hold->unit == SPI_DELAY_UNIT_SCK) ||
|
|
||||||
(inactive && inactive->unit == SPI_DELAY_UNIT_SCK)) {
|
|
||||||
dev_err(&spi->dev,
|
|
||||||
"Clock-cycle delays for CS not supported in SW mode\n");
|
|
||||||
return -ENOTSUPP;
|
|
||||||
}
|
|
||||||
|
|
||||||
len = sizeof(struct spi_delay);
|
|
||||||
|
|
||||||
/* copy delays to controller */
|
|
||||||
if (setup)
|
|
||||||
memcpy(&spi->controller->cs_setup, setup, len);
|
|
||||||
else
|
|
||||||
memset(&spi->controller->cs_setup, 0, len);
|
|
||||||
|
|
||||||
if (hold)
|
|
||||||
memcpy(&spi->controller->cs_hold, hold, len);
|
|
||||||
else
|
|
||||||
memset(&spi->controller->cs_hold, 0, len);
|
|
||||||
|
|
||||||
if (inactive)
|
|
||||||
memcpy(&spi->controller->cs_inactive, inactive, len);
|
|
||||||
else
|
|
||||||
memset(&spi->controller->cs_inactive, 0, len);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(spi_set_cs_timing);
|
|
||||||
|
|
||||||
static int _spi_xfer_word_delay_update(struct spi_transfer *xfer,
|
static int _spi_xfer_word_delay_update(struct spi_transfer *xfer,
|
||||||
struct spi_device *spi)
|
struct spi_device *spi)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1108,11 +1108,6 @@ static inline void spi_message_free(struct spi_message *m)
|
||||||
kfree(m);
|
kfree(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int spi_set_cs_timing(struct spi_device *spi,
|
|
||||||
struct spi_delay *setup,
|
|
||||||
struct spi_delay *hold,
|
|
||||||
struct spi_delay *inactive);
|
|
||||||
|
|
||||||
extern int spi_setup(struct spi_device *spi);
|
extern int spi_setup(struct spi_device *spi);
|
||||||
extern int spi_async(struct spi_device *spi, struct spi_message *message);
|
extern int spi_async(struct spi_device *spi, struct spi_message *message);
|
||||||
extern int spi_async_locked(struct spi_device *spi,
|
extern int spi_async_locked(struct spi_device *spi,
|
||||||
|
|
Loading…
Add table
Reference in a new issue