linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Thomas Perrot (Schneider Electric)" <thomas.perrot@bootlin.com>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Linus Walleij" <linusw@kernel.org>,
	"Bartosz Golaszewski" <brgl@kernel.org>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"Jérémie Dautheribes" <jeremie.dautheribes@bootlin.com>,
	"Wim Van Sebroeck" <wim@linux-watchdog.org>,
	"Guenter Roeck" <linux@roeck-us.net>,
	"Lee Jones" <lee@kernel.org>
Cc: oe-kbuild-all@lists.linux.dev, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,
	imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	linux-watchdog@vger.kernel.org,
	"Thomas Perrot (Schneider Electric)" <thomas.perrot@bootlin.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Subject: Re: [PATCH 6/8] gpio: aaeon: Add GPIO driver for SRG-IMX8PL MCU
Date: Sat, 13 Dec 2025 14:22:24 +0800	[thread overview]
Message-ID: <202512131342.1nkKkryD-lkp@intel.com> (raw)
In-Reply-To: <20251212-dev-b4-aaeon-mcu-driver-v1-6-6bd65bc8ef12@bootlin.com>

Hi Thomas,

kernel test robot noticed the following build errors:

[auto build test ERROR on d358e5254674b70f34c847715ca509e46eb81e6f]

url:    https://github.com/intel-lab-lkp/linux/commits/Thomas-Perrot-Schneider-Electric/dt-bindings-vendor-prefixes-Add-AAEON-vendor-prefix/20251212-154458
base:   d358e5254674b70f34c847715ca509e46eb81e6f
patch link:    https://lore.kernel.org/r/20251212-dev-b4-aaeon-mcu-driver-v1-6-6bd65bc8ef12%40bootlin.com
patch subject: [PATCH 6/8] gpio: aaeon: Add GPIO driver for SRG-IMX8PL MCU
config: arc-randconfig-r132-20251213 (https://download.01.org/0day-ci/archive/20251213/202512131342.1nkKkryD-lkp@intel.com/config)
compiler: arc-linux-gcc (GCC) 14.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251213/202512131342.1nkKkryD-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512131342.1nkKkryD-lkp@intel.com/

All errors (new ones prefixed by >>):

   `.exit.text' referenced in section `__jump_table' of lib/test_dynamic_debug.o: defined in discarded section `.exit.text' of lib/test_dynamic_debug.o
   `.exit.text' referenced in section `__jump_table' of lib/test_dynamic_debug.o: defined in discarded section `.exit.text' of lib/test_dynamic_debug.o
   arc-linux-ld: drivers/gpio/gpio-aaeon-mcu.o: in function `aaeon_mcu_gpio_get':
>> drivers/gpio/gpio-aaeon-mcu.c:124:(.text+0x4c): undefined reference to `aaeon_mcu_i2c_xfer'
>> arc-linux-ld: drivers/gpio/gpio-aaeon-mcu.c:124:(.text+0x4c): undefined reference to `aaeon_mcu_i2c_xfer'
   arc-linux-ld: drivers/gpio/gpio-aaeon-mcu.o: in function `aaeon_mcu_gpio_set':
   drivers/gpio/gpio-aaeon-mcu.c:139:(.text+0x100): undefined reference to `aaeon_mcu_i2c_xfer'
   arc-linux-ld: drivers/gpio/gpio-aaeon-mcu.c:139:(.text+0x100): undefined reference to `aaeon_mcu_i2c_xfer'
   arc-linux-ld: drivers/gpio/gpio-aaeon-mcu.c:150:(.text+0x172): undefined reference to `aaeon_mcu_i2c_xfer'
   arc-linux-ld: drivers/gpio/gpio-aaeon-mcu.o:drivers/gpio/gpio-aaeon-mcu.c:150: more undefined references to `aaeon_mcu_i2c_xfer' follow
   `.exit.text' referenced in section `__jump_table' of drivers/target/target_core_configfs.o: defined in discarded section `.exit.text' of drivers/target/target_core_configfs.o
   `.exit.text' referenced in section `__jump_table' of drivers/target/target_core_configfs.o: defined in discarded section `.exit.text' of drivers/target/target_core_configfs.o

sparse warnings: (new ones prefixed by >>)
>> drivers/gpio/gpio-aaeon-mcu.c:246:1: sparse: sparse: bad integer constant expression
   drivers/gpio/gpio-aaeon-mcu.c:246:1: sparse: sparse: static assertion failed: "MODULE_INFO(description, ...) contains embedded NUL byte"
   drivers/gpio/gpio-aaeon-mcu.c:247:1: sparse: sparse: bad integer constant expression
   drivers/gpio/gpio-aaeon-mcu.c:247:1: sparse: sparse: static assertion failed: "MODULE_INFO(author, ...) contains embedded NUL byte"
   drivers/gpio/gpio-aaeon-mcu.c:248:1: sparse: sparse: bad integer constant expression
   drivers/gpio/gpio-aaeon-mcu.c:248:1: sparse: sparse: static assertion failed: "MODULE_INFO(file, ...) contains embedded NUL byte"
   drivers/gpio/gpio-aaeon-mcu.c:248:1: sparse: sparse: bad integer constant expression
   drivers/gpio/gpio-aaeon-mcu.c:248:1: sparse: sparse: static assertion failed: "MODULE_INFO(license, ...) contains embedded NUL byte"

vim +124 drivers/gpio/gpio-aaeon-mcu.c

   110	
   111	static int aaeon_mcu_gpio_get(struct gpio_chip *gc, unsigned int offset)
   112	{
   113		struct aaeon_mcu_gpio *data = gpiochip_get_data(gc);
   114		u8 cmd[3], rsp;
   115		int ret;
   116	
   117		if (offset < MAX_GPOS)
   118			return test_bit(offset, data->gpo_state);
   119	
   120		cmd[0] = AAEON_MCU_READ_GPIO;
   121		cmd[1] = offset - 7;
   122		cmd[2] = 0x00;
   123	
 > 124		ret = aaeon_mcu_i2c_xfer(data->mfd->i2c_client, cmd, 3, &rsp, 1);
   125		if (ret < 0)
   126			return ret;
   127	
   128		return rsp;
   129	}
   130	
   131	static int aaeon_mcu_gpo_set_cmd(struct aaeon_mcu_gpio *data, unsigned int offset, int value)
   132	{
   133		u8 cmd[3], rsp;
   134	
   135		cmd[0] = AAEON_MCU_CONTROL_GPO;
   136		cmd[1] = offset + 1;
   137		cmd[2] = !!value;
   138	
   139		return aaeon_mcu_i2c_xfer(data->mfd->i2c_client, cmd, 3, &rsp, 1);
   140	}
   141	
   142	static int aaeon_mcu_gpio_set_cmd(struct aaeon_mcu_gpio *data, unsigned int offset, int value)
   143	{
   144		u8 cmd[3], rsp;
   145	
   146		cmd[0] = AAEON_MCU_WRITE_GPIO;
   147		cmd[1] = offset - 7;
   148		cmd[2] = !!value;
   149	
   150		return aaeon_mcu_i2c_xfer(data->mfd->i2c_client, cmd, 3, &rsp, 1);
   151	}
   152	
   153	static int aaeon_mcu_gpio_set(struct gpio_chip *gc, unsigned int offset,
   154				      int value)
   155	{
   156		struct aaeon_mcu_gpio *data = gpiochip_get_data(gc);
   157	
   158		if (offset < MAX_GPOS) {
   159			if (aaeon_mcu_gpo_set_cmd(data, offset, value) == 0)
   160				assign_bit(offset, data->gpo_state, value);
   161		} else {
   162			return aaeon_mcu_gpio_set_cmd(data, offset, value);
   163		}
   164		return 0;
   165	}
   166	
   167	static const struct gpio_chip aaeon_mcu_chip = {
   168		.label			= "gpio-aaeon-mcu",
   169		.owner			= THIS_MODULE,
   170		.get_direction		= aaeon_mcu_gpio_get_direction,
   171		.direction_input	= aaeon_mcu_gpio_direction_input,
   172		.direction_output	= aaeon_mcu_gpio_direction_output,
   173		.get			= aaeon_mcu_gpio_get,
   174		.set			= aaeon_mcu_gpio_set,
   175		.base			= -1,
   176		.ngpio			= MAX_GPOS + MAX_GPIOS,
   177		.can_sleep		= true,
   178	};
   179	
   180	static void aaeon_mcu_gpio_reset(struct aaeon_mcu_gpio *data, struct device *dev)
   181	{
   182		unsigned int i;
   183		int ret;
   184	
   185		/* Reset all GPOs */
   186		for (i = 0; i < MAX_GPOS; i++) {
   187			ret = aaeon_mcu_gpo_set_cmd(data, i, 0);
   188			if (ret < 0)
   189				dev_warn(dev, "Failed to reset GPO %u state: %d\n", i, ret);
   190			clear_bit(i, data->dir_in);
   191		}
   192	
   193		/* Reset all GPIOs */
   194		for (i = MAX_GPOS; i < MAX_GPOS + MAX_GPIOS; i++) {
   195			ret = aaeon_mcu_gpio_config_input_cmd(data, i);
   196			if (ret < 0)
   197				dev_warn(dev, "Failed to reset GPIO %u state: %d\n", i, ret);
   198			set_bit(i, data->dir_in);
   199		}
   200	}
   201	
   202	static int aaeon_mcu_gpio_probe(struct platform_device *pdev)
   203	{
   204		struct aaeon_mcu_dev *mfd = dev_get_drvdata(pdev->dev.parent);
   205		struct aaeon_mcu_gpio *data;
   206	
   207		data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
   208		if (!data)
   209			return -ENOMEM;
   210	
   211		data->mfd = mfd;
   212		data->gc = aaeon_mcu_chip;
   213		data->gc.parent = &pdev->dev;
   214	
   215		/*
   216		 * Reset all GPIO states to a known configuration. The MCU does not
   217		 * reset GPIO state on soft reboot, only on power cycle (hard reboot).
   218		 * Without this reset, GPIOs would retain their previous state across
   219		 * reboots, which could lead to unexpected behavior.
   220		 */
   221		aaeon_mcu_gpio_reset(data, &pdev->dev);
   222	
   223		platform_set_drvdata(pdev, data);
   224	
   225		return devm_gpiochip_add_data(&pdev->dev, &data->gc,
   226					      data);
   227	}
   228	
   229	static const struct of_device_id aaeon_mcu_gpio_of_match[] = {
   230		{ .compatible = "aaeon,srg-imx8pl-gpio" },
   231		{},
   232	};
   233	
   234	MODULE_DEVICE_TABLE(of, aaeon_mcu_gpio_of_match);
   235	
   236	static struct platform_driver aaeon_mcu_gpio_driver = {
   237		.driver = {
   238			.name = "aaeon-mcu-gpio",
   239			.of_match_table = aaeon_mcu_gpio_of_match,
   240		},
   241		.probe = aaeon_mcu_gpio_probe,
   242	};
   243	
   244	module_platform_driver(aaeon_mcu_gpio_driver);
   245	
 > 246	MODULE_DESCRIPTION("GPIO interface for Aaeon MCU");

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  parent reply	other threads:[~2025-12-13  6:23 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-12  7:41 [PATCH 0/8] Add support for AAEON SRG-IMX8PL MCU Thomas Perrot (Schneider Electric)
2025-12-12  7:41 ` [PATCH 1/8] dt-bindings: vendor-prefixes: Add AAEON vendor prefix Thomas Perrot (Schneider Electric)
2025-12-12  7:41 ` [PATCH 2/8] dt-bindings: gpio: Add AAEON embedded controller GPIO binding Thomas Perrot (Schneider Electric)
2025-12-12  8:19   ` Krzysztof Kozlowski
2025-12-12  7:41 ` [PATCH 3/8] dt-bindings: watchdog: Add AAEON embedded controller watchdog binding Thomas Perrot (Schneider Electric)
2025-12-12  8:20   ` Krzysztof Kozlowski
2025-12-12 11:46     ` Guenter Roeck
2025-12-13  3:05       ` Krzysztof Kozlowski
2025-12-12  7:41 ` [PATCH 4/8] dt-bindings: mfd: Add AAEON embedded controller binding Thomas Perrot (Schneider Electric)
2025-12-12  8:22   ` Krzysztof Kozlowski
2025-12-12  7:41 ` [PATCH 5/8] mfd: aaeon: Add SRG-IMX8PL MCU driver Thomas Perrot (Schneider Electric)
2025-12-12  7:41 ` [PATCH 6/8] gpio: aaeon: Add GPIO driver for SRG-IMX8PL MCU Thomas Perrot (Schneider Electric)
2025-12-12 10:11   ` Bartosz Golaszewski
2025-12-13  6:22   ` kernel test robot [this message]
2025-12-13 22:38   ` kernel test robot
2025-12-12  7:41 ` [PATCH 7/8] watchdog: aaeon: Add watchdog " Thomas Perrot (Schneider Electric)
2025-12-12 11:44   ` Guenter Roeck
2025-12-12  7:41 ` [PATCH 8/8] MAINTAINERS: Add entry for AAEON SRG-IMX8PL MCU driver Thomas Perrot (Schneider Electric)
2025-12-12  8:23   ` Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202512131342.1nkKkryD-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=brgl@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=festevam@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=jeremie.dautheribes@bootlin.com \
    --cc=kernel@pengutronix.de \
    --cc=krzk@kernel.org \
    --cc=lee@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=robh@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=thomas.perrot@bootlin.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=wim@linux-watchdog.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).