[PATCH v2 4/4] gpio: scmi: Add gpio_scmi driver

Peng Fan peng.fan at oss.nxp.com
Mon Mar 23 04:41:49 CET 2026


Hi Dan,

On Wed, Mar 11, 2026 at 10:41:36PM +0300, Dan Carpenter wrote:
>This provides GPIO support over SCMI.  It is built on top of the
>pinctrl-scmi driver.  The device tree entry would work the same as
>in linux.  Perhaps something like this.
>+

[....]

>+	ret = snprintf(NULL, 0, "gpio_scmi%d_", bank_cnt);
>+	uc_priv->bank_name = devm_kzalloc(dev, ret + 1, GFP_KERNEL);
>+	if (!uc_priv->bank_name)
>+		return -ENOMEM;
>+	snprintf(uc_priv->bank_name, ret + 1, "gpio_scmi%d_", bank_cnt);

build fail in CI [1]:

drivers/gpio/gpio_scmi.c: In function 'scmi_gpio_probe':
drivers/gpio/gpio_scmi.c:227:25: error: passing argument 1 of 'snprintf' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
  227 |         snprintf(uc_priv->bank_name, ret + 1, "gpio_scmi%d_", bank_cnt);
      |                  ~~~~~~~^~~~~~~~~~~
In file included from include/log.h:12,
                 from include/linux/printk.h:4,
                 from include/linux/kernel.h:5,
                 from include/linux/libfdt_env.h:13,
                 from include/linux/libfdt.h:6,
                 from include/fdtdec.h:17,
                 from include/dm/ofnode.h:11,
                 from include/asm-generic/gpio.h:10,
                 from ./arch/sandbox/include/asm/gpio.h:24,
                 from drivers/gpio/gpio_scmi.c:6:
include/stdio.h:60:20: note: expected 'char *' but argument is of type 'const char *'
   60 | int snprintf(char *buf, size_t size, const char *fmt, ...)
      |              ~~~~~~^~~
  CC      drivers/net/phy/broadcom.o

[1] https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq/-/jobs/1408382

Thanks,
Peng

>+	bank_cnt++;
>+
>+	uc_priv->gpio_count = priv->num_pins;
>+
>+	return 0;
>+}
>+
>+static const struct udevice_id scmi_gpio_match[] = {
>+	{ .compatible = "scmi-pinctrl-gpio" },
>+	{ }
>+};
>+
>+U_BOOT_DRIVER(scmi_pinctrl_gpio) = {
>+	.name	= "scmi_pinctrl_gpio",
>+	.id	= UCLASS_GPIO,
>+	.of_match = scmi_gpio_match,
>+	.probe	= scmi_gpio_probe,
>+	.priv_auto = sizeof(struct scmi_gpio_priv),
>+	.ops	= &scmi_gpio_ops,
>+};
>+
>-- 
>2.51.0
>
>


More information about the U-Boot mailing list