summaryrefslogtreecommitdiff
path: root/drivers/pinctrl/pinctrl-scmi.c
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2024-05-21 09:25:58 +0300
committerLinus Walleij <linus.walleij@linaro.org>2024-06-17 10:26:04 +0300
commitdbd47012a45f688010181c19d5c085195470bbb8 (patch)
tree8ddaa74b5d691e174c9ca686db330a443167711d /drivers/pinctrl/pinctrl-scmi.c
parent997f2cdea334fc78231a40fe36632cddb92d48e7 (diff)
downloadlinux-dbd47012a45f688010181c19d5c085195470bbb8.tar.xz
pinctrl: scmi: add blocklist
i.MX95 will have its own pinctrl scmi driver, so need block pinctrl-scmi driver for i.MX95, otherwise there will be two pinctrl devices for a single scmi protocol@19. Signed-off-by: Peng Fan <peng.fan@nxp.com> Acked-by: Sudeep Holla <sudeep.holla@arm.com> Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com> Link: https://lore.kernel.org/r/20240521-pinctrl-scmi-imx95-v1-2-9a1175d735fd@nxp.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/pinctrl-scmi.c')
-rw-r--r--drivers/pinctrl/pinctrl-scmi.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-scmi.c b/drivers/pinctrl/pinctrl-scmi.c
index 036bc1e3fc6c..df4bbcd7d1d5 100644
--- a/drivers/pinctrl/pinctrl-scmi.c
+++ b/drivers/pinctrl/pinctrl-scmi.c
@@ -11,6 +11,7 @@
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
+#include <linux/of.h>
#include <linux/scmi_protocol.h>
#include <linux/slab.h>
#include <linux/types.h>
@@ -504,6 +505,11 @@ static int pinctrl_scmi_get_pins(struct scmi_pinctrl *pmx,
return 0;
}
+static const char * const scmi_pinctrl_blocklist[] = {
+ "fsl,imx95",
+ NULL
+};
+
static int scmi_pinctrl_probe(struct scmi_device *sdev)
{
int ret;
@@ -515,6 +521,9 @@ static int scmi_pinctrl_probe(struct scmi_device *sdev)
if (!sdev->handle)
return -EINVAL;
+ if (of_machine_compatible_match(scmi_pinctrl_blocklist))
+ return -ENODEV;
+
handle = sdev->handle;
pinctrl_ops = handle->devm_protocol_get(sdev, SCMI_PROTOCOL_PINCTRL, &ph);