Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pinctrl: lpc18xx: Use define directive for PIN_CONFIG_GPIO_PIN_INT

Clang warns when one enumerated type is implicitly converted to another:

drivers/pinctrl/pinctrl-lpc18xx.c:643:29: warning: implicit conversion
from enumeration type 'enum lpc18xx_pin_config_param' to different
enumeration type 'enum pin_config_param' [-Wenum-conversion]
{"nxp,gpio-pin-interrupt", PIN_CONFIG_GPIO_PIN_INT, 0},
~ ^~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/pinctrl-lpc18xx.c:648:12: warning: implicit conversion
from enumeration type 'enum lpc18xx_pin_config_param' to different
enumeration type 'enum pin_config_param' [-Wenum-conversion]
PCONFDUMP(PIN_CONFIG_GPIO_PIN_INT, "gpio pin int", NULL, true),
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/pinctrl/pinconf-generic.h:163:11: note: expanded from
macro 'PCONFDUMP'
.param = a, .display = b, .format = c, .has_arg = d \
^
2 warnings generated.

It is expected that pinctrl drivers can extend pin_config_param because
of the gap between PIN_CONFIG_END and PIN_CONFIG_MAX so this conversion
isn't an issue. Most drivers that take advantage of this define the
PIN_CONFIG variables as constants, rather than enumerated values. Do the
same thing here so that Clang no longer warns.

Link: https://github.com/ClangBuiltLinux/linux/issues/140
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Nathan Chancellor and committed by
Linus Walleij
f24bfb39 b40ac08f

+2 -8
+2 -8
drivers/pinctrl/pinctrl-lpc18xx.c
··· 630 630 LPC18XX_PIN(i2c0_sda, PIN_I2C0_SDA), 631 631 }; 632 632 633 - /** 634 - * enum lpc18xx_pin_config_param - possible pin configuration parameters 635 - * @PIN_CONFIG_GPIO_PIN_INT: route gpio to the gpio pin interrupt 636 - * controller. 637 - */ 638 - enum lpc18xx_pin_config_param { 639 - PIN_CONFIG_GPIO_PIN_INT = PIN_CONFIG_END + 1, 640 - }; 633 + /* PIN_CONFIG_GPIO_PIN_INT: route gpio to the gpio pin interrupt controller */ 634 + #define PIN_CONFIG_GPIO_PIN_INT (PIN_CONFIG_END + 1) 641 635 642 636 static const struct pinconf_generic_params lpc18xx_params[] = { 643 637 {"nxp,gpio-pin-interrupt", PIN_CONFIG_GPIO_PIN_INT, 0},