[PATCH v2 02/10] pinctrl: axp209: add pinctrl features
From: Quentin Schulz <hidden>
Date: 2017-09-26 13:37:55
Also in:
linux-devicetree, linux-gpio, lkml
On 26/09/2017 15:27, Maxime Ripard wrote:
On Tue, Sep 26, 2017 at 01:08:21PM +0000, Quentin Schulz wrote:quoted
Hi Maxime, On 26/09/2017 15:00, Maxime Ripard wrote:quoted
On Tue, Sep 26, 2017 at 12:17:12PM +0000, Quentin Schulz wrote:quoted
+static const struct axp20x_desc_pin axp209_pins[] = { + AXP20X_PIN(AXP20X_PINCTRL_PIN(0, "GPIO0"), + AXP20X_FUNCTION(0x0, "gpio_out"), + AXP20X_FUNCTION(0x2, "gpio_in"), + AXP20X_FUNCTION(0x3, "ldo"), + AXP20X_FUNCTION(0x4, "adc")), + AXP20X_PIN(AXP20X_PINCTRL_PIN(1, "GPIO1"), + AXP20X_FUNCTION(0x0, "gpio_out"), + AXP20X_FUNCTION(0x2, "gpio_in"), + AXP20X_FUNCTION(0x3, "ldo"), + AXP20X_FUNCTION(0x4, "adc")), + AXP20X_PIN(AXP20X_PINCTRL_PIN(2, "GPIO2"), + AXP20X_FUNCTION(0x0, "gpio_out"), + AXP20X_FUNCTION(0x2, "gpio_in")), +};If all the functions are the same, and at the same offset, can't we just hardcode it, instead of having (and duplicate) all the logic below?AXP20X_PIN(AXP20X_PINCTRL_PIN(0, "GPIO0"), AXP20X_GPIO_OUT, AXP20X_GPIO_IN, AXP20X_LDO, AXP20X_ADC)) That's what you mean?What I mean is: static int axp20x_get_func(char *func) { if (!strcmp(func, "gpio_out")) return 0; if (!strcmp(func, "gpio_in")) return 2; if (!strcmp(func, "ldo")) return 3; if (!strcmp(func, "adc")) return 4; return -EINVAL; }
GPIO2 on AXP209 does not support ldo nor adc. GPIO1 on AXP813 does not support adc. I find it more complex to handle those two cases in a function than by hardcoding it in structures like above. Moreover, nothing tells us that it would be the same offset for other PMICs. Quentin -- Quentin Schulz, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 801 bytes Desc: OpenPGP digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170926/ff97d032/attachment.sig>