Re: [PATCH v3 4/7] gpio: max7360: Add MAX7360 gpio support
From: Andy Shevchenko <hidden>
Date: 2025-02-12 15:15:17
Also in:
linux-devicetree, linux-gpio, linux-pwm, lkml
On Wed, Feb 12, 2025 at 01:57:34PM +0100, Mathieu Dubois-Briand wrote:
On Mon Jan 27, 2025 at 2:07 PM CET, Andy Shevchenko wrote:quoted
On Mon, Jan 13, 2025 at 01:42:28PM +0100, Mathieu Dubois-Briand wrote:
...
quoted
quoted
+ parent = to_platform_device(pdev->dev.parent);Why do you need this? Can't the fwnode be propagated to the children and then the respective APIs to be used?I'm not sure to understand this correctly, what do you mean by propagating the fwnode to the children? Just a quick summary of the situation and what I try to do. The device tree looks like this, only keeping the interesting properties: io-expander@38 { ... interrupts = <23 IRQ_TYPE_LEVEL_LOW>, <24 IRQ_TYPE_LEVEL_LOW>; interrupt-names = "inti", "intk"; max7360_gpio: gpio { ... }; max7360_gpo: gpo { ... }; }; Our pdev fwnode points either to the "gpio" or "gpo" nodes, the one from our parent device points to "io-expander@38". Here we need to get the "inti" interrupt from the parent node. What would be the correct way to do it?
Ah, I see now. This is being used only for IRQs, but don't you want to call actually fwnode_irq_get_byname()? It will makes the intention clearer. ...
quoted
quoted
+ if (of_property_read_u32(pdev->dev.of_node, "ngpios", &ngpios)) { + dev_err(&pdev->dev, "Missing ngpios OF property\n"); + return -ENODEV; + }This is not needed, it is already done in GPIOLIB core.I believe this is still needed: - For gpos, we need the gpio count to correctly set the partition between gpo and keypad columns in max7360_set_gpos_count().
Shouldn't be that done somewhere in the GPIO valid mask initialisation?
- For gpios, we need the gpio count to setup the IRQs.
Doesn't GPIOLIB parse the property before initializing the IRQ valid mask and other init callbacks? -- With Best Regards, Andy Shevchenko