On Tue, 31 Jan 2023 15:08:48 +0100, Andreas Schwab wrote: > On Dez 20 2022, Hal Feng wrote: > >> diff --git a/drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c b/drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c >> new file mode 100644 >> index 000000000000..85df9d0ae1de >> --- /dev/null >> +++ b/drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c >> @@ -0,0 +1,979 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> +/* >> + * Pinctrl / GPIO driver for StarFive JH7110 SoC >> + * >> + * Copyright (C) 2022 Emil Renner Berthing <kernel@xxxxxxxx> >> + * Copyright (C) 2022 StarFive Technology Co., Ltd. >> + */ >> + >> +#include <linux/bits.h> >> +#include <linux/clk.h> >> +#include <linux/gpio/driver.h> >> +#include <linux/io.h> >> +#include <linux/mod_devicetable.h> >> +#include <linux/module.h> >> +#include <linux/mutex.h> >> +#include <linux/of.h> >> +#include <linux/of_device.h> >> +#include <linux/platform_device.h> >> +#include <linux/reset.h> >> +#include <linux/spinlock.h> >> + >> +#include <linux/pinctrl/pinctrl.h> >> +#include <linux/pinctrl/pinmux.h> >> + >> +#include <dt-bindings/pinctrl/starfive,jh7110-pinctrl.h> >> + >> +#include "../core.h" >> +#include "../pinctrl-utils.h" >> +#include "../pinmux.h" >> +#include "../pinconf.h" >> +#include "pinctrl-starfive-jh7110.h" > > This misses a couple of headers, see commit 042b93c9b666. > > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c: In function 'jh7110_pin_dbg_show': > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:100:9: error: implicit declaration of function 'seq_printf'; did you mean 'bstr_printf'? [-Werror=implicit-function-declaration] > 100 | seq_printf(s, "%s", dev_name(pctldev->dev)); > | ^~~~~~~~~~ > | bstr_printf > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c: At top level: > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:538:21: error: variable 'jh7110_pinconf_ops' has initializer but incomplete type > 538 | static const struct pinconf_ops jh7110_pinconf_ops = { > | ^~~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:539:10: error: 'const struct pinconf_ops' has no member named 'pin_config_get' > 539 | .pin_config_get = jh7110_pinconf_get, > | ^~~~~~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:539:35: warning: excess elements in struct initializer > 539 | .pin_config_get = jh7110_pinconf_get, > | ^~~~~~~~~~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:539:35: note: (near initialization for 'jh7110_pinconf_ops') > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:540:10: error: 'const struct pinconf_ops' has no member named 'pin_config_group_get' > 540 | .pin_config_group_get = jh7110_pinconf_group_get, > | ^~~~~~~~~~~~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:540:35: warning: excess elements in struct initializer > 540 | .pin_config_group_get = jh7110_pinconf_group_get, > | ^~~~~~~~~~~~~~~~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:540:35: note: (near initialization for 'jh7110_pinconf_ops') > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:541:10: error: 'const struct pinconf_ops' has no member named 'pin_config_group_set' > 541 | .pin_config_group_set = jh7110_pinconf_group_set, > | ^~~~~~~~~~~~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:541:35: warning: excess elements in struct initializer > 541 | .pin_config_group_set = jh7110_pinconf_group_set, > | ^~~~~~~~~~~~~~~~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:541:35: note: (near initialization for 'jh7110_pinconf_ops') > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:542:10: error: 'const struct pinconf_ops' has no member named 'pin_config_dbg_show' > 542 | .pin_config_dbg_show = jh7110_pinconf_dbg_show, > | ^~~~~~~~~~~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:542:35: warning: excess elements in struct initializer > 542 | .pin_config_dbg_show = jh7110_pinconf_dbg_show, > | ^~~~~~~~~~~~~~~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:542:35: note: (near initialization for 'jh7110_pinconf_ops') > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:543:10: error: 'const struct pinconf_ops' has no member named 'is_generic' > 543 | .is_generic = true, > | ^~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:543:35: warning: excess elements in struct initializer > 543 | .is_generic = true, > | ^~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:543:35: note: (near initialization for 'jh7110_pinconf_ops') > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c: In function 'jh7110_gpio_request': > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:548:16: error: implicit declaration of function 'pinctrl_gpio_request' [-Werror=implicit-function-declaration] > 548 | return pinctrl_gpio_request(gc->base + gpio); > | ^~~~~~~~~~~~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c: In function 'jh7110_gpio_free': > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:553:9: error: implicit declaration of function 'pinctrl_gpio_free' [-Werror=implicit-function-declaration] > 553 | pinctrl_gpio_free(gc->base + gpio); > | ^~~~~~~~~~~~~~~~~ > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c: At top level: > ../drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c:538:33: error: storage size of 'jh7110_pinconf_ops' isn't known > 538 | static const struct pinconf_ops jh7110_pinconf_ops = { > | ^~~~~~~~~~~~~~~~~~ > cc1: some warnings being treated as errors > make[4]: *** [../scripts/Makefile.build:253: drivers/pinctrl/starfive/pinctrl-starfive-jh7110.o] Error 1 Will add the missing headers. Thanks for your feedback. Best regards, Hal