diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c index 2e05046f866b..4ba70dcfbf4b 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c @@ -696,6 +696,9 @@ static struct class *spidev_class; static const struct of_device_id spidev_dt_ids[] = { { .compatible = "rohm,dh2228fv" }, { .compatible = "lineartechnology,ltc2488" }, +#if defined(CONFIG_ARCH_MESON64_ODROID_COMMON) + { .compatible = "linux,spidev" }, +#endif {}, }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); @@ -813,6 +816,12 @@ static int spidev_remove(struct spi_device *spi) spidev->spi = NULL; spin_unlock_irq(&spidev->spi_lock); +#if defined(CONFIG_ARCH_MESON64_ODROID_COMMON) + /* gpio free for spidev */ + if(spi->master->cleanup) + spi->master->cleanup(spi); +#endif + /* prevent new opens */ mutex_lock(&device_list_lock); list_del(&spidev->device_entry);