[PATCH 09/10] pinctrl: imx: Fold imx_pinctrl_set_state_scu() from pinctrl-imx8.c

Marek Vasut marex at denx.de
Fri Jan 24 15:50:58 CET 2025


The only user of the SCU pinctrl code is pinctrl-imx8.c , fold
the entire pinctrl-scu.c code into pinctrl-imx8.c and remove the
matching Kconfig symbols and Makefile entries. No functional change.

Signed-off-by: Marek Vasut <marex at denx.de>
---
Cc: Alice Guo <alice.guo at nxp.com>
Cc: Jesse Taube <mr.bossman075 at gmail.com>
Cc: Peng Fan <peng.fan at nxp.com>
Cc: Peter Robinson <pbrobinson at gmail.com>
Cc: Tim Harvey <tharvey at gateworks.com>
Cc: Tom Rini <trini at konsulko.com>
Cc: u-boot at lists.denx.de
---
 drivers/pinctrl/nxp/Kconfig        |  4 --
 drivers/pinctrl/nxp/Makefile       |  1 -
 drivers/pinctrl/nxp/pinctrl-imx.h  |  1 -
 drivers/pinctrl/nxp/pinctrl-imx8.c | 71 +++++++++++++++++++++++++++
 drivers/pinctrl/nxp/pinctrl-scu.c  | 79 ------------------------------
 5 files changed, 71 insertions(+), 85 deletions(-)
 delete mode 100644 drivers/pinctrl/nxp/pinctrl-scu.c

diff --git a/drivers/pinctrl/nxp/Kconfig b/drivers/pinctrl/nxp/Kconfig
index 06c26f156f6..e2fc121ae75 100644
--- a/drivers/pinctrl/nxp/Kconfig
+++ b/drivers/pinctrl/nxp/Kconfig
@@ -1,9 +1,6 @@
 config PINCTRL_IMX
 	bool
 
-config PINCTRL_IMX_SCU
-	bool
-
 config PINCTRL_IMX5
 	bool "IMX5 pinctrl driver"
 	depends on ARCH_MX5 && PINCTRL_FULL
@@ -79,7 +76,6 @@ config PINCTRL_IMX8
 	depends on ARCH_IMX8 && PINCTRL_FULL
 	select DEVRES
 	select PINCTRL_IMX
-	select PINCTRL_IMX_SCU
 	help
 	  Say Y here to enable the imx8 pinctrl driver
 
diff --git a/drivers/pinctrl/nxp/Makefile b/drivers/pinctrl/nxp/Makefile
index f10aa6ef188..c82275a2e93 100644
--- a/drivers/pinctrl/nxp/Makefile
+++ b/drivers/pinctrl/nxp/Makefile
@@ -4,7 +4,6 @@ obj-$(CONFIG_PINCTRL_IMX6)		+= pinctrl-imx6.o
 obj-$(CONFIG_PINCTRL_IMX7)		+= pinctrl-imx7.o
 obj-$(CONFIG_PINCTRL_IMX7ULP)		+= pinctrl-imx7ulp.o
 obj-$(CONFIG_PINCTRL_IMX8ULP)		+= pinctrl-imx8ulp.o
-obj-$(CONFIG_PINCTRL_IMX_SCU)		+= pinctrl-scu.o
 obj-$(CONFIG_PINCTRL_IMX8)		+= pinctrl-imx8.o
 obj-$(CONFIG_PINCTRL_IMX8M)		+= pinctrl-imx8m.o
 obj-$(CONFIG_PINCTRL_IMX93)		+= pinctrl-imx93.o
diff --git a/drivers/pinctrl/nxp/pinctrl-imx.h b/drivers/pinctrl/nxp/pinctrl-imx.h
index 94ecf1ba6b5..9adf999d3bb 100644
--- a/drivers/pinctrl/nxp/pinctrl-imx.h
+++ b/drivers/pinctrl/nxp/pinctrl-imx.h
@@ -56,6 +56,5 @@ int imx_pinctrl_remove_mmio(struct udevice *dev);
 int imx_pinctrl_set_state_common(struct udevice *dev, struct udevice *config,
 				 int pin_size, u32 **pin_data, int *npins);
 int imx_pinctrl_set_state_mmio(struct udevice *dev, struct udevice *config);
-int imx_pinctrl_set_state_scu(struct udevice *dev, struct udevice *config);
 
 #endif /* __DRIVERS_PINCTRL_IMX_H */
diff --git a/drivers/pinctrl/nxp/pinctrl-imx8.c b/drivers/pinctrl/nxp/pinctrl-imx8.c
index dcf778d123f..9b3b5aec07a 100644
--- a/drivers/pinctrl/nxp/pinctrl-imx8.c
+++ b/drivers/pinctrl/nxp/pinctrl-imx8.c
@@ -3,6 +3,12 @@
  * Copyright 2018 NXP
  */
 
+#include <dm.h>
+#include <errno.h>
+#include <linux/bitops.h>
+#include <asm/io.h>
+#include <firmware/imx/sci/sci.h>
+#include <misc.h>
 #include <asm/global_data.h>
 #include <dm/device.h>
 #include <dm/pinctrl.h>
