pinctrl: freescale: Add support for imx943 pinctrl
authorJacky Bai <ping.bai@nxp.com>
Fri, 16 May 2025 10:04:23 +0000 (18:04 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 21 May 2025 08:12:14 +0000 (10:12 +0200)
The i.MX943 System Manager (SM) firmware supports the System Control
Management Interface (SCMI) pinctrl protocol, similar to the i.MX95 SM.
The base offset for the i.MX943 IOMUXC Daisy input register differs from
that of the i.MX95. Update the pinctrl-imx-scmi driver to add support for
i.MX943.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/20250516100423.1685732-1-ping.bai@nxp.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/freescale/pinctrl-imx-scmi.c
drivers/pinctrl/pinctrl-scmi.c

index 8f15c4c..4e8ab91 100644 (file)
@@ -51,6 +51,7 @@ struct scmi_pinctrl_imx {
 #define IMX_SCMI_PIN_SIZE      24
 
 #define IMX95_DAISY_OFF                0x408
+#define IMX94_DAISY_OFF                0x608
 
 static int pinctrl_scmi_imx_dt_node_to_map(struct pinctrl_dev *pctldev,
                                           struct device_node *np,
@@ -70,6 +71,8 @@ static int pinctrl_scmi_imx_dt_node_to_map(struct pinctrl_dev *pctldev,
        if (!daisy_off) {
                if (of_machine_is_compatible("fsl,imx95")) {
                        daisy_off = IMX95_DAISY_OFF;
+               } else if (of_machine_is_compatible("fsl,imx94")) {
+                       daisy_off = IMX94_DAISY_OFF;
                } else {
                        dev_err(pctldev->dev, "platform not support scmi pinctrl\n");
                        return -EINVAL;
@@ -289,6 +292,7 @@ scmi_pinctrl_imx_get_pins(struct scmi_pinctrl_imx *pmx, struct pinctrl_desc *des
 
 static const char * const scmi_pinctrl_imx_allowlist[] = {
        "fsl,imx95",
+       "fsl,imx94",
        NULL
 };
 
index df4bbcd..3836810 100644 (file)
@@ -507,6 +507,7 @@ static int pinctrl_scmi_get_pins(struct scmi_pinctrl *pmx,
 
 static const char * const scmi_pinctrl_blocklist[] = {
        "fsl,imx95",
+       "fsl,imx94",
        NULL
 };