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

pinctrl: bcm2835: Use define directive for BCM2835_PINCONF_PARAM_PULL

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

drivers/pinctrl/bcm/pinctrl-bcm2835.c:707:40: warning: implicit
conversion from enumeration type 'enum bcm2835_pinconf_param' to
different enumeration type 'enum pin_config_param' [-Wenum-conversion]
configs[0] = pinconf_to_config_packed(BCM2835_PINCONF_PARAM_PULL, pull);
~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning 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.

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Nathan Chancellor and committed by
Linus Walleij
b40ac08f 957063c9

+2 -4
+2 -4
drivers/pinctrl/bcm/pinctrl-bcm2835.c
··· 72 72 #define GPIO_REG_OFFSET(p) ((p) / 32) 73 73 #define GPIO_REG_SHIFT(p) ((p) % 32) 74 74 75 - enum bcm2835_pinconf_param { 76 - /* argument: bcm2835_pinconf_pull */ 77 - BCM2835_PINCONF_PARAM_PULL = (PIN_CONFIG_END + 1), 78 - }; 75 + /* argument: bcm2835_pinconf_pull */ 76 + #define BCM2835_PINCONF_PARAM_PULL (PIN_CONFIG_END + 1) 79 77 80 78 struct bcm2835_pinctrl { 81 79 struct device *dev;