diff mbox series

[RFC] pinctrl: freescale: Add support for imx943 pinctrl

Message ID 20250401072725.1141083-1-ping.bai@nxp.com
State New
Headers show
Series [RFC] pinctrl: freescale: Add support for imx943 pinctrl | expand

Commit Message

Jacky Bai April 1, 2025, 7:27 a.m. UTC
Add support for i.MX943 pinctrl.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
---
 drivers/pinctrl/freescale/pinctrl-imx-scmi.c | 4 ++++
 drivers/pinctrl/pinctrl-scmi.c               | 1 +
 2 files changed, 5 insertions(+)

Comments

Peng Fan April 22, 2025, 9:01 a.m. UTC | #1
On Tue, Apr 01, 2025 at 03:27:25PM +0800, Jacky Bai wrote:
>Add support for i.MX943 pinctrl.

Let's expand the commit log a bit:

"
i.MX943 System Manager(SM) firmware supports System Control Management
Interface(SCMI) pinctrl protocol as i.MX95 SM. But i.MX943 IOMUXC
Daisy input register base is at a different address compared with i.MX95. So,
update pinctrl-imx-scmi to allow i.MX943 and add daisy off register, and
update pinctrl-scmi to block i.MX943
"

Then, Reviewed-by: Peng Fan <peng.fan@nxp.com> 

In future, we may no need to expand the array list in both drivers,
as of now, we are still exploring how. So the patch is ok for now.

Thanks,
Peng.
diff mbox series

Patch

diff --git a/drivers/pinctrl/freescale/pinctrl-imx-scmi.c b/drivers/pinctrl/freescale/pinctrl-imx-scmi.c
index 8f15c4c4dc44..4e8ab919b334 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx-scmi.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx-scmi.c
@@ -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
 };
 
diff --git a/drivers/pinctrl/pinctrl-scmi.c b/drivers/pinctrl/pinctrl-scmi.c
index df4bbcd7d1d5..383681041e4c 100644
--- a/drivers/pinctrl/pinctrl-scmi.c
+++ b/drivers/pinctrl/pinctrl-scmi.c
@@ -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
 };