Takashi Iwai 4f1819
From 137879f7ff23c635d2c6b2e43f4b39e2d305c3e2 Mon Sep 17 00:00:00 2001
Takashi Iwai 4f1819
From: Mark Brown <broonie@kernel.org>
Takashi Iwai 4f1819
Date: Wed, 22 Sep 2021 19:40:48 +0100
Takashi Iwai 4f1819
Subject: [PATCH] eeprom: 93xx46: Add SPI device ID table
Takashi Iwai 4f1819
Git-commit: 137879f7ff23c635d2c6b2e43f4b39e2d305c3e2
Takashi Iwai 4f1819
Patch-mainline: v5.15-rc6
Takashi Iwai c50dd6
References: git-fixes stable-5.14.14
Takashi Iwai 4f1819
Takashi Iwai 4f1819
Currently autoloading for SPI devices does not use the DT ID table, it uses
Takashi Iwai 4f1819
SPI modalises. Supporting OF modalises is going to be difficult if not
Takashi Iwai 4f1819
impractical, an attempt was made but has been reverted, so ensure that
Takashi Iwai 4f1819
module autoloading works for this driver by adding a SPI device ID table.
Takashi Iwai 4f1819
Takashi Iwai 4f1819
Fixes: 96c8395e2166 ("spi: Revert modalias changes")
Takashi Iwai 4f1819
Signed-off-by: Mark Brown <broonie@kernel.org>
Takashi Iwai 4f1819
Link: https://lore.kernel.org/r/20210922184048.34770-1-broonie@kernel.org
Takashi Iwai 4f1819
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Takashi Iwai 4f1819
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 4f1819
Takashi Iwai 4f1819
---
Takashi Iwai 4f1819
 drivers/misc/eeprom/eeprom_93xx46.c | 18 ++++++++++++++++++
Takashi Iwai 4f1819
 1 file changed, 18 insertions(+)
Takashi Iwai 4f1819
Takashi Iwai 4f1819
diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/misc/eeprom/eeprom_93xx46.c
Takashi Iwai 4f1819
index 29d8971ec558..660ee924f8b1 100644
Takashi Iwai 4f1819
--- a/drivers/misc/eeprom/eeprom_93xx46.c
Takashi Iwai 4f1819
+++ b/drivers/misc/eeprom/eeprom_93xx46.c
Takashi Iwai 4f1819
@@ -406,6 +406,23 @@ static const struct of_device_id eeprom_93xx46_of_table[] = {
Takashi Iwai 4f1819
 };
Takashi Iwai 4f1819
 MODULE_DEVICE_TABLE(of, eeprom_93xx46_of_table);
Takashi Iwai 4f1819
 
Takashi Iwai 4f1819
+static const struct spi_device_id eeprom_93xx46_spi_ids[] = {
Takashi Iwai 4f1819
+	{ .name = "eeprom-93xx46",
Takashi Iwai 4f1819
+	  .driver_data = (kernel_ulong_t)&at93c46_data, },
Takashi Iwai 4f1819
+	{ .name = "at93c46",
Takashi Iwai 4f1819
+	  .driver_data = (kernel_ulong_t)&at93c46_data, },
Takashi Iwai 4f1819
+	{ .name = "at93c46d",
Takashi Iwai 4f1819
+	  .driver_data = (kernel_ulong_t)&atmel_at93c46d_data, },
Takashi Iwai 4f1819
+	{ .name = "at93c56",
Takashi Iwai 4f1819
+	  .driver_data = (kernel_ulong_t)&at93c56_data, },
Takashi Iwai 4f1819
+	{ .name = "at93c66",
Takashi Iwai 4f1819
+	  .driver_data = (kernel_ulong_t)&at93c66_data, },
Takashi Iwai 4f1819
+	{ .name = "93lc46b",
Takashi Iwai 4f1819
+	  .driver_data = (kernel_ulong_t)&microchip_93lc46b_data, },
Takashi Iwai 4f1819
+	{}
Takashi Iwai 4f1819
+};
Takashi Iwai 4f1819
+MODULE_DEVICE_TABLE(of, eeprom_93xx46_of_table);
Takashi Iwai 4f1819
+
Takashi Iwai 4f1819
 static int eeprom_93xx46_probe_dt(struct spi_device *spi)
Takashi Iwai 4f1819
 {
Takashi Iwai 4f1819
 	const struct of_device_id *of_id =
Takashi Iwai 4f1819
@@ -555,6 +572,7 @@ static struct spi_driver eeprom_93xx46_driver = {
Takashi Iwai 4f1819
 	},
Takashi Iwai 4f1819
 	.probe		= eeprom_93xx46_probe,
Takashi Iwai 4f1819
 	.remove		= eeprom_93xx46_remove,
Takashi Iwai 4f1819
+	.id_table	= eeprom_93xx46_spi_ids,
Takashi Iwai 4f1819
 };
Takashi Iwai 4f1819
 
Takashi Iwai 4f1819
 module_spi_driver(eeprom_93xx46_driver);
Takashi Iwai 4f1819
-- 
Takashi Iwai 4f1819
2.26.2
Takashi Iwai 4f1819