diff mbox series

spi: sh-msiof: drop support for R-Car H3 ES1.[01]

Message ID 20230123075833.50925-1-wsa+renesas@sang-engineering.com
State New
Headers show
Series spi: sh-msiof: drop support for R-Car H3 ES1.[01] | expand

Commit Message

Wolfram Sang Jan. 23, 2023, 7:58 a.m. UTC
These revisions have HW issues and are only early engineering samples
used internally. We simply drop the MSIOF support for them.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---

We got confirmation from Renesas for dropping ES1.* support.

 drivers/spi/spi-sh-msiof.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Wolfram Sang Jan. 23, 2023, 10:02 a.m. UTC | #1
> I don't think adding more soc_device_match() calls is the proper way to
> handle this...
> What about adding a single check to drivers/soc/renesas/renesas-soc.c,
> removing r8a77950*dts*, and removing all R-Car H3 ES1.x matches from
> all drivers?

Can be argued. My take was like keep the existing ES1 support which is
not in the way and disable the rest. But if you want to get rid of it
entirely, that is cleaner, of course. A tad more work removing the
existing quirks, but well...
Wolfram Sang Jan. 25, 2023, 1:39 p.m. UTC | #2
> But if you want to get rid of it entirely, that is cleaner, of course.

I'll start with that work later today, removing ES1 of H3.
diff mbox series

Patch

diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c
index 9bca3d076f05..e3b249c71175 100644
--- a/drivers/spi/spi-sh-msiof.c
+++ b/drivers/spi/spi-sh-msiof.c
@@ -24,6 +24,7 @@ 
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
 #include <linux/sh_dma.h>
+#include <linux/sys_soc.h>
 
 #include <linux/spi/sh_msiof.h>
 #include <linux/spi/spi.h>
@@ -1257,8 +1258,15 @@  static void sh_msiof_release_dma(struct sh_msiof_spi_priv *p)
 	dma_release_channel(ctlr->dma_tx);
 }
 
+static const struct soc_device_attribute sh_msiof_blacklist[] = {
+	/* Those have HW issues */
+	{ .soc_id = "r8a7795", .revision = "ES1.[01]" },
+	{ /* Sentinel */ }
+};
+
 static int sh_msiof_spi_probe(struct platform_device *pdev)
 {
+	const struct soc_device_attribute *attr;
 	struct spi_controller *ctlr;
 	const struct sh_msiof_chipdata *chipdata;
 	struct sh_msiof_spi_info *info;
@@ -1267,6 +1275,10 @@  static int sh_msiof_spi_probe(struct platform_device *pdev)
 	int i;
 	int ret;
 
+	attr = soc_device_match(sh_msiof_blacklist);
+	if (attr)
+		return -ENOTSUPP;
+
 	chipdata = of_device_get_match_data(&pdev->dev);
 	if (chipdata) {
 		info = sh_msiof_spi_parse_dt(&pdev->dev);