@@ -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);
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(+)