[PATCH v2 4/4] pinctrl: scmi: Switch to use machine_blocklist

From: Peng Fan (OSS)
Date: Mon Jan 20 2025 - 02:15:29 EST


From: Peng Fan <peng.fan@xxxxxxx>

With machine_blocklist, the blocked machines will not have pinctrl scmi
devices created. The fw_devlink will link consumer and supplier
correctly.

Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
---
drivers/pinctrl/pinctrl-scmi.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-scmi.c b/drivers/pinctrl/pinctrl-scmi.c
index df4bbcd7d1d59ac2c8ddc320dc10d702ad1ed5b2..f041478758b50e85d99214f4fe42208d0c8c808f 100644
--- a/drivers/pinctrl/pinctrl-scmi.c
+++ b/drivers/pinctrl/pinctrl-scmi.c
@@ -505,11 +505,6 @@ 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;
@@ -521,9 +516,6 @@ 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);
@@ -561,8 +553,13 @@ static int scmi_pinctrl_probe(struct scmi_device *sdev)
return pinctrl_enable(pmx->pctldev);
}

+static const char * const scmi_pinctrl_blocklist[] = {
+ "fsl,imx95",
+ NULL
+};
+
static const struct scmi_device_id scmi_id_table[] = {
- { SCMI_PROTOCOL_PINCTRL, "pinctrl" },
+ { SCMI_PROTOCOL_PINCTRL, "pinctrl", scmi_pinctrl_blocklist, NULL },
{ }
};
MODULE_DEVICE_TABLE(scmi, scmi_id_table);

--
2.37.1