Message ID | 20240115131605.395691-2-hector.palacios@digi.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/2] gpio: vf610: add support to DT 'ngpios' property | expand |
On 15/01/2024 14:16, Hector Palacios wrote: > Default to hardcoded VF610_GPIO_PER_PORT (32 pins) but allow optional > generic 'ngpios' property to be specified from the device tree. You need to explain why. Subject: Please use subject prefixes matching the subsystem. You can get them for example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory your patch is touching. > > Signed-off-by: Hector Palacios <hector.palacios@digi.com> > --- > Documentation/devicetree/bindings/gpio/gpio-vf610.yaml | 6 ++++++ Please use scripts/get_maintainers.pl to get a list of necessary people and lists to CC (and consider --no-git-fallback argument). It might happen, that command when run on an older kernel, gives you outdated entries. Therefore please be sure you base your patches on recent Linux kernel. Please run scripts/checkpatch.pl and fix reported warnings. Some warnings can be ignored, but the code here looks like it needs a fix. Feel free to get in touch if the warning is not clear. Bindings are always separate... > drivers/gpio/gpio-vf610.c | 7 ++++++- > 2 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml b/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml > index a27f92950257..ba4ebdbc5546 100644 > --- a/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml > +++ b/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml > @@ -65,6 +65,12 @@ properties: > minItems: 1 > maxItems: 4 > > + ngpios: > + description: The number of GPIO pins of the port Skip description, this is a generic property. > + minimum: 1 > + maximum: 32 > + default: 32 Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml b/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml index a27f92950257..ba4ebdbc5546 100644 --- a/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml +++ b/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml @@ -65,6 +65,12 @@ properties: minItems: 1 maxItems: 4 + ngpios: + description: The number of GPIO pins of the port + minimum: 1 + maximum: 32 + default: 32 + patternProperties: "^.+-hog(-[0-9]+)?$": type: object diff --git a/drivers/gpio/gpio-vf610.c b/drivers/gpio/gpio-vf610.c index 07e5e6323e86..4abdf75e9a0a 100644 --- a/drivers/gpio/gpio-vf610.c +++ b/drivers/gpio/gpio-vf610.c @@ -276,6 +276,7 @@ static int vf610_gpio_probe(struct platform_device *pdev) struct vf610_gpio_port *port; struct gpio_chip *gc; struct gpio_irq_chip *girq; + u32 ngpios; int i; int ret; bool dual_base; @@ -353,7 +354,11 @@ static int vf610_gpio_probe(struct platform_device *pdev) gc = &port->gc; gc->parent = dev; gc->label = dev_name(dev); - gc->ngpio = VF610_GPIO_PER_PORT; + ret = device_property_read_u32(dev, "ngpios", &ngpios); + if (ret || ngpios > VF610_GPIO_PER_PORT) + gc->ngpio = VF610_GPIO_PER_PORT; + else + gc->ngpio = (u16)ngpios; gc->base = -1; gc->request = gpiochip_generic_request;
Default to hardcoded VF610_GPIO_PER_PORT (32 pins) but allow optional generic 'ngpios' property to be specified from the device tree. Signed-off-by: Hector Palacios <hector.palacios@digi.com> --- Documentation/devicetree/bindings/gpio/gpio-vf610.yaml | 6 ++++++ drivers/gpio/gpio-vf610.c | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-)