@@ -11,6 +17,71 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+#define PADRING_IFMUX_EN_SHIFT		31
+#define PADRING_IFMUX_EN_MASK		BIT(31)
+#define PADRING_GP_EN_SHIFT		30
+#define PADRING_GP_EN_MASK		BIT(30)
+#define PADRING_IFMUX_SHIFT		27
+#define PADRING_IFMUX_MASK		GENMASK(29, 27)
+
+static int imx_pinconf_scu_set(struct imx_pinctrl_soc_info *info, u32 pad,
+			       u32 mux, u32 val)
+{
+	int ret;
+
+	/*
+	 * Mux should be done in pmx set, but we do not have a good api
+	 * to handle that in scfw, so config it in pad conf func
+	 */
+
+	if (!sc_rm_is_pad_owned(-1, pad)) {
+		debug("Pad[%u] is not owned by curr partition\n", pad);
+		return -EPERM;
+	}
+
+	val |= PADRING_IFMUX_EN_MASK;
+	val |= PADRING_GP_EN_MASK;
+	val |= (mux << PADRING_IFMUX_SHIFT) & PADRING_IFMUX_MASK;
+
+	ret = sc_pad_set(-1, pad, val);
+	if (ret)
+		printf("%s %d\n", __func__, ret);
+
+	return 0;
+}
+
+int imx_pinctrl_set_state_scu(struct udevice *dev, struct udevice *config)
+{
+	struct imx_pinctrl_priv *priv = dev_get_priv(dev);
+	struct imx_pinctrl_soc_info *info = priv->info;
+	int pin_id, mux, config_val;
+	u32 *pin_data;
+	int i, j = 0;
+	int npins;
+	int ret;
+
+	ret = imx_pinctrl_set_state_common(dev, config, SHARE_IMX8_PIN_SIZE,
+					   &pin_data, &npins);
+	if (ret)
+		return ret;
+
+	/*
+	 * Refer to linux documentation for details:
+	 * Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
+	 */
+	for (i = 0; i < npins; i++) {
+		pin_id = pin_data[j++];
+		mux = pin_data[j++];
+		config_val = pin_data[j++];
+
+		ret = imx_pinconf_scu_set(info, pin_id, mux, config_val);
+		if (ret && ret != -EPERM)
+			printf("Set pin %d, mux %d, val %d, error\n", pin_id,
+			       mux, config_val);
+	}
+
+	return 0;
+}
 static struct imx_pinctrl_soc_info imx8_pinctrl_soc_info = {
 	.flags = IMX8_USE_SCU,
 };
diff --git a/drivers/pinctrl/nxp/pinctrl-scu.c b/drivers/pinctrl/nxp/pinctrl-scu.c
deleted file mode 100644
index 3f47dde7e78..00000000000
--- a/drivers/pinctrl/nxp/pinctrl-scu.c
+++ /dev/null
@@ -1,79 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright 2018-2019 NXP
- */
-
-#include <dm.h>
-#include <errno.h>
-#include <linux/bitops.h>
-#include <asm/io.h>
-#include <firmware/imx/sci/sci.h>
-#include <misc.h>
-
-#include "pinctrl-imx.h"
-
-#define PADRING_IFMUX_EN_SHIFT		31
-#define PADRING_IFMUX_EN_MASK		BIT(31)
-#define PADRING_GP_EN_SHIFT		30
-#define PADRING_GP_EN_MASK		BIT(30)
-#define PADRING_IFMUX_SHIFT		27
-#define PADRING_IFMUX_MASK		GENMASK(29, 27)
-
-static int imx_pinconf_scu_set(struct imx_pinctrl_soc_info *info, u32 pad,
-			       u32 mux, u32 val)
-{
-	int ret;
-
-	/*
-	 * Mux should be done in pmx set, but we do not have a good api
-	 * to handle that in scfw, so config it in pad conf func
-	 */
-
-	if (!sc_rm_is_pad_owned(-1, pad)) {
-		debug("Pad[%u] is not owned by curr partition\n", pad);
-		return -EPERM;
-	}
-
-	val |= PADRING_IFMUX_EN_MASK;
-	val |= PADRING_GP_EN_MASK;
-	val |= (mux << PADRING_IFMUX_SHIFT) & PADRING_IFMUX_MASK;
-
-	ret = sc_pad_set(-1, pad, val);
-	if (ret)
-		printf("%s %d\n", __func__, ret);
-
-	return 0;
-}
-
-int imx_pinctrl_set_state_scu(struct udevice *dev, struct udevice *config)
-{
-	struct imx_pinctrl_priv *priv = dev_get_priv(dev);
-	struct imx_pinctrl_soc_info *info = priv->info;
-	int pin_id, mux, config_val;
-	u32 *pin_data;
-	int i, j = 0;
-	int npins;
-	int ret;
-
-	ret = imx_pinctrl_set_state_common(dev, config, SHARE_IMX8_PIN_SIZE,
-					   &pin_data, &npins);
-	if (ret)
-		return ret;
-
-	/*
-	 * Refer to linux documentation for details:
-	 * Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
-	 */
-	for (i = 0; i < npins; i++) {
-		pin_id = pin_data[j++];
-		mux = pin_data[j++];
-		config_val = pin_data[j++];
-
-		ret = imx_pinconf_scu_set(info, pin_id, mux, config_val);
-		if (ret && ret != -EPERM)
-			printf("Set pin %d, mux %d, val %d, error\n", pin_id,
-			       mux, config_val);
-	}
-
-	return 0;
-}
-- 
2.45.2



More information about the U-Boot mailing list