]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pinctrl: scmi: add blocklist
authorPeng Fan <peng.fan@nxp.com>
Tue, 21 May 2024 06:25:58 +0000 (14:25 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 17 Jun 2024 07:26:04 +0000 (09:26 +0200)
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>
drivers/pinctrl/pinctrl-scmi.c

index 036bc1e3fc6cf5fc418e1f29658624543b1b0642..df4bbcd7d1d59ac2c8ddc320dc10d702ad1ed5b2 100644 (file)
@@ -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);